run:R W Run
DIR
2026-04-15 19:02:18
R W Run
DIR
2026-04-15 19:02:18
R W Run
DIR
2026-04-15 19:02:18
R W Run
761 By
2026-04-15 19:02:18
R W Run
3.3 KB
2026-04-15 19:02:18
R W Run
25.47 KB
2026-04-15 19:02:18
R W Run
10.69 KB
2026-04-15 19:02:18
R W Run
5.14 KB
2026-04-15 19:02:18
R W Run
16.87 KB
2026-04-15 19:02:18
R W Run
1.65 KB
2026-04-15 19:02:18
R W Run
6.16 KB
2026-04-15 19:02:18
R W Run
4.88 KB
2026-04-15 19:02:18
R W Run
1.31 KB
2026-04-15 19:02:18
R W Run
1.4 KB
2026-04-15 19:02:18
R W Run
15.24 KB
2026-04-15 19:02:18
R W Run
2.84 KB
2026-04-15 19:02:18
R W Run
5.5 KB
2026-04-15 19:02:18
R W Run
2 KB
2026-04-15 19:02:18
R W Run
3.28 KB
2026-04-15 19:02:18
R W Run
3.79 KB
2026-04-15 19:02:18
R W Run
2.1 KB
2026-04-15 19:02:18
R W Run
791 By
2026-04-15 19:02:18
R W Run
15.03 KB
2026-04-15 19:02:18
R W Run
6.5 KB
2026-04-15 19:02:18
R W Run
1.5 KB
2026-04-15 19:02:18
R W Run
8.61 KB
2026-04-15 19:02:18
R W Run
27.78 KB
2026-04-15 19:02:18
R W Run
2.03 KB
2026-04-15 19:02:18
R W Run
7.79 KB
2026-04-15 19:02:18
R W Run
9.9 KB
2026-04-15 19:02:18
R W Run
1.81 KB
2026-04-15 19:02:18
R W Run
7.42 KB
2026-04-15 19:02:18
R W Run
10.74 KB
2026-04-15 19:02:18
R W Run
1.28 KB
2026-04-15 19:02:18
R W Run
8.11 KB
2026-04-15 19:02:18
R W Run
1.79 KB
2026-04-15 19:02:18
R W Run
2.77 KB
2026-04-15 19:02:18
R W Run
780 By
2026-04-15 19:02:18
R W Run
5.37 KB
2026-04-15 19:02:18
R W Run
2.91 KB
2026-04-15 19:02:18
R W Run
794 By
2026-04-15 19:02:18
R W Run
3.69 KB
2026-04-15 19:02:18
R W Run
2.8 KB
2026-04-15 19:02:18
R W Run
37.06 KB
2026-04-15 19:02:18
R W Run
486 By
2026-04-15 19:02:18
R W Run
error_log
📄class-gmv.php
1<?php
2
3
4namespace WPaaS;
5
6class GMV {
7 const OPTION_KEY = 'wpaas-paypal-gmv';
8
9 /**
10 * Class constructor.
11 */
12 public function __construct() {
13
14 if ( ! $GLOBALS['wpaas_feature_flag']->get_feature_flag_value( 'gmv_monitor', false ) ) {
15 return;
16 }
17 add_filter( 'pre_http_request', [ $this, 'parse_headers' ], 10, 3 );
18 }
19
20 /**
21 * @param false|array|\WP_Error $response
22 * @param array $parsed_args
23 * @param string $url
24 *
25 * @return bool
26 */
27 public function parse_headers( $response, $parsed_args, $url ) {
28 if ( strpos( $url, 'paypal.com/v2/checkout/orders' ) !== false && strpos( $url, 'sandbox' ) === false ) {
29 if ( empty( $parsed_args ) || empty( $parsed_args['body'] ) || ! is_string( $parsed_args['body'] ) ) {
30 return false;
31 }
32 $key = date( 'Ymd' );
33 $body = json_decode( $parsed_args['body'], true );
34 if ( $body === null ) {
35 return false;
36 }
37 $amountObj = $body['purchase_units'][0]['amount'];
38 $value = $amountObj['value'];
39 $currency = $amountObj['currency_code'];
40 $bn_code = isset( $parsed_args['headers']['PayPal-Partner-Attribution-Id'] );
41
42
43 $gmv = json_decode( get_option( self::OPTION_KEY, '{}' ), true );
44 if ( ! array_key_exists( $key, $gmv ) ) {
45 $gmv[ $key ] = [ 'partner_id' => 0, 'no_partner_id' => 0, 'transactions' => 0, ];
46 }
47 if ( ! array_key_exists( $currency, $gmv[ $key ] ) ) {
48 $gmv[ $key ][ $currency ] = 0;
49 }
50 $gmv[ $key ][ $currency ] += floatval( $value );
51 if ( $bn_code ) {
52 $gmv[ $key ]['partner_id'] += 1;
53 } else {
54 $gmv[ $key ]['no_partner_id'] += 1;
55 }
56 $gmv[ $key ]['transactions'] += 1;
57
58 $trace = debug_backtrace();
59 foreach ( $trace as $line ) {
60 if ( strpos( $line['file'], '/var/www/wp-content/plugins/' ) !== false ) {
61 $slugs = explode( '/', $line['file'] );
62 $plugin = $slugs[5];
63 if ( ! array_key_exists( $plugin, $gmv[ $key ] ) ) {
64 $gmv[ $key ][ $plugin ] = 0;
65 }
66 $gmv[ $key ][ $plugin ] += 1;
67 break;
68 }
69 }
70 ksort( $gmv );
71 $save = array_slice( $gmv, - 10, null, true );
72
73 update_option( self::OPTION_KEY, json_encode( $save ) );
74 }
75
76 return false;
77
78 }
79}
80