Pixel Manager for WooCommerce – Track Google Analytics, Google Ads, Facebook and more - Version 1.27.9

Version Description

09.12.2022

  • Tweak: Added case insensitive flag to define() calls to prevent future PHP warnings.
  • Tweak: Disabled some loggers.
  • Tweak: Adjusted the woocommerce_ga_disable_tracking filter to only be used if GA is active in the Pixel Manager.
  • Tweak: Refactored logging.
  • Tweak: Improved a few descriptions.
Download this release

Release Info

Developer alekv
Plugin Icon 128x128 Pixel Manager for WooCommerce – Track Google Analytics, Google Ads, Facebook and more
Version 1.27.9
Comparing to
See all releases

Code changes from version 1.27.8 to 1.27.9

classes/admin/class-admin-rest.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WCPM\Classes\Admin;
4
+
5
+
6
+ if ( !defined( 'ABSPATH' ) ) {
7
+ exit;
8
+ // Exit if accessed directly
9
+ }
10
+
11
+ class Admin_REST
12
+ {
13
+ protected $rest_namespace = 'pmw/v1' ;
14
+ private static $instance ;
15
+ public static function get_instance()
16
+ {
17
+ if ( is_null( self::$instance ) ) {
18
+ self::$instance = new self();
19
+ }
20
+ return self::$instance;
21
+ }
22
+
23
+ public function __construct()
24
+ {
25
+ add_action( 'rest_api_init', [ $this, 'register_routes' ] );
26
+ }
27
+
28
+ public function register_routes()
29
+ {
30
+ register_rest_route( $this->rest_namespace, '/notifications/', [
31
+ 'methods' => 'POST',
32
+ 'callback' => function ( $request ) {
33
+ $data = $request->get_json_params();
34
+ if ( 'dismiss_license_expired_notification' === $data['notification'] ) {
35
+ }
36
+ },
37
+ 'permission_callback' => function () {
38
+ return current_user_can( 'manage_options' );
39
+ },
40
+ ] );
41
+ }
42
+
43
+ }
classes/admin/class-admin.php CHANGED
@@ -4,6 +4,7 @@
4
  namespace WCPM\Classes\Admin;
5
 
6
  use WCPM\Classes\Helpers ;
 
7
  use WCPM\Classes\Pixels\Google\Google ;
8
  use WP_Post ;
9
 
@@ -30,7 +31,7 @@ class Admin
30
 
31
  private function __construct()
32
  {
33
- $this->options = get_option( WPM_DB_OPTIONS_NAME );
34
  $this->plugin_hook = 'woocommerce_page_wpm';
35
  $this->google = new Google( $this->options );
36
  add_action( 'admin_enqueue_scripts', [ $this, 'wpm_admin_scripts' ] );
4
  namespace WCPM\Classes\Admin;
5
 
6
  use WCPM\Classes\Helpers ;
7
+ use WCPM\Classes\Options ;
8
  use WCPM\Classes\Pixels\Google\Google ;
9
  use WP_Post ;
10
 
31
 
32
  private function __construct()
33
  {
34
+ $this->options = Options::get_options();
35
  $this->plugin_hook = 'woocommerce_page_wpm';
36
  $this->google = new Google( $this->options );
37
  add_action( 'admin_enqueue_scripts', [ $this, 'wpm_admin_scripts' ] );
classes/admin/class-debug-info.php CHANGED
@@ -443,10 +443,10 @@ class Debug_Info
443
 
444
  } catch ( \Exception $e ) {
445
  wc_get_logger()->debug( 'Error while trying to connect to ' . $server, [
446
- 'source' => 'wpm',
447
  ] );
448
  wc_get_logger()->debug( $e, [
449
- 'source' => 'wpm',
450
  ] );
451
  }
452
  }
443
 
444
  } catch ( \Exception $e ) {
445
  wc_get_logger()->debug( 'Error while trying to connect to ' . $server, [
446
+ 'source' => 'PMW',
447
  ] );
448
  wc_get_logger()->debug( $e, [
449
+ 'source' => 'PMW',
450
  ] );
451
  }
452
  }
classes/admin/class-documentation.php CHANGED
@@ -197,6 +197,9 @@ class Documentation {
197
  'duplication_prevention' => [
198
  'default' => '/docs/wpm/shop#order-duplication-prevention',
199
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/shop/#order-duplication-prevention'],
 
 
 
200
  ];
201
 
202
  if (array_key_exists($key, $documentation_links)) {
197
  'duplication_prevention' => [
198
  'default' => '/docs/wpm/shop#order-duplication-prevention',
199
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/shop/#order-duplication-prevention'],
200
+ 'license-expired-warning' => [
201
+ 'default' => '/docs/wpm/license-management#expired-license-warning',
202
+ 'wcm' => '/'],
203
  ];
204
 
205
  if (array_key_exists($key, $documentation_links)) {
classes/admin/class-environment-check.php CHANGED
@@ -39,9 +39,19 @@ class Environment_Check {
39
  }
40
  }
41
 
42
- public function is_allowed_notification_page( $page ) {
43
 
44
- $allowed_pages = ['page_wpm', 'index.php', 'dashboard'];
 
 
 
 
 
 
 
 
 
 
45
 
46
  foreach ($allowed_pages as $allowed_page) {
47
  if (strpos($page, $allowed_page) !== false) {
@@ -68,7 +78,7 @@ class Environment_Check {
68
  return true;
69
  }
70
 
71
- public function is_not_allowed_notification_page( $page ) {
72
  return !$this->is_allowed_notification_page($page);
73
  }
74
 
@@ -1059,12 +1069,10 @@ class Environment_Check {
1059
  }
1060
 
1061
  /**
1062
- * WooCommerce Gutenberg Blocks Google Analytics Tracking
1063
- *
1064
  * Disable gtag if Google Analytics is active in PMW
1065
  */
1066
 
1067
- if ($this->is_pmw_google_ads_active()) {
1068
  add_filter('woocommerce_ga_disable_tracking', '__return_true');
1069
  }
1070
  }
39
  }
40
  }
41
 
42
+ public function is_allowed_notification_page( $page = null ) {
43
 
44
+ global $pagenow;
45
+
46
+ if (is_null($page)) {
47
+ $page = $pagenow;
48
+ }
49
+
50
+ // Don't check for the plugin settings page. Notifications have to be handled there.
51
+ $allowed_pages = [
52
+ 'index.php',
53
+ 'dashboard'
54
+ ];
55
 
56
  foreach ($allowed_pages as $allowed_page) {
57
  if (strpos($page, $allowed_page) !== false) {
78
  return true;
79
  }
80
 
81
+ public function is_not_allowed_notification_page( $page = null ) {
82
  return !$this->is_allowed_notification_page($page);
83
  }
84
 
1069
  }
1070
 
1071
  /**
 
 
1072
  * Disable gtag if Google Analytics is active in PMW
1073
  */
1074
 
1075
+ if ($this->is_pmw_google_analytics_active()) {
1076
  add_filter('woocommerce_ga_disable_tracking', '__return_true');
1077
  }
1078
  }
classes/admin/class-notification-handlers.php DELETED
@@ -1,66 +0,0 @@
1
- <?php
2
-
3
- namespace WCPM\Classes\Admin;
4
-
5
- use WCPM\Classes\Helpers;
6
-
7
- if (!defined('ABSPATH')) {
8
- exit; // Exit if accessed directly
9
- }
10
-
11
- class Notification_Handlers {
12
-
13
- private static $instance;
14
-
15
- public static function get_instance() {
16
- if (is_null(self::$instance)) {
17
- self::$instance = new self();
18
- }
19
- return self::$instance;
20
- }
21
-
22
- private function __construct() {
23
-
24
- add_action('admin_enqueue_scripts', [$this, 'enqueue_admin_notification_scripts']);
25
-
26
- add_action('wp_ajax_dismiss_pmw_payment_gateway_notification', [$this, 'dismiss_payment_gateway_notification']);
27
- }
28
-
29
- public function enqueue_admin_notification_scripts() {
30
-
31
- // error_log('enqueue_admin_notification_scripts');
32
- wp_enqueue_script(
33
- 'pmw-admin-notifications',
34
- WPM_PLUGIN_DIR_PATH . '/js/admin/notifications.js',
35
- ['jquery'],
36
- WPM_CURRENT_VERSION,
37
- true
38
- );
39
-
40
- wp_localize_script(
41
- 'pmw-admin-notifications',
42
- 'ajax_var', [
43
- 'url' => admin_url('admin-ajax.php'),
44
- 'nonce' => wp_create_nonce('ajax-nonce')
45
- ]);
46
- }
47
-
48
- public function dismiss_payment_gateway_notification() {
49
-
50
- if (!current_user_can('manage_options')) {
51
- wp_die();
52
- }
53
-
54
- $_post = Helpers::get_input_vars(INPUT_POST);
55
-
56
- // Verify nonce
57
- if (!isset($_post['nonce']) || !wp_verify_nonce($_post['nonce'], 'ajax-nonce')) {
58
- wp_die();
59
- }
60
-
61
- error_log('dismiss_payment_gateway_notification');
62
-
63
-
64
- // update_option('my-acf-notice-dismissed', 1);
65
- }
66
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/admin/class-notifications.php CHANGED
@@ -2,148 +2,174 @@
2
 
3
  namespace WCPM\Classes\Admin;
4
 
5
- if (!defined('ABSPATH')) {
6
- exit; // Exit if accessed directly
7
- }
8
-
9
- class Notifications {
10
-
11
- // Only show the notification on the dashboard and on the PMW settings page
12
- private static function is_not_allowed_to_show_pmw_notification() {
13
- return !self::is_allowed_to_show_pmw_notification();
14
- }
15
-
16
- private static function is_allowed_to_show_pmw_notification() {
17
-
18
- if (!self::can_current_page_show_pmw_notification()) {
19
- return false;
20
- }
21
-
22
- // Only show the notifications to admins and shop managers
23
- $user = wp_get_current_user();
24
- if (!in_array('administrator', $user->roles, true) && !in_array('shop_manager', $user->roles, true)) {
25
- return false;
26
- }
27
-
28
- return true;
29
- }
30
-
31
- public static function can_current_page_show_pmw_notification() {
32
-
33
- global $hook_suffix;
34
-
35
- $allowed_pages = ['page_wpm', 'index.php', 'dashboard'];
36
-
37
- /**
38
- * We can't use in_array because woocommerce_page_wpm
39
- * is malformed on certain installs, but the substring
40
- * page_wpm is fine. So we need to search for partial
41
- * matches.
42
- * */
43
- foreach ($allowed_pages as $allowed_page) {
44
- if (strpos($hook_suffix, $allowed_page) !== false) {
45
- return true;
46
- }
47
- }
48
 
49
- return false;
50
- }
51
-
52
- public static function payment_gateway_accuracy_warning() {
53
-
54
- // Only show the warning on the dashboard and on the PMW settings page
55
- if (self::is_not_allowed_to_show_pmw_notification()) {
56
- return;
57
- }
58
-
59
- $pg_report = get_transient('pmw_tracking_accuracy_analysis_weighted');
60
-
61
- // Only run if the weighted payment gateway analysis has been created
62
- if (!$pg_report) {
63
- return;
64
- }
65
-
66
- // Only run if the total of the PGs is in status warning
67
-
68
- // Only run if the user has not dismissed the notification for a specific time period
69
 
70
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  <div class="pmw-payment-gateway-notification notice notice-error is-dismissible">
72
  <p>
73
- <?php
74
- esc_html_e('Payment Gateway Accuracy Warning', 'woocommerce-google-adwords-conversion-tracking-tag');
75
- ?>
76
  </p>
77
  </div>
78
- <?php
79
-
80
- }
81
-
82
- public static function paypal_standard_active_warning() {
83
- ?>
84
- <div class="notice notice-error wpm-paypal-standard-error">
85
- <p style="color:red;">
86
- <span>
87
-
88
- <?php
89
- esc_html_e('The Pixel Manager for WooCommerce plugin detected that the PayPal standard payment gateway is active. The PayPal standard payment gateway is an off-site payment gateway which impairs conversion tracking significantly. Please switch to an on-site payment gateway as soon as possible in order to increase your conversion tracking accuracy.', 'woocommerce-google-adwords-conversion-tracking-tag');
90
- ?>
91
- </span><br>
92
- </p>
93
- <p>
94
- <a href="<?php echo esc_url(Documentation::get_link('payment-gateways')); ?>"
95
- target="_blank">
96
- <?php esc_html_e('Learn more', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
97
- </a>
98
- </p>
99
- <p>
100
- <a href="<?php echo esc_url(get_admin_url() . 'admin.php?page=wc-settings&tab=checkout'); ?>">
101
- <?php esc_html_e('Open the WooCommerce payment methods settings', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
102
- </a>
103
- </p>
104
-
105
- <div style=" margin-bottom: 10px; display: flex; justify-content: space-between">
106
-
107
- <div id="wpm-paypal-standard-error-dismissal-button" class="button" style="white-space:normal;">
108
- <?php esc_html_e('Click here to dismiss this warning forever', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
109
- </div>
110
- <div style="white-space:normal; bottom:0; right: 0; margin-bottom: 0; margin-right: 5px;align-self: flex-end;">
111
- <a href="<?php echo esc_url(Documentation::get_link('the_dismiss_button_doesnt_work_why')); ?>"
112
- target="_blank">
113
- <?php esc_html_e('If the dismiss button is not working, here\'s why >>', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
114
- </a>
115
- </div>
116
- </div>
117
-
118
- </div>
119
- <?php
120
- }
121
-
122
- public static function plugin_is_incompatible( $name, $version, $slug, $link = '', $wpm_doc_link = '' ) {
123
- ?>
124
- <div class="notice notice-error <?php echo esc_js($slug); ?>-incompatible-plugin-error">
125
  <p>
126
  <span>
127
- <?php esc_html_e('The following plugin is not compatible with the Pixel Manager for WooCommerce: ', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
 
 
128
  </span>
129
  <span>
130
- <a href="<?php echo esc_url($link); ?>" target="_blank">
131
- <?php echo esc_js($name); ?>
 
 
 
 
132
  </a>
133
- (<?php esc_html_e('Version', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>: <?php echo esc_js($version); ?>)
 
 
 
 
134
  </span>
135
  <br>
136
  <span>
137
 
138
- <?php esc_html_e('Please disable the plugin as soon as possible.', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
 
 
139
  </span><br>
140
  <span>
141
 
142
- <?php esc_html_e('Find more information about the the reason in our documentation: ', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
 
 
143
  </span><a
144
- href="<?php echo esc_url($wpm_doc_link); ?>"
 
 
145
  target="_blank">
146
- <?php esc_html_e('Learn more', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
 
 
147
  </a><br>
148
  </p>
149
  <p>
@@ -151,20 +177,31 @@ class Notifications {
151
  </p>
152
  <div style="margin-bottom: 10px; display: flex; justify-content: space-between">
153
 
154
- <div id="<?php echo esc_js($slug); ?>-incompatible-plugin-error-dismissal-button"
 
 
155
  class="button incompatible-plugin-error-dismissal-button" style="white-space:normal;"
156
- data-plugin-slug="<?php echo esc_js($slug); ?>">
157
- <?php esc_html_e('Click here to dismiss this warning forever', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
 
 
 
 
158
  </div>
159
  <div style="white-space:normal; bottom:0; right: 0; margin-bottom: 0; margin-right: 5px;align-self: flex-end;">
160
- <a href="<?php echo esc_url(Documentation::get_link('the_dismiss_button_doesnt_work_why')); ?>"
 
 
161
  target="_blank">
162
- <?php esc_html_e('If the dismiss button is not working, here\'s why >>', 'woocommerce-google-adwords-conversion-tracking-tag'); ?>
 
 
163
  </a>
164
  </div>
165
  </div>
166
 
167
  </div>
168
- <?php
169
- }
170
- }
 
2
 
3
  namespace WCPM\Classes\Admin;
4
 
5
+ use WCPM\Classes\Helpers ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
+ if ( !defined( 'ABSPATH' ) ) {
8
+ exit;
9
+ // Exit if accessed directly
10
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
+ class Notifications
13
+ {
14
+ private static $instance ;
15
+ public static function get_instance()
16
+ {
17
+ if ( is_null( self::$instance ) ) {
18
+ self::$instance = new self();
19
+ }
20
+ return self::$instance;
21
+ }
22
+
23
+ public function __construct()
24
+ {
25
+ add_action( 'admin_enqueue_scripts', [ __CLASS__, 'inject_admin_scripts' ] );
26
+ add_action( 'admin_enqueue_scripts', [ __CLASS__, 'wpm_admin_css' ] );
27
+ if ( Environment_Check::get_instance()->is_allowed_notification_page() ) {
28
+ }
29
+ }
30
+
31
+ public static function inject_admin_scripts()
32
+ {
33
+ wp_enqueue_script(
34
+ 'pmw-notifications',
35
+ WPM_PLUGIN_DIR_PATH . 'js/admin/notifications.js',
36
+ [ 'jquery' ],
37
+ WPM_CURRENT_VERSION,
38
+ true
39
+ );
40
+ wp_localize_script( 'pmw-notifications', 'pmwNotificationsApi', [
41
+ 'root' => esc_url_raw( rest_url() ),
42
+ 'nonce' => wp_create_nonce( 'wp_rest' ),
43
+ ] );
44
+ }
45
+
46
+ public static function wpm_admin_css( $hook_suffix )
47
+ {
48
+ // Only output the css on PMW pages and the order page
49
+ // if (self::is_not_allowed_to_show_pmw_notification()) {
50
+ // return;
51
+ // }
52
+ wp_enqueue_style(
53
+ 'pmw-notifications-css',
54
+ WPM_PLUGIN_DIR_PATH . 'css/notifications.css',
55
+ [],
56
+ WPM_CURRENT_VERSION
57
+ );
58
+ }
59
+
60
+ // Only show the notification on the dashboard and on the PMW settings page
61
+ private static function is_not_allowed_to_show_pmw_notification()
62
+ {
63
+ return !self::is_allowed_to_show_pmw_notification();
64
+ }
65
+
66
+ private static function is_allowed_to_show_pmw_notification()
67
+ {
68
+ if ( !self::can_current_page_show_pmw_notification() ) {
69
+ return false;
70
+ }
71
+ // Only show the notifications to admins and shop managers
72
+ $user = wp_get_current_user();
73
+ if ( !in_array( 'administrator', $user->roles, true ) && !in_array( 'shop_manager', $user->roles, true ) ) {
74
+ return false;
75
+ }
76
+ return true;
77
+ }
78
+
79
+ public static function can_current_page_show_pmw_notification()
80
+ {
81
+ global $hook_suffix ;
82
+ $allowed_pages = [ 'page_wpm', 'index.php', 'dashboard' ];
83
+ /**
84
+ * We can't use in_array because woocommerce_page_wpm
85
+ * is malformed on certain installs, but the substring
86
+ * page_wpm is fine. So we need to search for partial
87
+ * matches.
88
+ * */
89
+ foreach ( $allowed_pages as $allowed_page ) {
90
+ if ( strpos( $hook_suffix, $allowed_page ) !== false ) {
91
+ return true;
92
+ }
93
+ }
94
+ return false;
95
+ }
96
+
97
+ public static function payment_gateway_accuracy_warning()
98
+ {
99
+ // Only show the warning on the dashboard and on the PMW settings page
100
+ if ( self::is_not_allowed_to_show_pmw_notification() ) {
101
+ return;
102
+ }
103
+ $pg_report = get_transient( 'pmw_tracking_accuracy_analysis_weighted' );
104
+ // Only run if the weighted payment gateway analysis has been created
105
+ if ( !$pg_report ) {
106
+ return;
107
+ }
108
+ // Only run if the total of the PGs is in status warning
109
+ // Only run if the user has not dismissed the notification for a specific time period
110
+ ?>
111
  <div class="pmw-payment-gateway-notification notice notice-error is-dismissible">
112
  <p>
113
+ <?php
114
+ esc_html_e( 'Payment Gateway Accuracy Warning', 'woocommerce-google-adwords-conversion-tracking-tag' );
115
+ ?>
116
  </p>
117
  </div>
118
+ <?php
119
+ }
120
+
121
+ public static function plugin_is_incompatible(
122
+ $name,
123
+ $version,
124
+ $slug,
125
+ $link = '',
126
+ $wpm_doc_link = ''
127
+ )
128
+ {
129
+ ?>
130
+ <div class="notice notice-error <?php
131
+ echo esc_js( $slug ) ;
132
+ ?>-incompatible-plugin-error">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  <p>
134
  <span>
135
+ <?php
136
+ esc_html_e( 'The following plugin is not compatible with the Pixel Manager for WooCommerce: ', 'woocommerce-google-adwords-conversion-tracking-tag' );
137
+ ?>
138
  </span>
139
  <span>
140
+ <a href="<?php
141
+ echo esc_url( $link ) ;
142
+ ?>" target="_blank">
143
+ <?php
144
+ echo esc_js( $name ) ;
145
+ ?>
146
  </a>
147
+ (<?php
148
+ esc_html_e( 'Version', 'woocommerce-google-adwords-conversion-tracking-tag' );
149
+ ?>: <?php
150
+ echo esc_js( $version ) ;
151
+ ?>)
152
  </span>
153
  <br>
154
  <span>
155
 
156
+ <?php
157
+ esc_html_e( 'Please disable the plugin as soon as possible.', 'woocommerce-google-adwords-conversion-tracking-tag' );
158
+ ?>
159
  </span><br>
160
  <span>
161
 
162
+ <?php
163
+ esc_html_e( 'Find more information about the the reason in our documentation: ', 'woocommerce-google-adwords-conversion-tracking-tag' );
164
+ ?>
165
  </span><a
166
+ href="<?php
167
+ echo esc_url( $wpm_doc_link ) ;
168
+ ?>"
169
  target="_blank">
170
+ <?php
171
+ esc_html_e( 'Learn more', 'woocommerce-google-adwords-conversion-tracking-tag' );
172
+ ?>
173
  </a><br>
174
  </p>
175
  <p>
177
  </p>
178
  <div style="margin-bottom: 10px; display: flex; justify-content: space-between">
179
 
180
+ <div id="<?php
181
+ echo esc_js( $slug ) ;
182
+ ?>-incompatible-plugin-error-dismissal-button"
183
  class="button incompatible-plugin-error-dismissal-button" style="white-space:normal;"
184
+ data-plugin-slug="<?php
185
+ echo esc_js( $slug ) ;
186
+ ?>">
187
+ <?php
188
+ esc_html_e( 'Click here to dismiss this warning forever', 'woocommerce-google-adwords-conversion-tracking-tag' );
189
+ ?>
190
  </div>
191
  <div style="white-space:normal; bottom:0; right: 0; margin-bottom: 0; margin-right: 5px;align-self: flex-end;">
192
+ <a href="<?php
193
+ echo esc_url( Documentation::get_link( 'the_dismiss_button_doesnt_work_why' ) ) ;
194
+ ?>"
195
  target="_blank">
196
+ <?php
197
+ esc_html_e( 'If the dismiss button is not working, here\'s why >>', 'woocommerce-google-adwords-conversion-tracking-tag' );
198
+ ?>
199
  </a>
200
  </div>
201
  </div>
202
 
203
  </div>
204
+ <?php
205
+ }
206
+
207
+ }
classes/admin/class-order-columns.php CHANGED
@@ -290,7 +290,7 @@ class Order_Columns {
290
  <?php
291
 
292
  } elseif ($order->get_created_via() !== 'checkout') {
293
- $text = __('This order was created by a shop manager. Only orders created by customers are analysed.', 'woocommerce-google-adwords-conversion-tracking-tag');
294
  ?>
295
  <div aria-hidden="true" title="<?php esc_html_e($text); ?>" class="pmw-monitored-icon none">
296
  <span class="screen-reader-text"><?php esc_html_e($text); ?></span>
290
  <?php
291
 
292
  } elseif ($order->get_created_via() !== 'checkout') {
293
+ $text = __('This order was either created by a shop manager, or automatically added by an extension like a subscription plugin. Only orders created by customers are analysed.', 'woocommerce-google-adwords-conversion-tracking-tag');
294
  ?>
295
  <div aria-hidden="true" title="<?php esc_html_e($text); ?>" class="pmw-monitored-icon none">
296
  <span class="screen-reader-text"><?php esc_html_e($text); ?></span>
classes/class-deprecated-filters.php CHANGED
@@ -25,5 +25,16 @@ class Deprecated_Filters {
25
  'This filter has been deprecated without replacement'
26
  );
27
 
 
 
 
 
 
 
 
 
 
 
 
28
  }
29
  }
25
  'This filter has been deprecated without replacement'
26
  );
27
 
28
+ /**
29
+ * GA3 MP logger
30
+ */
31
+ $ga3_mp_logger = apply_filters_deprecated('wooptpm_send_http_api_ga_ua_requests_blocking', [false], '1.13.0', 'wpm_send_http_api_ga_ua_requests_blocking');
32
+ apply_filters_deprecated('wpm_send_http_api_ga_ua_requests_blocking', [$ga3_mp_logger], '1.27.9', 'pmw_http_send_hit_logger');
33
+
34
+ /**
35
+ * GA4 MP logger
36
+ */
37
+ $ga4_mp_logger = apply_filters_deprecated('wooptpm_send_http_api_ga_4_requests_blocking', [false], '1.13.0', 'wpm_send_http_api_ga_4_requests_blocking');
38
+ apply_filters_deprecated('wpm_send_http_api_ga_4_requests_blocking', [$ga4_mp_logger], '1.27.9', 'pmw_http_send_hit_logger');
39
  }
40
  }
classes/class-helpers.php CHANGED
@@ -192,4 +192,23 @@ class Helpers {
192
  // Geolocate the user IP and return the country code
193
  return self::get_visitor_country();
194
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  }
192
  // Geolocate the user IP and return the country code
193
  return self::get_visitor_country();
194
  }
195
+
196
+ public static function is_dashboard() {
197
+
198
+ global $pagenow;
199
+
200
+ // Don't check for the plugin settings page. Notifications have to be handled there.
201
+ $allowed_pages = [
202
+ 'index.php',
203
+ 'dashboard'
204
+ ];
205
+
206
+ foreach ($allowed_pages as $allowed_page) {
207
+ if (strpos($pagenow, $allowed_page) !== false) {
208
+ return true;
209
+ }
210
+ }
211
+
212
+ return false;
213
+ }
214
  }
classes/class-product.php CHANGED
@@ -92,10 +92,10 @@ class Product {
92
 
93
  public static function log_problematic_product_id( $product_id = 0 ) {
94
 
95
- wc_get_logger()->debug(
96
- 'WooCommerce detects the page ID ' . $product_id . ' as product, but when invoked by wc_get_product( ' . $product_id . ' ) it returns no product object',
97
- ['source' => 'wpm']
98
- );
99
  }
100
 
101
  public static function get_product_details_for_datalayer( $product ) {
@@ -151,7 +151,7 @@ class Product {
151
  $product_details['brand'] = self::get_brand_name($parent_product->get_id());
152
  } else {
153
 
154
- wc_get_logger()->debug('Variation ' . $product->get_id() . ' doesn\'t link to a valid parent product.', ['source' => 'wpm']);
155
  }
156
 
157
  $product_details['variant'] = self::get_formatted_variant_text($product);
@@ -284,7 +284,7 @@ class Product {
284
 
285
  wc_get_logger()->debug(
286
  'WooCommerce detects the following product as product , but when invoked by wc_get_product( ' . $product->get_id() . ' ) it returns no product object',
287
- ['source' => 'wpm']
288
  );
289
  }
290
 
@@ -301,7 +301,7 @@ class Product {
301
 
302
  if (!is_object($product)) {
303
 
304
- wc_get_logger()->debug('get_order_item_data received an order item which is not a valid product: ' . $order_item->get_id(), ['source' => 'wpm']);
305
  return [];
306
  }
307
 
@@ -333,7 +333,7 @@ class Product {
333
  public static function get_product_data_layer_script( $product, $set_position = true, $meta_tag = false ) {
334
 
335
  if (!is_object($product)) {
336
- wc_get_logger()->debug('get_product_data_layer_script received an invalid product', ['source' => 'wpm']);
337
  return '';
338
  }
339
 
92
 
93
  public static function log_problematic_product_id( $product_id = 0 ) {
94
 
95
+ // wc_get_logger()->debug(
96
+ // 'WooCommerce detects the page ID ' . $product_id . ' as product, but when invoked by wc_get_product( ' . $product_id . ' ) it returns no product object',
97
+ // ['source' => 'PMW']
98
+ // );
99
  }
100
 
101
  public static function get_product_details_for_datalayer( $product ) {
151
  $product_details['brand'] = self::get_brand_name($parent_product->get_id());
152
  } else {
153
 
154
+ wc_get_logger()->debug('Variation ' . $product->get_id() . ' doesn\'t link to a valid parent product.', ['source' => 'PMW']);
155
  }
156
 
157
  $product_details['variant'] = self::get_formatted_variant_text($product);
284
 
285
  wc_get_logger()->debug(
286
  'WooCommerce detects the following product as product , but when invoked by wc_get_product( ' . $product->get_id() . ' ) it returns no product object',
287
+ ['source' => 'PMW']
288
  );
289
  }
290
 
301
 
302
  if (!is_object($product)) {
303
 
304
+ // wc_get_logger()->debug('get_order_item_data received an order item which is not a valid product: ' . $order_item->get_id(), ['source' => 'PMW']);
305
  return [];
306
  }
307
 
333
  public static function get_product_data_layer_script( $product, $set_position = true, $meta_tag = false ) {
334
 
335
  if (!is_object($product)) {
336
+ wc_get_logger()->debug('get_product_data_layer_script received an invalid product', ['source' => 'PMW']);
337
  return '';
338
  }
339
 
classes/class-shop.php CHANGED
@@ -433,12 +433,12 @@ class Shop
433
  }
434
 
435
  wc_get_logger()->debug( 'URL order key: ' . $order_key, [
436
- 'source' => 'wpm',
437
  ] );
438
  return wc_get_order( wc_get_order_id_by_order_key( $order_key ) );
439
  } else {
440
  wc_get_logger()->debug( 'WooCommerce couldn\'t retrieve the order ID from order key in the URL', [
441
- 'source' => 'wpm',
442
  ] );
443
  return false;
444
  }
@@ -457,10 +457,10 @@ class Shop
457
  return wc_get_order( $order_id );
458
  } else {
459
  wc_get_logger()->debug( 'WooCommerce couldn\'t retrieve the order ID from $wp->query_vars[\'order-received\']', [
460
- 'source' => 'wpm',
461
  ] );
462
  wc_get_logger()->debug( print_r( $wp->query_vars, true ), [
463
- 'source' => 'wpm',
464
  ] );
465
  return false;
466
  }
433
  }
434
 
435
  wc_get_logger()->debug( 'URL order key: ' . $order_key, [
436
+ 'source' => 'PMW',
437
  ] );
438
  return wc_get_order( wc_get_order_id_by_order_key( $order_key ) );
439
  } else {
440
  wc_get_logger()->debug( 'WooCommerce couldn\'t retrieve the order ID from order key in the URL', [
441
+ 'source' => 'PMW',
442
  ] );
443
  return false;
444
  }
457
  return wc_get_order( $order_id );
458
  } else {
459
  wc_get_logger()->debug( 'WooCommerce couldn\'t retrieve the order ID from $wp->query_vars[\'order-received\']', [
460
+ 'source' => 'PMW',
461
  ] );
462
  wc_get_logger()->debug( print_r( $wp->query_vars, true ), [
463
+ 'source' => 'PMW',
464
  ] );
465
  return false;
466
  }
classes/pixels/class-pixel-manager.php CHANGED
@@ -419,7 +419,7 @@ class Pixel_Manager
419
  }
420
  // Validate imported options
421
  if ( !Validations::validate_imported_options( $options ) ) {
422
- // wc_get_logger()->error('Invalid Options. Options not saved', ['source' => 'wpm']);
423
  wp_send_json_error( [
424
  'message' => 'Invalid options. Didn\'t pass validation.',
425
  ] );
@@ -524,7 +524,7 @@ class Pixel_Manager
524
  Product::get_product_data_layer_script( $product, false, true );
525
  } else {
526
  wc_get_logger()->debug( 'woocommerce_inject_product_data_on_product_page provided no product on a product page: .' . get_the_id(), [
527
- 'source' => 'wpm',
528
  ] );
529
  }
530
 
@@ -1178,7 +1178,7 @@ class Pixel_Manager
1178
  $data['cart'][$product->get_id()]['brand'] = Product::get_brand_name( $parent_product->get_id() );
1179
  } else {
1180
  wc_get_logger()->debug( 'Variation ' . $product->get_id() . ' doesn\'t link to a valid parent product.', [
1181
- 'source' => 'wpm',
1182
  ] );
1183
  }
1184
 
@@ -1220,14 +1220,10 @@ class Pixel_Manager
1220
  continue;
1221
  }
1222
  $product = wc_get_product( $product_id );
1223
-
1224
  if ( !is_object( $product ) ) {
1225
- wc_get_logger()->debug( 'ajax_pmw_get_product_ids received an invalid product', [
1226
- 'source' => 'wpm',
1227
- ] );
1228
  continue;
1229
  }
1230
-
1231
  $products[$product_id] = Product::get_product_details_for_datalayer( $product );
1232
  }
1233
  return $products;
419
  }
420
  // Validate imported options
421
  if ( !Validations::validate_imported_options( $options ) ) {
422
+ // wc_get_logger()->error('Invalid Options. Options not saved', ['source' => 'PMW']);
423
  wp_send_json_error( [
424
  'message' => 'Invalid options. Didn\'t pass validation.',
425
  ] );
524
  Product::get_product_data_layer_script( $product, false, true );
525
  } else {
526
  wc_get_logger()->debug( 'woocommerce_inject_product_data_on_product_page provided no product on a product page: .' . get_the_id(), [
527
+ 'source' => 'PMW',
528
  ] );
529
  }
530
 
1178
  $data['cart'][$product->get_id()]['brand'] = Product::get_brand_name( $parent_product->get_id() );
1179
  } else {
1180
  wc_get_logger()->debug( 'Variation ' . $product->get_id() . ' doesn\'t link to a valid parent product.', [
1181
+ 'source' => 'PMW',
1182
  ] );
1183
  }
1184
 
1220
  continue;
1221
  }
1222
  $product = wc_get_product( $product_id );
 
1223
  if ( !is_object( $product ) ) {
1224
+ // wc_get_logger()->debug('ajax_pmw_get_product_ids received an invalid product', ['source' => 'PMW']);
 
 
1225
  continue;
1226
  }
 
1227
  $products[$product_id] = Product::get_product_details_for_datalayer( $product );
1228
  }
1229
  return $products;
classes/pixels/class-shortcodes.php CHANGED
@@ -35,7 +35,7 @@ class Shortcodes extends Pixel {
35
  $product = wc_get_product($shortcode_attributes['product-id']);
36
 
37
  if (!is_object($product)) {
38
- wc_get_logger()->debug('get_product_data_layer_script received an invalid product', ['source' => 'wpm']);
39
  return;
40
  }
41
 
35
  $product = wc_get_product($shortcode_attributes['product-id']);
36
 
37
  if (!is_object($product)) {
38
+ wc_get_logger()->debug('get_product_data_layer_script received an invalid product', ['source' => 'PMW']);
39
  return;
40
  }
41
 
classes/pixels/google/class-google-pixel-manager.php CHANGED
@@ -49,7 +49,7 @@ class Google_Pixel_Manager
49
  $user_info = get_user_by( 'id', Shop::wpm_get_order_user_id( $order ) );
50
  if ( is_object( $user_info ) ) {
51
  wc_get_logger()->debug( 'Prevented order ID ' . $order->get_id() . ' to be reported through the Measurement Protocol for user ' . $user_info->user_login . ' (roles: ' . implode( ', ', $user_info->roles ) . ')', [
52
- 'source' => 'wpm',
53
  ] );
54
  }
55
  }
49
  $user_info = get_user_by( 'id', Shop::wpm_get_order_user_id( $order ) );
50
  if ( is_object( $user_info ) ) {
51
  wc_get_logger()->debug( 'Prevented order ID ' . $order->get_id() . ' to be reported through the Measurement Protocol for user ' . $user_info->user_login . ' (roles: ' . implode( ', ', $user_info->roles ) . ')', [
52
+ 'source' => 'PMW',
53
  ] );
54
  }
55
  }
classes/pixels/google/class-google.php CHANGED
@@ -37,14 +37,10 @@ class Google extends Pixel
37
  public function get_order_item_data( $order_item )
38
  {
39
  $product = $order_item->get_product();
40
-
41
  if ( !is_object( $product ) ) {
42
- wc_get_logger()->debug( 'get_order_item_data received an order item which is not a valid product: ' . $order_item->get_id(), [
43
- 'source' => 'wpm',
44
- ] );
45
  return [];
46
  }
47
-
48
  $dyn_r_ids = Product::get_dyn_r_ids( $product );
49
  /**
50
  * Get the name of the product.
37
  public function get_order_item_data( $order_item )
38
  {
39
  $product = $order_item->get_product();
 
40
  if ( !is_object( $product ) ) {
41
+ // wc_get_logger()->debug('get_order_item_data received an order item which is not a valid product: ' . $order_item->get_id(), ['source' => 'PMW']);
 
 
42
  return [];
43
  }
 
44
  $dyn_r_ids = Product::get_dyn_r_ids( $product );
45
  /**
46
  * Get the name of the product.
css/notifications.css ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ #pmw-purchase-new-license-button {
2
+ /* background half transparent light green */
3
+ /*background: rgba(0, 255, 0, 0.5);*/
4
+ /* border half transparent light green */
5
+
6
+ }
js/admin/notifications.js CHANGED
@@ -1,11 +1,24 @@
1
- jQuery(document).on("click", ".pmw-payment-gateway-notification .notice-dismiss", function () {
2
 
3
- jQuery.ajax({
4
- url : ajax_var.url,
5
- data: {
6
- action: "dismiss_pmw_payment_gateway_notification",
7
- nonce : ajax_var.nonce,
 
8
  },
 
 
 
9
  })
10
-
 
 
 
 
 
 
 
 
 
11
  })
1
+ jQuery(document).on("click", "#pmw-dismiss-license-expiry-message-button", function () {
2
 
3
+ fetch(pmwNotificationsApi.root + "pmw/v1/notifications/", {
4
+ method : "POST",
5
+ cache : "no-cache",
6
+ headers: {
7
+ "Content-Type": "application/json",
8
+ "X-WP-Nonce" : pmwNotificationsApi.nonce,
9
  },
10
+ body : JSON.stringify({
11
+ notification: "dismiss_license_expired_notification",
12
+ }),
13
  })
14
+ .then(function (response) {
15
+ if (response.ok) {
16
+ return response.json()
17
+ }
18
+ })
19
+ .then(function (data) {
20
+ if (data.success) {
21
+ jQuery("#license-expired-warning").remove()
22
+ }
23
+ })
24
  })
languages/woocommerce-google-adwords-conversion-tracking-tag.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the GNU General Public License v3.0.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Pixel Manager for WooCommerce 1.27.8\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-12-06T03:32:06+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.7.1\n"
15
  "X-Domain: woocommerce-google-adwords-conversion-tracking-tag\n"
@@ -34,14 +34,14 @@ msgstr ""
34
  msgid "https://sweetcode.com"
35
  msgstr ""
36
 
37
- #: classes/admin/class-admin.php:77
38
  msgid "GA4 Attribution"
39
  msgstr ""
40
 
41
  #: classes/admin/class-admin.php:334
42
  #: classes/admin/class-admin.php:335
43
- #: wgact.php:315
44
  #: wgact.php:316
 
45
  msgid "Pixel Manager"
46
  msgstr ""
47
 
@@ -306,628 +306,627 @@ msgstr ""
306
  msgid "Author"
307
  msgstr ""
308
 
309
- #: classes/admin/class-admin.php:1408
310
  msgid ""
311
  "It looks like you are using some sort of ad or script blocker which is blocking the script and CSS files of this plugin.\n"
312
  " In order for the plugin to work properly you need to disable the script blocker."
313
  msgstr ""
314
 
315
- #: classes/admin/class-admin.php:1415
316
- #: classes/admin/class-notifications.php:96
317
- #: classes/admin/class-notifications.php:146
318
  msgid "Learn more"
319
  msgstr ""
320
 
321
- #: classes/admin/class-admin.php:1458
322
  msgid "Profit Driven Marketing by SweetCode"
323
  msgstr ""
324
 
325
- #: classes/admin/class-admin.php:1465
326
  msgid "Show Pro version settings"
327
  msgstr ""
328
 
329
- #: classes/admin/class-admin.php:1478
330
  msgid "Enabling this will only show you the pro settings in the user interface. It won't actually enable the pro features. If you want to try out the pro features head over to sweetcode.com and sign up for a trial."
331
  msgstr ""
332
 
333
- #: classes/admin/class-admin.php:1484
334
  msgid "Visit us here:"
335
  msgstr ""
336
 
337
- #: classes/admin/class-admin.php:1530
338
  msgid "Payment Gateway Tracking Accuracy Report"
339
  msgstr ""
340
 
341
- #: classes/admin/class-admin.php:1531
342
- #: classes/admin/class-admin.php:3401
343
- #: classes/admin/class-admin.php:3409
344
  msgid "beta"
345
  msgstr ""
346
 
347
- #: classes/admin/class-admin.php:1535
348
  msgid "What's this? Follow this link to learn more"
349
  msgstr ""
350
 
351
- #: classes/admin/class-admin.php:1543
352
  msgid "Available payment gateways"
353
  msgstr ""
354
 
355
- #: classes/admin/class-admin.php:1550
356
  msgid "id"
357
  msgstr ""
358
 
359
- #: classes/admin/class-admin.php:1551
360
  msgid "method_title"
361
  msgstr ""
362
 
363
- #: classes/admin/class-admin.php:1552
364
  msgid "class"
365
  msgstr ""
366
 
367
- #: classes/admin/class-admin.php:1570
368
  msgid "Purchase confirmation page reached per gateway (active and inactive)"
369
  msgstr ""
370
 
371
- #: classes/admin/class-admin.php:1578
372
- #: classes/admin/class-admin.php:1627
373
- #: classes/admin/class-admin.php:1702
374
  msgid "The analysis is being generated. Please check back in 5 minutes."
375
  msgstr ""
376
 
377
- #: classes/admin/class-admin.php:1619
378
  msgid "Purchase confirmation page reached per gateway (only active), weighted by frequency"
379
  msgstr ""
380
 
381
- #: classes/admin/class-admin.php:1690
382
  msgid "Automatic Conversion Recovery (ACR)"
383
  msgstr ""
384
 
385
  #. translators: The number and percentage of orders that were recovered by the Automatic Conversion Recovery (ACR).
386
- #: classes/admin/class-admin.php:1778
387
  msgid "ACR recovered %1$s (%2$s%%) out of %3$s missing conversions."
388
  msgstr ""
389
 
390
- #: classes/admin/class-admin.php:1796
391
  msgid "This feature is only available in the pro version of the plugin. Follow the link to learn more about it:"
392
  msgstr ""
393
 
394
- #: classes/admin/class-admin.php:1798
395
  msgid "Get the pro version of the Pixel Manager for WooCommerce over here"
396
  msgstr ""
397
 
398
- #: classes/admin/class-admin.php:1800
399
  msgid "Go Pro"
400
  msgstr ""
401
 
402
- #: classes/admin/class-admin.php:1829
403
  msgid "Contacting Support"
404
  msgstr ""
405
 
406
- #: classes/admin/class-admin.php:1851
407
  msgid "Debug Information"
408
  msgstr ""
409
 
410
- #: classes/admin/class-admin.php:1860
411
  msgid "copy to clipboard"
412
  msgstr ""
413
 
414
- #: classes/admin/class-admin.php:1870
415
  msgid "Export settings"
416
  msgstr ""
417
 
418
- #: classes/admin/class-admin.php:1882
419
  msgid "Export to disk"
420
  msgstr ""
421
 
422
- #: classes/admin/class-admin.php:1891
423
  msgid "Import settings"
424
  msgstr ""
425
 
426
- #: classes/admin/class-admin.php:1896
427
- #: classes/admin/class-admin.php:2521
428
  msgid "Settings imported successfully!"
429
  msgstr ""
430
 
431
- #: classes/admin/class-admin.php:1899
432
- #: classes/admin/class-admin.php:2524
433
  msgid "Reloading...(in 5 seconds)!"
434
  msgstr ""
435
 
436
- #: classes/admin/class-admin.php:1905
437
- #: classes/admin/class-admin.php:2530
438
  msgid "There was an error importing that file! Please try again."
439
  msgstr ""
440
 
441
- #: classes/admin/class-admin.php:1922
442
  msgid "Translations"
443
  msgstr ""
444
 
445
- #: classes/admin/class-admin.php:1923
446
  msgid "If you want to participate improving the translations of this plugin into your language, please follow this link:"
447
  msgstr ""
448
 
449
- #: classes/admin/class-admin.php:1941
450
  msgid "Post a support request in the WordPress support forum here: "
451
  msgstr ""
452
 
453
- #: classes/admin/class-admin.php:1944
454
  msgid "Support forum"
455
  msgstr ""
456
 
457
- #: classes/admin/class-admin.php:1948
458
  msgid "(Never post the debug or other sensitive information to the support forum. Instead send us the information by email.)"
459
  msgstr ""
460
 
461
- #: classes/admin/class-admin.php:1951
462
  msgid "Or send us an email to the following address: "
463
  msgstr ""
464
 
465
- #: classes/admin/class-admin.php:1967
466
  msgid "Send us your support request through the WooCommerce.com dashboard: "
467
  msgstr ""
468
 
469
- #: classes/admin/class-admin.php:1981
470
  msgid "More details about the developer of this plugin: "
471
  msgstr ""
472
 
473
- #: classes/admin/class-admin.php:1984
474
  msgid "Developer: SweetCode"
475
  msgstr ""
476
 
477
- #: classes/admin/class-admin.php:1986
478
  msgid "Website: "
479
  msgstr ""
480
 
481
- #: classes/admin/class-admin.php:2010
482
  msgid "The Google Analytics Universal property ID looks like this:"
483
  msgstr ""
484
 
485
- #: classes/admin/class-admin.php:2027
486
  msgid "The Google Analytics 4 measurement ID looks like this:"
487
  msgstr ""
488
 
489
- #: classes/admin/class-admin.php:2044
490
  msgid "The conversion ID looks similar to this:"
491
  msgstr ""
492
 
493
- #: classes/admin/class-admin.php:2061
494
  msgid "The purchase conversion label looks similar to this:"
495
  msgstr ""
496
 
497
- #: classes/admin/class-admin.php:2065
498
  msgid "Requires an active Google Ads Conversion ID"
499
  msgstr ""
500
 
501
- #: classes/admin/class-admin.php:2084
502
  msgid "The Google Optimize container ID looks like this:"
503
  msgstr ""
504
 
505
- #: classes/admin/class-admin.php:2086
506
- #: classes/admin/class-admin.php:2289
507
  msgid "or"
508
  msgstr ""
509
 
510
- #: classes/admin/class-admin.php:2103
511
  msgid "The Meta (Facebook) pixel ID looks similar to this:"
512
  msgstr ""
513
 
514
- #: classes/admin/class-admin.php:2122
515
  msgid "The Microsoft Advertising UET tag ID looks similar to this:"
516
  msgstr ""
517
 
518
- #: classes/admin/class-admin.php:2141
519
  msgid "The Twitter pixel ID looks similar to this:"
520
  msgstr ""
521
 
522
- #: classes/admin/class-admin.php:2160
523
  msgid "The Pinterest pixel ID looks similar to this:"
524
  msgstr ""
525
 
526
- #: classes/admin/class-admin.php:2176
527
  msgid "Enable Pinterest enhanced match"
528
  msgstr ""
529
 
530
- #: classes/admin/class-admin.php:2204
531
  msgid "The Snapchat pixel ID looks similar to this:"
532
  msgstr ""
533
 
534
- #: classes/admin/class-admin.php:2225
535
  msgid "The TikTok pixel ID looks similar to this:"
536
  msgstr ""
537
 
538
- #: classes/admin/class-admin.php:2241
539
  msgid "The Hotjar site ID looks similar to this:"
540
  msgstr ""
541
 
542
- #: classes/admin/class-admin.php:2251
543
  msgid "Order Subtotal: Doesn't include tax, shipping, and if available, fees like PayPal or Stripe fees (default)"
544
  msgstr ""
545
 
546
- #: classes/admin/class-admin.php:2259
547
  msgid "Order Total: Includes tax and shipping"
548
  msgstr ""
549
 
550
- #: classes/admin/class-admin.php:2273
551
  msgid "Profit Margin: Only reports the profit margin. Excludes tax, shipping, and where possible, gateway fees."
552
  msgstr ""
553
 
554
- #: classes/admin/class-admin.php:2281
555
  msgid "This is the order total amount reported back to the paid ads pixels (such as Google Ads, Facebook, etc.)"
556
  msgstr ""
557
 
558
- #: classes/admin/class-admin.php:2286
559
  msgid "To use the Profit Margin setting you will need to install one of the following two Cost of Goods plugins:"
560
  msgstr ""
561
 
562
- #: classes/admin/class-admin.php:2313
563
- #: classes/admin/class-admin.php:2323
564
  msgid "open the documentation"
565
  msgstr ""
566
 
567
- #: classes/admin/class-admin.php:2343
568
  msgid "Enable Google consent mode with standard settings"
569
  msgstr ""
570
 
571
- #: classes/admin/class-admin.php:2381
572
  msgid "If no region is set, then the restrictions are enabled for all regions. If you specify one or more regions, then the restrictions only apply for the specified regions."
573
  msgstr ""
574
 
575
- #: classes/admin/class-admin.php:2389
576
  msgid "Google Analytics Enhanced E-Commerce is "
577
  msgstr ""
578
 
579
- #: classes/admin/class-admin.php:2412
580
  msgid "Google Analytics 4 activation required"
581
  msgstr ""
582
 
583
- #: classes/admin/class-admin.php:2415
584
  msgid "If enabled, purchase and refund events will be sent to Google through the measurement protocol for increased accuracy."
585
  msgstr ""
586
 
587
- #: classes/admin/class-admin.php:2465
588
- #: classes/admin/class-admin.php:2720
589
  msgid "Copied feed URL to clipboard"
590
  msgstr ""
591
 
592
- #: classes/admin/class-admin.php:2470
593
- #: classes/admin/class-admin.php:2478
594
- #: classes/admin/class-admin.php:2725
595
- #: classes/admin/class-admin.php:2732
596
  msgid "Copy to clipboard"
597
  msgstr ""
598
 
599
- #: classes/admin/class-admin.php:2492
600
  msgid "Import credentials"
601
  msgstr ""
602
 
603
- #: classes/admin/class-admin.php:2503
604
  msgid "Delete credentials"
605
  msgstr ""
606
 
607
- #: classes/admin/class-admin.php:2514
608
  msgid "The GA4 property ID must be set."
609
  msgstr ""
610
 
611
- #: classes/admin/class-admin.php:2550
612
  msgid "Enable Google Analytics enhanced link attribution"
613
  msgstr ""
614
 
615
- #: classes/admin/class-admin.php:2566
616
- #: classes/admin/class-admin.php:2596
617
  msgid "You need to activate at least Google Analytics UA or Google Analytics 4"
618
  msgstr ""
619
 
620
- #: classes/admin/class-admin.php:2585
621
  msgid "Enable Google user ID"
622
  msgstr ""
623
 
624
- #: classes/admin/class-admin.php:2615
625
  msgid "Enable Google Ads Enhanced Conversions"
626
  msgstr ""
627
 
628
- #: classes/admin/class-admin.php:2626
629
  msgid "You need to activate Google Ads"
630
  msgstr ""
631
 
632
- #: classes/admin/class-admin.php:2646
633
  msgid "The Google Ads phone conversion number must be in the same format as on the website."
634
  msgstr ""
635
 
636
- #: classes/admin/class-admin.php:2682
637
  msgid "The conversion name must match the conversion name in Google Ads exactly."
638
  msgstr ""
639
 
640
- #: classes/admin/class-admin.php:2690
641
  msgid "Requires an active Google Ads Conversion ID and Conversion Label."
642
  msgstr ""
643
 
644
- #: classes/admin/class-admin.php:2740
645
  msgid "The Conversion Name must be set."
646
  msgstr ""
647
 
648
- #: classes/admin/class-admin.php:2748
649
  msgid "Borlabs Cookie detected. Automatic support is:"
650
  msgstr ""
651
 
652
- #: classes/admin/class-admin.php:2754
653
  msgid "Cookiebot detected. Automatic support is:"
654
  msgstr ""
655
 
656
- #: classes/admin/class-admin.php:2760
657
  msgid "Complianz GDPR detected. Automatic support is:"
658
  msgstr ""
659
 
660
- #: classes/admin/class-admin.php:2766
661
  msgid "Cookie Notice (by hu-manity.co) detected. Automatic support is:"
662
  msgstr ""
663
 
664
- #: classes/admin/class-admin.php:2772
665
  msgid "Cookie Script (by cookie-script.com) detected. Automatic support is:"
666
  msgstr ""
667
 
668
- #: classes/admin/class-admin.php:2778
669
  msgid "GDPR Cookie Compliance (by Moove Agency) detected. Automatic support is:"
670
  msgstr ""
671
 
672
- #: classes/admin/class-admin.php:2784
673
  msgid "GDPR Cookie Consent (by WebToffee) detected. Automatic support is:"
674
  msgstr ""
675
 
676
- #: classes/admin/class-admin.php:2803
677
  msgid "Enable Explicit Consent Mode"
678
  msgstr ""
679
 
680
- #: classes/admin/class-admin.php:2812
681
  msgid "Only activate the Explicit Consent Mode if you are also using a Cookie Management Platform (a cookie banner) that is compatible with this plugin. Find a list of compatible plugins in the documentation."
682
  msgstr ""
683
 
684
- #: classes/admin/class-admin.php:2832
685
- #: classes/admin/class-admin.php:2888
686
- #: classes/admin/class-admin.php:2917
687
- #: classes/admin/class-admin.php:2945
688
  msgid "You need to activate the Meta (Facebook) pixel"
689
  msgstr ""
690
 
691
- #: classes/admin/class-admin.php:2859
692
  msgid "The test event code automatically rotates frequently within Facebook. If you don't see the server events flowing in, first make sure that you've set the latest test event code."
693
  msgstr ""
694
 
695
- #: classes/admin/class-admin.php:2879
696
  msgid "Send CAPI hits for anonymous visitors who likely have blocked the Meta (Facebook) pixel."
697
  msgstr ""
698
 
699
- #: classes/admin/class-admin.php:2908
700
- #: classes/admin/class-admin.php:3048
701
  msgid "Send events with additional visitor identifiers, such as email and phone number, if available."
702
  msgstr ""
703
 
704
- #: classes/admin/class-admin.php:2936
705
  msgid "Enable Meta (Facebook) product microdata output"
706
  msgstr ""
707
 
708
- #: classes/admin/class-admin.php:2972
709
- #: classes/admin/class-admin.php:3028
710
- #: classes/admin/class-admin.php:3057
711
  msgid "You need to activate the TikTok pixel"
712
  msgstr ""
713
 
714
- #: classes/admin/class-admin.php:2999
715
  msgid "The test event code automatically rotates frequently within TikTok. If you don't see the server events flowing in, first make sure that you've set the latest test event code."
716
  msgstr ""
717
 
718
- #: classes/admin/class-admin.php:3019
719
  msgid "Send Events API hits for anonymous visitors who likely have blocked the TikTok pixel."
720
  msgstr ""
721
 
722
- #: classes/admin/class-admin.php:3084
723
  msgid "Only disable order duplication prevention for testing."
724
  msgstr ""
725
 
726
- #: classes/admin/class-admin.php:3090
727
  msgid "Automatically reactivates 6 hours after disabling duplication prevention."
728
  msgstr ""
729
 
730
- #: classes/admin/class-admin.php:3107
731
  msgid "Enable the maximum compatibility mode"
732
  msgstr ""
733
 
734
- #: classes/admin/class-admin.php:3142
735
  msgid "Automatic Conversion Recovery (ACR) is "
736
  msgstr ""
737
 
738
- #: classes/admin/class-admin.php:3160
739
  msgid "Display PMW related information on the order list page"
740
  msgstr ""
741
 
742
- #: classes/admin/class-admin.php:3183
743
  msgid "The Scroll Tracker thresholds. A comma separated list of scroll tracking thresholds in percent where the scroll tracker triggers its events."
744
  msgstr ""
745
 
746
- #: classes/admin/class-admin.php:3190
747
  msgid "Advanced order duplication prevention is "
748
  msgstr ""
749
 
750
- #: classes/admin/class-admin.php:3192
751
  msgid "Basic order duplication prevention is "
752
  msgstr ""
753
 
754
- #: classes/admin/class-admin.php:3216
755
  msgid "Enable dynamic remarketing audience collection"
756
  msgstr ""
757
 
758
- #: classes/admin/class-admin.php:3228
759
  msgid "You need to choose the correct product identifier setting in order to match the product identifiers in the product feeds."
760
  msgstr ""
761
 
762
- #: classes/admin/class-admin.php:3246
763
  msgid "Enable variations output"
764
  msgstr ""
765
 
766
- #: classes/admin/class-admin.php:3257
767
  msgid "In order for this to work you need to upload your product feed including product variations and the item_group_id. Disable it, if you choose only to upload the parent product for variable products."
768
  msgstr ""
769
 
770
- #: classes/admin/class-admin.php:3272
771
  msgid "Retail"
772
  msgstr ""
773
 
774
- #: classes/admin/class-admin.php:3282
775
  msgid "Education"
776
  msgstr ""
777
 
778
- #: classes/admin/class-admin.php:3292
779
  msgid "Hotels and rentals"
780
  msgstr ""
781
 
782
- #: classes/admin/class-admin.php:3302
783
  msgid "Jobs"
784
  msgstr ""
785
 
786
- #: classes/admin/class-admin.php:3312
787
  msgid "Local deals"
788
  msgstr ""
789
 
790
- #: classes/admin/class-admin.php:3322
791
  msgid "Real estate"
792
  msgstr ""
793
 
794
- #: classes/admin/class-admin.php:3332
795
  msgid "Custom"
796
  msgstr ""
797
 
798
- #: classes/admin/class-admin.php:3352
799
  msgid "ID of your Google Merchant Center account. It looks like this: 12345678"
800
  msgstr ""
801
 
802
- #: classes/admin/class-admin.php:3361
803
  msgid "post ID (default)"
804
  msgstr ""
805
 
806
- #: classes/admin/class-admin.php:3367
807
  msgid "SKU"
808
  msgstr ""
809
 
810
- #: classes/admin/class-admin.php:3374
811
  msgid "ID for the WooCommerce Google Product Feed. Outputs the post ID with woocommerce_gpf_ prefix *"
812
  msgstr ""
813
 
814
- #: classes/admin/class-admin.php:3381
815
  msgid "ID for the WooCommerce Google Listings & Ads Plugin. Outputs the post ID with gla_ prefix **"
816
  msgstr ""
817
 
818
- #: classes/admin/class-admin.php:3385
819
  msgid "Choose a product identifier."
820
  msgstr ""
821
 
822
- #: classes/admin/class-admin.php:3388
823
  msgid "* This is for users of the WooCommerce Google Product Feed Plugin"
824
  msgstr ""
825
 
826
- #: classes/admin/class-admin.php:3392
827
  msgid "** This is for users of the WooCommerce Google Listings & Ads Plugin"
828
  msgstr ""
829
 
830
- #: classes/admin/class-admin.php:3415
831
  #: classes/admin/class-admin.php:3420
 
832
  msgid "active"
833
  msgstr ""
834
 
835
- #: classes/admin/class-admin.php:3425
836
  #: classes/admin/class-admin.php:3430
 
837
  msgid "inactive"
838
  msgstr ""
839
 
840
- #: classes/admin/class-admin.php:3435
841
  #: classes/admin/class-admin.php:3440
 
842
  msgid "partially active"
843
  msgstr ""
844
 
845
- #: classes/admin/class-admin.php:3451
846
  msgid "Pro Feature"
847
  msgstr ""
848
 
849
- #: classes/admin/class-admin.php:3483
850
  msgid "You have entered an invalid Google Analytics Universal property ID."
851
  msgstr ""
852
 
853
- #: classes/admin/class-admin.php:3491
854
  msgid "You have entered an invalid Google Analytics 4 measurement ID."
855
  msgstr ""
856
 
857
- #: classes/admin/class-admin.php:3499
858
  msgid "You have entered an invalid Google Analytics 4 API key."
859
  msgstr ""
860
 
861
- #: classes/admin/class-admin.php:3507
862
  msgid "You have entered an invalid GA4 property ID."
863
  msgstr ""
864
 
865
- #: classes/admin/class-admin.php:3515
866
  msgid "You have entered an invalid conversion ID. It only contains 8 to 10 digits."
867
  msgstr ""
868
 
869
- #: classes/admin/class-admin.php:3523
870
- #: classes/admin/class-admin.php:3531
871
  msgid "You have entered an invalid conversion label."
872
  msgstr ""
873
 
874
- #: classes/admin/class-admin.php:3539
875
  msgid "You have entered an invalid merchant ID. It only contains 6 to 12 digits."
876
  msgstr ""
877
 
878
- #: classes/admin/class-admin.php:3547
879
  msgid "You have entered an invalid Google Optimize container ID."
880
  msgstr ""
881
 
882
- #: classes/admin/class-admin.php:3555
883
  msgid "You have entered an invalid Meta (Facebook) pixel ID. It only contains 14 to 16 digits."
884
  msgstr ""
885
 
886
- #: classes/admin/class-admin.php:3563
887
  msgid "You have entered an invalid Meta (Facebook) CAPI token."
888
  msgstr ""
889
 
890
- #: classes/admin/class-admin.php:3571
891
  msgid "You have entered an invalid Meta (Facebook) CAPI test_event_code."
892
  msgstr ""
893
 
894
- #: classes/admin/class-admin.php:3579
895
  msgid "You have entered an invalid Bing Ads UET tag ID. It only contains 7 to 9 digits."
896
  msgstr ""
897
 
898
- #: classes/admin/class-admin.php:3587
899
  msgid "You have entered an invalid Twitter pixel ID. It only contains 5 to 7 lowercase letters and numbers."
900
  msgstr ""
901
 
902
- #: classes/admin/class-admin.php:3595
903
  msgid "You have entered an invalid Pinterest pixel ID. It only contains 13 digits."
904
  msgstr ""
905
 
906
- #: classes/admin/class-admin.php:3603
907
  msgid "You have entered an invalid Snapchat pixel ID."
908
  msgstr ""
909
 
910
- #: classes/admin/class-admin.php:3611
911
  msgid "You have entered an invalid TikTok pixel ID."
912
  msgstr ""
913
 
914
- #: classes/admin/class-admin.php:3619
915
  msgid "You have entered an invalid TikTok Events API access token."
916
  msgstr ""
917
 
918
- #: classes/admin/class-admin.php:3627
919
  msgid "You have entered an invalid TikTok EAPI test_event_code."
920
  msgstr ""
921
 
922
- #: classes/admin/class-admin.php:3635
923
  msgid "You have entered an invalid Hotjar site ID. It only contains 6 to 9 digits."
924
  msgstr ""
925
 
926
- #: classes/admin/class-admin.php:3661
927
  msgid "You have entered the Scroll Tracker thresholds in the wrong format. It must be a list of comma separated percentages, like this \"25,50,75,100\""
928
  msgstr ""
929
 
930
- #: classes/admin/class-admin.php:3680
931
  msgid "You have entered an invalid conversion name. Special characters, quotes and single quotes are not allowed due to security reasons."
932
  msgstr ""
933
 
@@ -949,42 +948,49 @@ msgid "I already did"
949
  msgstr ""
950
 
951
  #: classes/admin/class-ask-for-rating.php:193
952
- #: classes/admin/class-notifications.php:113
953
- #: classes/admin/class-notifications.php:162
954
  msgid "If the dismiss button is not working, here's why >>"
955
  msgstr ""
956
 
957
- #: classes/admin/class-notifications.php:74
958
  msgid "Payment Gateway Accuracy Warning"
959
  msgstr ""
960
 
961
- #: classes/admin/class-notifications.php:89
962
- msgid "The Pixel Manager for WooCommerce plugin detected that the PayPal standard payment gateway is active. The PayPal standard payment gateway is an off-site payment gateway which impairs conversion tracking significantly. Please switch to an on-site payment gateway as soon as possible in order to increase your conversion tracking accuracy."
 
 
 
 
 
 
 
 
963
  msgstr ""
964
 
965
- #: classes/admin/class-notifications.php:101
966
- msgid "Open the WooCommerce payment methods settings"
967
  msgstr ""
968
 
969
- #: classes/admin/class-notifications.php:108
970
- #: classes/admin/class-notifications.php:157
971
  msgid "Click here to dismiss this warning forever"
972
  msgstr ""
973
 
974
- #: classes/admin/class-notifications.php:127
975
- msgid "The following plugin is not compatible with the Pixel Manager for WooCommerce: "
976
  msgstr ""
977
 
978
- #: classes/admin/class-notifications.php:133
979
- msgid "Version"
980
  msgstr ""
981
 
982
- #: classes/admin/class-notifications.php:138
983
- msgid "Please disable the plugin as soon as possible."
984
  msgstr ""
985
 
986
- #: classes/admin/class-notifications.php:142
987
- msgid "Find more information about the the reason in our documentation: "
988
  msgstr ""
989
 
990
  #: classes/admin/class-order-columns.php:83
@@ -1008,7 +1014,7 @@ msgid "Order not tracked by PMW"
1008
  msgstr ""
1009
 
1010
  #: classes/admin/class-order-columns.php:293
1011
- msgid "This order was created by a shop manager. Only orders created by customers are analysed."
1012
  msgstr ""
1013
 
1014
  #: classes/admin/class-order-columns.php:301
@@ -1019,14 +1025,14 @@ msgstr ""
1019
  msgid "Conversion pixels not fired yet"
1020
  msgstr ""
1021
 
1022
- #: wgact.php:331
1023
  msgid "Pixel Manager for WooCommerce error"
1024
  msgstr ""
1025
 
1026
- #: wgact.php:333
1027
  msgid "Your environment doesn't meet all the system requirements listed below."
1028
  msgstr ""
1029
 
1030
- #: wgact.php:337
1031
  msgid "The WooCommerce plugin needs to be activated"
1032
  msgstr ""
2
  # This file is distributed under the GNU General Public License v3.0.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Pixel Manager for WooCommerce 1.27.9\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-12-09T04:56:32+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.7.1\n"
15
  "X-Domain: woocommerce-google-adwords-conversion-tracking-tag\n"
34
  msgid "https://sweetcode.com"
35
  msgstr ""
36
 
37
+ #: classes/admin/class-admin.php:78
38
  msgid "GA4 Attribution"
39
  msgstr ""
40
 
41
  #: classes/admin/class-admin.php:334
42
  #: classes/admin/class-admin.php:335
 
43
  #: wgact.php:316
44
+ #: wgact.php:317
45
  msgid "Pixel Manager"
46
  msgstr ""
47
 
306
  msgid "Author"
307
  msgstr ""
308
 
309
+ #: classes/admin/class-admin.php:1413
310
  msgid ""
311
  "It looks like you are using some sort of ad or script blocker which is blocking the script and CSS files of this plugin.\n"
312
  " In order for the plugin to work properly you need to disable the script blocker."
313
  msgstr ""
314
 
315
+ #: classes/admin/class-admin.php:1420
316
+ #: classes/admin/class-notifications.php:164
 
317
  msgid "Learn more"
318
  msgstr ""
319
 
320
+ #: classes/admin/class-admin.php:1463
321
  msgid "Profit Driven Marketing by SweetCode"
322
  msgstr ""
323
 
324
+ #: classes/admin/class-admin.php:1470
325
  msgid "Show Pro version settings"
326
  msgstr ""
327
 
328
+ #: classes/admin/class-admin.php:1483
329
  msgid "Enabling this will only show you the pro settings in the user interface. It won't actually enable the pro features. If you want to try out the pro features head over to sweetcode.com and sign up for a trial."
330
  msgstr ""
331
 
332
+ #: classes/admin/class-admin.php:1489
333
  msgid "Visit us here:"
334
  msgstr ""
335
 
336
+ #: classes/admin/class-admin.php:1535
337
  msgid "Payment Gateway Tracking Accuracy Report"
338
  msgstr ""
339
 
340
+ #: classes/admin/class-admin.php:1536
341
+ #: classes/admin/class-admin.php:3406
342
+ #: classes/admin/class-admin.php:3414
343
  msgid "beta"
344
  msgstr ""
345
 
346
+ #: classes/admin/class-admin.php:1540
347
  msgid "What's this? Follow this link to learn more"
348
  msgstr ""
349
 
350
+ #: classes/admin/class-admin.php:1548
351
  msgid "Available payment gateways"
352
  msgstr ""
353
 
354
+ #: classes/admin/class-admin.php:1555
355
  msgid "id"
356
  msgstr ""
357
 
358
+ #: classes/admin/class-admin.php:1556
359
  msgid "method_title"
360
  msgstr ""
361
 
362
+ #: classes/admin/class-admin.php:1557
363
  msgid "class"
364
  msgstr ""
365
 
366
+ #: classes/admin/class-admin.php:1575
367
  msgid "Purchase confirmation page reached per gateway (active and inactive)"
368
  msgstr ""
369
 
370
+ #: classes/admin/class-admin.php:1583
371
+ #: classes/admin/class-admin.php:1632
372
+ #: classes/admin/class-admin.php:1707
373
  msgid "The analysis is being generated. Please check back in 5 minutes."
374
  msgstr ""
375
 
376
+ #: classes/admin/class-admin.php:1624
377
  msgid "Purchase confirmation page reached per gateway (only active), weighted by frequency"
378
  msgstr ""
379
 
380
+ #: classes/admin/class-admin.php:1695
381
  msgid "Automatic Conversion Recovery (ACR)"
382
  msgstr ""
383
 
384
  #. translators: The number and percentage of orders that were recovered by the Automatic Conversion Recovery (ACR).
385
+ #: classes/admin/class-admin.php:1783
386
  msgid "ACR recovered %1$s (%2$s%%) out of %3$s missing conversions."
387
  msgstr ""
388
 
389
+ #: classes/admin/class-admin.php:1801
390
  msgid "This feature is only available in the pro version of the plugin. Follow the link to learn more about it:"
391
  msgstr ""
392
 
393
+ #: classes/admin/class-admin.php:1803
394
  msgid "Get the pro version of the Pixel Manager for WooCommerce over here"
395
  msgstr ""
396
 
397
+ #: classes/admin/class-admin.php:1805
398
  msgid "Go Pro"
399
  msgstr ""
400
 
401
+ #: classes/admin/class-admin.php:1834
402
  msgid "Contacting Support"
403
  msgstr ""
404
 
405
+ #: classes/admin/class-admin.php:1856
406
  msgid "Debug Information"
407
  msgstr ""
408
 
409
+ #: classes/admin/class-admin.php:1865
410
  msgid "copy to clipboard"
411
  msgstr ""
412
 
413
+ #: classes/admin/class-admin.php:1875
414
  msgid "Export settings"
415
  msgstr ""
416
 
417
+ #: classes/admin/class-admin.php:1887
418
  msgid "Export to disk"
419
  msgstr ""
420
 
421
+ #: classes/admin/class-admin.php:1896
422
  msgid "Import settings"
423
  msgstr ""
424
 
425
+ #: classes/admin/class-admin.php:1901
426
+ #: classes/admin/class-admin.php:2526
427
  msgid "Settings imported successfully!"
428
  msgstr ""
429
 
430
+ #: classes/admin/class-admin.php:1904
431
+ #: classes/admin/class-admin.php:2529
432
  msgid "Reloading...(in 5 seconds)!"
433
  msgstr ""
434
 
435
+ #: classes/admin/class-admin.php:1910
436
+ #: classes/admin/class-admin.php:2535
437
  msgid "There was an error importing that file! Please try again."
438
  msgstr ""
439
 
440
+ #: classes/admin/class-admin.php:1927
441
  msgid "Translations"
442
  msgstr ""
443
 
444
+ #: classes/admin/class-admin.php:1928
445
  msgid "If you want to participate improving the translations of this plugin into your language, please follow this link:"
446
  msgstr ""
447
 
448
+ #: classes/admin/class-admin.php:1946
449
  msgid "Post a support request in the WordPress support forum here: "
450
  msgstr ""
451
 
452
+ #: classes/admin/class-admin.php:1949
453
  msgid "Support forum"
454
  msgstr ""
455
 
456
+ #: classes/admin/class-admin.php:1953
457
  msgid "(Never post the debug or other sensitive information to the support forum. Instead send us the information by email.)"
458
  msgstr ""
459
 
460
+ #: classes/admin/class-admin.php:1956
461
  msgid "Or send us an email to the following address: "
462
  msgstr ""
463
 
464
+ #: classes/admin/class-admin.php:1972
465
  msgid "Send us your support request through the WooCommerce.com dashboard: "
466
  msgstr ""
467
 
468
+ #: classes/admin/class-admin.php:1986
469
  msgid "More details about the developer of this plugin: "
470
  msgstr ""
471
 
472
+ #: classes/admin/class-admin.php:1989
473
  msgid "Developer: SweetCode"
474
  msgstr ""
475
 
476
+ #: classes/admin/class-admin.php:1991
477
  msgid "Website: "
478
  msgstr ""
479
 
480
+ #: classes/admin/class-admin.php:2015
481
  msgid "The Google Analytics Universal property ID looks like this:"
482
  msgstr ""
483
 
484
+ #: classes/admin/class-admin.php:2032
485
  msgid "The Google Analytics 4 measurement ID looks like this:"
486
  msgstr ""
487
 
488
+ #: classes/admin/class-admin.php:2049
489
  msgid "The conversion ID looks similar to this:"
490
  msgstr ""
491
 
492
+ #: classes/admin/class-admin.php:2066
493
  msgid "The purchase conversion label looks similar to this:"
494
  msgstr ""
495
 
496
+ #: classes/admin/class-admin.php:2070
497
  msgid "Requires an active Google Ads Conversion ID"
498
  msgstr ""
499
 
500
+ #: classes/admin/class-admin.php:2089
501
  msgid "The Google Optimize container ID looks like this:"
502
  msgstr ""
503
 
504
+ #: classes/admin/class-admin.php:2091
505
+ #: classes/admin/class-admin.php:2294
506
  msgid "or"
507
  msgstr ""
508
 
509
+ #: classes/admin/class-admin.php:2108
510
  msgid "The Meta (Facebook) pixel ID looks similar to this:"
511
  msgstr ""
512
 
513
+ #: classes/admin/class-admin.php:2127
514
  msgid "The Microsoft Advertising UET tag ID looks similar to this:"
515
  msgstr ""
516
 
517
+ #: classes/admin/class-admin.php:2146
518
  msgid "The Twitter pixel ID looks similar to this:"
519
  msgstr ""
520
 
521
+ #: classes/admin/class-admin.php:2165
522
  msgid "The Pinterest pixel ID looks similar to this:"
523
  msgstr ""
524
 
525
+ #: classes/admin/class-admin.php:2181
526
  msgid "Enable Pinterest enhanced match"
527
  msgstr ""
528
 
529
+ #: classes/admin/class-admin.php:2209
530
  msgid "The Snapchat pixel ID looks similar to this:"
531
  msgstr ""
532
 
533
+ #: classes/admin/class-admin.php:2230
534
  msgid "The TikTok pixel ID looks similar to this:"
535
  msgstr ""
536
 
537
+ #: classes/admin/class-admin.php:2246
538
  msgid "The Hotjar site ID looks similar to this:"
539
  msgstr ""
540
 
541
+ #: classes/admin/class-admin.php:2256
542
  msgid "Order Subtotal: Doesn't include tax, shipping, and if available, fees like PayPal or Stripe fees (default)"
543
  msgstr ""
544
 
545
+ #: classes/admin/class-admin.php:2264
546
  msgid "Order Total: Includes tax and shipping"
547
  msgstr ""
548
 
549
+ #: classes/admin/class-admin.php:2278
550
  msgid "Profit Margin: Only reports the profit margin. Excludes tax, shipping, and where possible, gateway fees."
551
  msgstr ""
552
 
553
+ #: classes/admin/class-admin.php:2286
554
  msgid "This is the order total amount reported back to the paid ads pixels (such as Google Ads, Facebook, etc.)"
555
  msgstr ""
556
 
557
+ #: classes/admin/class-admin.php:2291
558
  msgid "To use the Profit Margin setting you will need to install one of the following two Cost of Goods plugins:"
559
  msgstr ""
560
 
561
+ #: classes/admin/class-admin.php:2318
562
+ #: classes/admin/class-admin.php:2328
563
  msgid "open the documentation"
564
  msgstr ""
565
 
566
+ #: classes/admin/class-admin.php:2348
567
  msgid "Enable Google consent mode with standard settings"
568
  msgstr ""
569
 
570
+ #: classes/admin/class-admin.php:2386
571
  msgid "If no region is set, then the restrictions are enabled for all regions. If you specify one or more regions, then the restrictions only apply for the specified regions."
572
  msgstr ""
573
 
574
+ #: classes/admin/class-admin.php:2394
575
  msgid "Google Analytics Enhanced E-Commerce is "
576
  msgstr ""
577
 
578
+ #: classes/admin/class-admin.php:2417
579
  msgid "Google Analytics 4 activation required"
580
  msgstr ""
581
 
582
+ #: classes/admin/class-admin.php:2420
583
  msgid "If enabled, purchase and refund events will be sent to Google through the measurement protocol for increased accuracy."
584
  msgstr ""
585
 
586
+ #: classes/admin/class-admin.php:2470
587
+ #: classes/admin/class-admin.php:2725
588
  msgid "Copied feed URL to clipboard"
589
  msgstr ""
590
 
591
+ #: classes/admin/class-admin.php:2475
592
+ #: classes/admin/class-admin.php:2483
593
+ #: classes/admin/class-admin.php:2730
594
+ #: classes/admin/class-admin.php:2737
595
  msgid "Copy to clipboard"
596
  msgstr ""
597
 
598
+ #: classes/admin/class-admin.php:2497
599
  msgid "Import credentials"
600
  msgstr ""
601
 
602
+ #: classes/admin/class-admin.php:2508
603
  msgid "Delete credentials"
604
  msgstr ""
605
 
606
+ #: classes/admin/class-admin.php:2519
607
  msgid "The GA4 property ID must be set."
608
  msgstr ""
609
 
610
+ #: classes/admin/class-admin.php:2555
611
  msgid "Enable Google Analytics enhanced link attribution"
612
  msgstr ""
613
 
614
+ #: classes/admin/class-admin.php:2571
615
+ #: classes/admin/class-admin.php:2601
616
  msgid "You need to activate at least Google Analytics UA or Google Analytics 4"
617
  msgstr ""
618
 
619
+ #: classes/admin/class-admin.php:2590
620
  msgid "Enable Google user ID"
621
  msgstr ""
622
 
623
+ #: classes/admin/class-admin.php:2620
624
  msgid "Enable Google Ads Enhanced Conversions"
625
  msgstr ""
626
 
627
+ #: classes/admin/class-admin.php:2631
628
  msgid "You need to activate Google Ads"
629
  msgstr ""
630
 
631
+ #: classes/admin/class-admin.php:2651
632
  msgid "The Google Ads phone conversion number must be in the same format as on the website."
633
  msgstr ""
634
 
635
+ #: classes/admin/class-admin.php:2687
636
  msgid "The conversion name must match the conversion name in Google Ads exactly."
637
  msgstr ""
638
 
639
+ #: classes/admin/class-admin.php:2695
640
  msgid "Requires an active Google Ads Conversion ID and Conversion Label."
641
  msgstr ""
642
 
643
+ #: classes/admin/class-admin.php:2745
644
  msgid "The Conversion Name must be set."
645
  msgstr ""
646
 
647
+ #: classes/admin/class-admin.php:2753
648
  msgid "Borlabs Cookie detected. Automatic support is:"
649
  msgstr ""
650
 
651
+ #: classes/admin/class-admin.php:2759
652
  msgid "Cookiebot detected. Automatic support is:"
653
  msgstr ""
654
 
655
+ #: classes/admin/class-admin.php:2765
656
  msgid "Complianz GDPR detected. Automatic support is:"
657
  msgstr ""
658
 
659
+ #: classes/admin/class-admin.php:2771
660
  msgid "Cookie Notice (by hu-manity.co) detected. Automatic support is:"
661
  msgstr ""
662
 
663
+ #: classes/admin/class-admin.php:2777
664
  msgid "Cookie Script (by cookie-script.com) detected. Automatic support is:"
665
  msgstr ""
666
 
667
+ #: classes/admin/class-admin.php:2783
668
  msgid "GDPR Cookie Compliance (by Moove Agency) detected. Automatic support is:"
669
  msgstr ""
670
 
671
+ #: classes/admin/class-admin.php:2789
672
  msgid "GDPR Cookie Consent (by WebToffee) detected. Automatic support is:"
673
  msgstr ""
674
 
675
+ #: classes/admin/class-admin.php:2808
676
  msgid "Enable Explicit Consent Mode"
677
  msgstr ""
678
 
679
+ #: classes/admin/class-admin.php:2817
680
  msgid "Only activate the Explicit Consent Mode if you are also using a Cookie Management Platform (a cookie banner) that is compatible with this plugin. Find a list of compatible plugins in the documentation."
681
  msgstr ""
682
 
683
+ #: classes/admin/class-admin.php:2837
684
+ #: classes/admin/class-admin.php:2893
685
+ #: classes/admin/class-admin.php:2922
686
+ #: classes/admin/class-admin.php:2950
687
  msgid "You need to activate the Meta (Facebook) pixel"
688
  msgstr ""
689
 
690
+ #: classes/admin/class-admin.php:2864
691
  msgid "The test event code automatically rotates frequently within Facebook. If you don't see the server events flowing in, first make sure that you've set the latest test event code."
692
  msgstr ""
693
 
694
+ #: classes/admin/class-admin.php:2884
695
  msgid "Send CAPI hits for anonymous visitors who likely have blocked the Meta (Facebook) pixel."
696
  msgstr ""
697
 
698
+ #: classes/admin/class-admin.php:2913
699
+ #: classes/admin/class-admin.php:3053
700
  msgid "Send events with additional visitor identifiers, such as email and phone number, if available."
701
  msgstr ""
702
 
703
+ #: classes/admin/class-admin.php:2941
704
  msgid "Enable Meta (Facebook) product microdata output"
705
  msgstr ""
706
 
707
+ #: classes/admin/class-admin.php:2977
708
+ #: classes/admin/class-admin.php:3033
709
+ #: classes/admin/class-admin.php:3062
710
  msgid "You need to activate the TikTok pixel"
711
  msgstr ""
712
 
713
+ #: classes/admin/class-admin.php:3004
714
  msgid "The test event code automatically rotates frequently within TikTok. If you don't see the server events flowing in, first make sure that you've set the latest test event code."
715
  msgstr ""
716
 
717
+ #: classes/admin/class-admin.php:3024
718
  msgid "Send Events API hits for anonymous visitors who likely have blocked the TikTok pixel."
719
  msgstr ""
720
 
721
+ #: classes/admin/class-admin.php:3089
722
  msgid "Only disable order duplication prevention for testing."
723
  msgstr ""
724
 
725
+ #: classes/admin/class-admin.php:3095
726
  msgid "Automatically reactivates 6 hours after disabling duplication prevention."
727
  msgstr ""
728
 
729
+ #: classes/admin/class-admin.php:3112
730
  msgid "Enable the maximum compatibility mode"
731
  msgstr ""
732
 
733
+ #: classes/admin/class-admin.php:3147
734
  msgid "Automatic Conversion Recovery (ACR) is "
735
  msgstr ""
736
 
737
+ #: classes/admin/class-admin.php:3165
738
  msgid "Display PMW related information on the order list page"
739
  msgstr ""
740
 
741
+ #: classes/admin/class-admin.php:3188
742
  msgid "The Scroll Tracker thresholds. A comma separated list of scroll tracking thresholds in percent where the scroll tracker triggers its events."
743
  msgstr ""
744
 
745
+ #: classes/admin/class-admin.php:3195
746
  msgid "Advanced order duplication prevention is "
747
  msgstr ""
748
 
749
+ #: classes/admin/class-admin.php:3197
750
  msgid "Basic order duplication prevention is "
751
  msgstr ""
752
 
753
+ #: classes/admin/class-admin.php:3221
754
  msgid "Enable dynamic remarketing audience collection"
755
  msgstr ""
756
 
757
+ #: classes/admin/class-admin.php:3233
758
  msgid "You need to choose the correct product identifier setting in order to match the product identifiers in the product feeds."
759
  msgstr ""
760
 
761
+ #: classes/admin/class-admin.php:3251
762
  msgid "Enable variations output"
763
  msgstr ""
764
 
765
+ #: classes/admin/class-admin.php:3262
766
  msgid "In order for this to work you need to upload your product feed including product variations and the item_group_id. Disable it, if you choose only to upload the parent product for variable products."
767
  msgstr ""
768
 
769
+ #: classes/admin/class-admin.php:3277
770
  msgid "Retail"
771
  msgstr ""
772
 
773
+ #: classes/admin/class-admin.php:3287
774
  msgid "Education"
775
  msgstr ""
776
 
777
+ #: classes/admin/class-admin.php:3297
778
  msgid "Hotels and rentals"
779
  msgstr ""
780
 
781
+ #: classes/admin/class-admin.php:3307
782
  msgid "Jobs"
783
  msgstr ""
784
 
785
+ #: classes/admin/class-admin.php:3317
786
  msgid "Local deals"
787
  msgstr ""
788
 
789
+ #: classes/admin/class-admin.php:3327
790
  msgid "Real estate"
791
  msgstr ""
792
 
793
+ #: classes/admin/class-admin.php:3337
794
  msgid "Custom"
795
  msgstr ""
796
 
797
+ #: classes/admin/class-admin.php:3357
798
  msgid "ID of your Google Merchant Center account. It looks like this: 12345678"
799
  msgstr ""
800
 
801
+ #: classes/admin/class-admin.php:3366
802
  msgid "post ID (default)"
803
  msgstr ""
804
 
805
+ #: classes/admin/class-admin.php:3372
806
  msgid "SKU"
807
  msgstr ""
808
 
809
+ #: classes/admin/class-admin.php:3379
810
  msgid "ID for the WooCommerce Google Product Feed. Outputs the post ID with woocommerce_gpf_ prefix *"
811
  msgstr ""
812
 
813
+ #: classes/admin/class-admin.php:3386
814
  msgid "ID for the WooCommerce Google Listings & Ads Plugin. Outputs the post ID with gla_ prefix **"
815
  msgstr ""
816
 
817
+ #: classes/admin/class-admin.php:3390
818
  msgid "Choose a product identifier."
819
  msgstr ""
820
 
821
+ #: classes/admin/class-admin.php:3393
822
  msgid "* This is for users of the WooCommerce Google Product Feed Plugin"
823
  msgstr ""
824
 
825
+ #: classes/admin/class-admin.php:3397
826
  msgid "** This is for users of the WooCommerce Google Listings & Ads Plugin"
827
  msgstr ""
828
 
 
829
  #: classes/admin/class-admin.php:3420
830
+ #: classes/admin/class-admin.php:3425
831
  msgid "active"
832
  msgstr ""
833
 
 
834
  #: classes/admin/class-admin.php:3430
835
+ #: classes/admin/class-admin.php:3435
836
  msgid "inactive"
837
  msgstr ""
838
 
 
839
  #: classes/admin/class-admin.php:3440
840
+ #: classes/admin/class-admin.php:3445
841
  msgid "partially active"
842
  msgstr ""
843
 
844
+ #: classes/admin/class-admin.php:3456
845
  msgid "Pro Feature"
846
  msgstr ""
847
 
848
+ #: classes/admin/class-admin.php:3488
849
  msgid "You have entered an invalid Google Analytics Universal property ID."
850
  msgstr ""
851
 
852
+ #: classes/admin/class-admin.php:3496
853
  msgid "You have entered an invalid Google Analytics 4 measurement ID."
854
  msgstr ""
855
 
856
+ #: classes/admin/class-admin.php:3504
857
  msgid "You have entered an invalid Google Analytics 4 API key."
858
  msgstr ""
859
 
860
+ #: classes/admin/class-admin.php:3512
861
  msgid "You have entered an invalid GA4 property ID."
862
  msgstr ""
863
 
864
+ #: classes/admin/class-admin.php:3520
865
  msgid "You have entered an invalid conversion ID. It only contains 8 to 10 digits."
866
  msgstr ""
867
 
868
+ #: classes/admin/class-admin.php:3528
869
+ #: classes/admin/class-admin.php:3536
870
  msgid "You have entered an invalid conversion label."
871
  msgstr ""
872
 
873
+ #: classes/admin/class-admin.php:3544
874
  msgid "You have entered an invalid merchant ID. It only contains 6 to 12 digits."
875
  msgstr ""
876
 
877
+ #: classes/admin/class-admin.php:3552
878
  msgid "You have entered an invalid Google Optimize container ID."
879
  msgstr ""
880
 
881
+ #: classes/admin/class-admin.php:3560
882
  msgid "You have entered an invalid Meta (Facebook) pixel ID. It only contains 14 to 16 digits."
883
  msgstr ""
884
 
885
+ #: classes/admin/class-admin.php:3568
886
  msgid "You have entered an invalid Meta (Facebook) CAPI token."
887
  msgstr ""
888
 
889
+ #: classes/admin/class-admin.php:3576
890
  msgid "You have entered an invalid Meta (Facebook) CAPI test_event_code."
891
  msgstr ""
892
 
893
+ #: classes/admin/class-admin.php:3584
894
  msgid "You have entered an invalid Bing Ads UET tag ID. It only contains 7 to 9 digits."
895
  msgstr ""
896
 
897
+ #: classes/admin/class-admin.php:3592
898
  msgid "You have entered an invalid Twitter pixel ID. It only contains 5 to 7 lowercase letters and numbers."
899
  msgstr ""
900
 
901
+ #: classes/admin/class-admin.php:3600
902
  msgid "You have entered an invalid Pinterest pixel ID. It only contains 13 digits."
903
  msgstr ""
904
 
905
+ #: classes/admin/class-admin.php:3608
906
  msgid "You have entered an invalid Snapchat pixel ID."
907
  msgstr ""
908
 
909
+ #: classes/admin/class-admin.php:3616
910
  msgid "You have entered an invalid TikTok pixel ID."
911
  msgstr ""
912
 
913
+ #: classes/admin/class-admin.php:3624
914
  msgid "You have entered an invalid TikTok Events API access token."
915
  msgstr ""
916
 
917
+ #: classes/admin/class-admin.php:3632
918
  msgid "You have entered an invalid TikTok EAPI test_event_code."
919
  msgstr ""
920
 
921
+ #: classes/admin/class-admin.php:3640
922
  msgid "You have entered an invalid Hotjar site ID. It only contains 6 to 9 digits."
923
  msgstr ""
924
 
925
+ #: classes/admin/class-admin.php:3666
926
  msgid "You have entered the Scroll Tracker thresholds in the wrong format. It must be a list of comma separated percentages, like this \"25,50,75,100\""
927
  msgstr ""
928
 
929
+ #: classes/admin/class-admin.php:3685
930
  msgid "You have entered an invalid conversion name. Special characters, quotes and single quotes are not allowed due to security reasons."
931
  msgstr ""
932
 
948
  msgstr ""
949
 
950
  #: classes/admin/class-ask-for-rating.php:193
951
+ #: classes/admin/class-notifications.php:180
952
+ #: classes/admin/class-notifications.php:234
953
  msgid "If the dismiss button is not working, here's why >>"
954
  msgstr ""
955
 
956
+ #: classes/admin/class-notifications.php:132
957
  msgid "Payment Gateway Accuracy Warning"
958
  msgstr ""
959
 
960
+ #: classes/admin/class-notifications.php:145
961
+ msgid "The following plugin is not compatible with the Pixel Manager for WooCommerce: "
962
+ msgstr ""
963
+
964
+ #: classes/admin/class-notifications.php:151
965
+ msgid "Version"
966
+ msgstr ""
967
+
968
+ #: classes/admin/class-notifications.php:156
969
+ msgid "Please disable the plugin as soon as possible."
970
  msgstr ""
971
 
972
+ #: classes/admin/class-notifications.php:160
973
+ msgid "Find more information about the the reason in our documentation: "
974
  msgstr ""
975
 
976
+ #: classes/admin/class-notifications.php:175
 
977
  msgid "Click here to dismiss this warning forever"
978
  msgstr ""
979
 
980
+ #: classes/admin/class-notifications.php:207
981
+ msgid "Your license for the Pixel Manager for WooCommerce has been removed or has expired. All premium features have been disabled."
982
  msgstr ""
983
 
984
+ #: classes/admin/class-notifications.php:211
985
+ msgid "More info"
986
  msgstr ""
987
 
988
+ #: classes/admin/class-notifications.php:219
989
+ msgid "Purchase a new license"
990
  msgstr ""
991
 
992
+ #: classes/admin/class-notifications.php:229
993
+ msgid "Click here to dismiss this warning"
994
  msgstr ""
995
 
996
  #: classes/admin/class-order-columns.php:83
1014
  msgstr ""
1015
 
1016
  #: classes/admin/class-order-columns.php:293
1017
+ msgid "This order was either created by a shop manager, or automatically added by an extension like a subscription plugin. Only orders created by customers are analysed."
1018
  msgstr ""
1019
 
1020
  #: classes/admin/class-order-columns.php:301
1025
  msgid "Conversion pixels not fired yet"
1026
  msgstr ""
1027
 
1028
+ #: wgact.php:332
1029
  msgid "Pixel Manager for WooCommerce error"
1030
  msgstr ""
1031
 
1032
+ #: wgact.php:334
1033
  msgid "Your environment doesn't meet all the system requirements listed below."
1034
  msgstr ""
1035
 
1036
+ #: wgact.php:338
1037
  msgid "The WooCommerce plugin needs to be activated"
1038
  msgstr ""
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce, google analytics, google ads, facebook, conversion tracking,
4
  Requires at least: 3.7
5
  Tested up to: 6.1
6
  Requires PHP: 7.3
7
- Stable tag: 1.27.8
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -221,6 +221,15 @@ You can send the link to the front page of your shop too if you think it would b
221
 
222
  == Changelog ==
223
 
 
 
 
 
 
 
 
 
 
224
  = 1.27.8 = 06.12.2022
225
 
226
 
4
  Requires at least: 3.7
5
  Tested up to: 6.1
6
  Requires PHP: 7.3
7
+ Stable tag: 1.27.9
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
221
 
222
  == Changelog ==
223
 
224
+ = 1.27.9 = 09.12.2022
225
+
226
+
227
+ * Tweak: Added case insensitive flag to define() calls to prevent future PHP warnings.
228
+ * Tweak: Disabled some loggers.
229
+ * Tweak: Adjusted the woocommerce_ga_disable_tracking filter to only be used if GA is active in the Pixel Manager.
230
+ * Tweak: Refactored logging.
231
+ * Tweak: Improved a few descriptions.
232
+
233
  = 1.27.8 = 06.12.2022
234
 
235
 
vendor/composer/installed.php CHANGED
@@ -3,7 +3,7 @@
3
  'name' => 'sweetcode/pixel-manager-for-woocommerce',
4
  'pretty_version' => 'dev-master',
5
  'version' => 'dev-master',
6
- 'reference' => '1f0fff3ecaa0fdc67ab860c80700a09fc214da62',
7
  'type' => 'wordpress-plugin',
8
  'install_path' => __DIR__ . '/../../',
9
  'aliases' => array(),
@@ -49,7 +49,7 @@
49
  'sweetcode/pixel-manager-for-woocommerce' => array(
50
  'pretty_version' => 'dev-master',
51
  'version' => 'dev-master',
52
- 'reference' => '1f0fff3ecaa0fdc67ab860c80700a09fc214da62',
53
  'type' => 'wordpress-plugin',
54
  'install_path' => __DIR__ . '/../../',
55
  'aliases' => array(),
3
  'name' => 'sweetcode/pixel-manager-for-woocommerce',
4
  'pretty_version' => 'dev-master',
5
  'version' => 'dev-master',
6
+ 'reference' => '62bde2ca38bc3f5e9d658b99024c8d937d6b343a',
7
  'type' => 'wordpress-plugin',
8
  'install_path' => __DIR__ . '/../../',
9
  'aliases' => array(),
49
  'sweetcode/pixel-manager-for-woocommerce' => array(
50
  'pretty_version' => 'dev-master',
51
  'version' => 'dev-master',
52
+ 'reference' => '62bde2ca38bc3f5e9d658b99024c8d937d6b343a',
53
  'type' => 'wordpress-plugin',
54
  'install_path' => __DIR__ . '/../../',
55
  'aliases' => array(),
wgact.php CHANGED
@@ -10,7 +10,7 @@
10
  * Developer URI: https://sweetcode.com
11
  * Text Domain: woocommerce-google-adwords-conversion-tracking-tag
12
  * Domain path: /languages
13
- * * Version: 1.27.8
14
  *
15
  * WC requires at least: 3.7
16
  * WC tested up to: 7.1
@@ -19,7 +19,7 @@
19
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
  **/
22
- const WPM_CURRENT_VERSION = '1.27.8' ;
23
  // TODO add option checkbox on uninstall and ask if user wants to delete options from db
24
 
25
  if ( !defined( 'ABSPATH' ) ) {
@@ -28,9 +28,10 @@ if ( !defined( 'ABSPATH' ) ) {
28
  }
29
 
30
  use WCPM\Classes\Admin\Admin ;
 
31
  use WCPM\Classes\Admin\Debug_Info ;
32
  use WCPM\Classes\Admin\Environment_Check ;
33
- use WCPM\Classes\Admin\Notification_Handlers ;
34
  use WCPM\Classes\Admin\Order_Columns ;
35
  use WCPM\Classes\Database ;
36
  use WCPM\Classes\Deprecated_Filters ;
@@ -115,13 +116,13 @@ if ( function_exists( 'wpm_fs' ) ) {
115
  protected $options ;
116
  public function __construct()
117
  {
118
- define( 'WPM_PLUGIN_PREFIX', 'wpm_' );
119
- define( 'WPM_DB_VERSION', '3' );
120
- define( 'WPM_DB_OPTIONS_NAME', 'wgact_plugin_options' );
121
- define( 'WPM_DB_NOTIFICATIONS_NAME', 'wgact_notifications' );
122
- define( 'WPM_PLUGIN_DIR_PATH', plugin_dir_url( __FILE__ ) );
123
- define( 'WPM_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
124
- define( 'WPM_DB_RATINGS', 'wgact_ratings' );
125
  require_once dirname( __FILE__ ) . '/vendor/woocommerce/action-scheduler/action-scheduler.php';
126
  // check if WooCommerce is running
127
  // currently this is the most reliable test for single and multisite setups
@@ -340,6 +341,7 @@ if ( function_exists( 'wpm_fs' ) ) {
340
  // startup all functions
341
  public function init()
342
  {
 
343
 
344
  if ( is_admin() ) {
345
  // display admin views
@@ -347,7 +349,7 @@ if ( function_exists( 'wpm_fs' ) ) {
347
  // ask visitor for rating
348
  Ask_For_Rating::get_instance();
349
  // Load admin notification handlers
350
- Notification_Handlers::get_instance();
351
  // Show PMW information on the order list page
352
  if ( Environment_Check::get_instance()->is_woocommerce_active() && $this->options['shop']['order_list_info'] ) {
353
  Order_Columns::get_instance();
@@ -409,11 +411,6 @@ if ( function_exists( 'wpm_fs' ) ) {
409
  }
410
 
411
  // initialise the options
412
- /**
413
- * Noinspection
414
- *
415
- * @noinspection GrazieInspection
416
- */
417
  private function wpm_options_init()
418
  {
419
  // set options equal to defaults
10
  * Developer URI: https://sweetcode.com
11
  * Text Domain: woocommerce-google-adwords-conversion-tracking-tag
12
  * Domain path: /languages
13
+ * * Version: 1.27.9
14
  *
15
  * WC requires at least: 3.7
16
  * WC tested up to: 7.1
19
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
  **/
22
+ const WPM_CURRENT_VERSION = '1.27.9' ;
23
  // TODO add option checkbox on uninstall and ask if user wants to delete options from db
24
 
25
  if ( !defined( 'ABSPATH' ) ) {
28
  }
29
 
30
  use WCPM\Classes\Admin\Admin ;
31
+ use WCPM\Classes\Admin\Admin_REST ;
32
  use WCPM\Classes\Admin\Debug_Info ;
33
  use WCPM\Classes\Admin\Environment_Check ;
34
+ use WCPM\Classes\Admin\Notifications ;
35
  use WCPM\Classes\Admin\Order_Columns ;
36
  use WCPM\Classes\Database ;
37
  use WCPM\Classes\Deprecated_Filters ;
116
  protected $options ;
117
  public function __construct()
118
  {
119
+ define( 'WPM_PLUGIN_PREFIX', 'wpm_', false );
120
+ define( 'WPM_DB_VERSION', '3', false );
121
+ define( 'WPM_DB_OPTIONS_NAME', 'wgact_plugin_options', false );
122
+ define( 'WPM_DB_NOTIFICATIONS_NAME', 'wgact_notifications', false );
123
+ define( 'WPM_PLUGIN_DIR_PATH', plugin_dir_url( __FILE__ ), false );
124
+ define( 'WPM_PLUGIN_BASENAME', plugin_basename( __FILE__ ), false );
125
+ define( 'WPM_DB_RATINGS', 'wgact_ratings', false );
126
  require_once dirname( __FILE__ ) . '/vendor/woocommerce/action-scheduler/action-scheduler.php';
127
  // check if WooCommerce is running
128
  // currently this is the most reliable test for single and multisite setups
341
  // startup all functions
342
  public function init()
343
  {
344
+ Admin_REST::get_instance();
345
 
346
  if ( is_admin() ) {
347
  // display admin views
349
  // ask visitor for rating
350
  Ask_For_Rating::get_instance();
351
  // Load admin notification handlers
352
+ Notifications::get_instance();
353
  // Show PMW information on the order list page
354
  if ( Environment_Check::get_instance()->is_woocommerce_active() && $this->options['shop']['order_list_info'] ) {
355
  Order_Columns::get_instance();
411
  }
412
 
413
  // initialise the options
 
 
 
 
 
414
  private function wpm_options_init()
415
  {
416
  // set options equal to defaults