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

Version Description

12.09.2022

  • Tweak: Added option to disable the PMW order list info output.
  • Tweak: Updated default settings.
  • Tweak: Added doc link for order list info.
  • Tweak: Refactored running PMW tracking accuracy analysis report to better work with action scheduler to avoid running into its initialization bug
  • Fix: Fixed options validation when importing the settings.
  • Fix: Added safeguard to not fire the conversion pixels on the /order-pay/ page.
Download this release

Release Info

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

Code changes from version 1.20.2 to 1.21.0

classes/admin/class-admin.php CHANGED
@@ -399,8 +399,8 @@ class Admin
399
  // add fields for the order total logic
400
  add_settings_field(
401
  'wpm_plugin_order_total_logic',
402
- esc_html__( 'Order Total Logic', 'woocommerce-google-adwords-conversion-tracking-tag' ),
403
- [ $this, 'wpm_option_html_shop_order_total_logic' ],
404
  'wpm_plugin_options_page',
405
  $section_ids['settings_name']
406
  );
@@ -439,7 +439,15 @@ class Admin
439
  $section_ids['settings_name']
440
  );
441
  }
442
-
 
 
 
 
 
 
 
 
443
  }
444
 
445
  public function add_section_advanced_subsection_google( $section_ids )
@@ -1713,7 +1721,7 @@ class Admin
1713
  echo '&nbsp;<i>1234567</i>' ;
1714
  }
1715
 
1716
- public function wpm_option_html_shop_order_total_logic()
1717
  {
1718
  ?>
1719
  <label>
@@ -1723,7 +1731,10 @@ class Admin
1723
  echo checked( 0, $this->options['shop']['order_total_logic'], false ) ;
1724
  ?> >
1725
  <?php
1726
- esc_html_e( 'Use order_subtotal: Doesn\'t include tax and shipping (default)', 'woocommerce-google-adwords-conversion-tracking-tag' );
 
 
 
1727
  ?>
1728
  </label>
1729
  <br>
@@ -1734,13 +1745,77 @@ class Admin
1734
  echo checked( 1, $this->options['shop']['order_total_logic'], false ) ;
1735
  ?> >
1736
  <?php
1737
- esc_html_e( 'Use order_total: Includes tax and shipping', 'woocommerce-google-adwords-conversion-tracking-tag' );
 
 
 
1738
  ?>
 
1739
  </label>
1740
- <br><br>
1741
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1742
  esc_html_e( 'This is the order total amount reported back to the paid ads pixels (such as Google Ads, Facebook, etc.)', 'woocommerce-google-adwords-conversion-tracking-tag' );
1743
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1744
  <?php
1745
  }
1746
 
@@ -1771,6 +1846,15 @@ class Admin
1771
  <?php
1772
  }
1773
 
 
 
 
 
 
 
 
 
 
1774
  public function wpm_setting_html_google_consent_mode_active()
1775
  {
1776
  // adding the hidden input is a hack to make WordPress save the option with the value zero,
@@ -2357,6 +2441,31 @@ class Admin
2357
  $this->get_documentation_html_by_key( 'acr' );
2358
  }
2359
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2360
  private function get_order_duplication_prevention_text()
2361
  {
2362
  esc_html_e( 'Basic order duplication prevention is ', 'woocommerce-google-adwords-conversion-tracking-tag' );
399
  // add fields for the order total logic
400
  add_settings_field(
401
  'wpm_plugin_order_total_logic',
402
+ esc_html__( 'Order Total Logic', 'woocommerce-google-adwords-conversion-tracking-tag' ) . $this->get_documentation_html_e( Documentation::get_link( 'order_total_logic' ) ),
403
+ [ $this, 'pmw_option_html_shop_order_total_logic' ],
404
  'wpm_plugin_options_page',
405
  $section_ids['settings_name']
406
  );
439
  $section_ids['settings_name']
440
  );
441
  }
442
+
443
+ // add checkbox for disabling tracking for user roles
444
+ add_settings_field(
445
+ 'pmw_setting_order_list_info',
446
+ esc_html__( 'Order List Info', 'woocommerce-google-adwords-conversion-tracking-tag' ) . $this->html_beta(),
447
+ [ $this, 'pmw_info_html_order_list_info' ],
448
+ 'wpm_plugin_options_page',
449
+ $section_ids['settings_name']
450
+ );
451
  }
452
 
453
  public function add_section_advanced_subsection_google( $section_ids )
1721
  echo '&nbsp;<i>1234567</i>' ;
1722
  }
1723
 
1724
+ public function pmw_option_html_shop_order_total_logic()
1725
  {
1726
  ?>
1727
  <label>
1731
  echo checked( 0, $this->options['shop']['order_total_logic'], false ) ;
1732
  ?> >
1733
  <?php
1734
+ esc_html_e( 'Order Subtotal: Doesn\'t include tax and shipping (default)', 'woocommerce-google-adwords-conversion-tracking-tag' );
1735
+ ?>
1736
+ <?php
1737
+ $this->get_documentation_html_by_key( 'order_subtotal' );
1738
  ?>
1739
  </label>
1740
  <br>
1745
  echo checked( 1, $this->options['shop']['order_total_logic'], false ) ;
1746
  ?> >
1747
  <?php
1748
+ esc_html_e( 'Order Total: Includes tax and shipping', 'woocommerce-google-adwords-conversion-tracking-tag' );
1749
+ ?>
1750
+ <?php
1751
+ $this->get_documentation_html_by_key( 'order_total' );
1752
  ?>
1753
+
1754
  </label>
 
1755
  <?php
1756
+
1757
+ if ( wpm_fs()->is__premium_only() || '2' === $this->options['shop']['order_total_logic'] || $this->options['general']['pro_version_demo'] ) {
1758
+ ?>
1759
+ <br>
1760
+ <label>
1761
+ <input type='radio' id='wpm_plugin_order_total_logic_2'
1762
+ name='wgact_plugin_options[shop][order_total_logic]'
1763
+ value='2' <?php
1764
+ echo checked( 2, $this->options['shop']['order_total_logic'], false ) ;
1765
+ ?>
1766
+ <?php
1767
+ if ( !(Environment_Check::get_instance()->is_woocommerce_cog_active() || Environment_Check::get_instance()->is_cog_for_woocommerce_active()) || !wpm_fs()->is__premium_only() ) {
1768
+ ?>
1769
+ disabled
1770
+ <?php
1771
+ }
1772
+ ?>
1773
+ >
1774
+ <?php
1775
+ esc_html_e( 'Profit Margin: Only reports the profit margin. Excludes tax, shipping, and where possible, gateway fees.', 'woocommerce-google-adwords-conversion-tracking-tag' );
1776
+ ?>
1777
+ <?php
1778
+ $this->get_documentation_html_by_key( 'order_profit_margin' );
1779
+ ?>
1780
+ <?php
1781
+ $this->html_beta_e();
1782
+ ?>
1783
+ <?php
1784
+ $this->html_pro_feature();
1785
+ ?>
1786
+ </label>
1787
+ <?php
1788
+ }
1789
+
1790
+ ?>
1791
+ <div style="margin-top: 10px">
1792
+ <div>
1793
+ <?php
1794
  esc_html_e( 'This is the order total amount reported back to the paid ads pixels (such as Google Ads, Facebook, etc.)', 'woocommerce-google-adwords-conversion-tracking-tag' );
1795
  ?>
1796
+ <?php
1797
+
1798
+ if ( wpm_fs()->is__premium_only() && !(Environment_Check::get_instance()->is_woocommerce_cog_active() || Environment_Check::get_instance()->is_cog_for_woocommerce_active()) ) {
1799
+ ?>
1800
+ </div>
1801
+ <div style="margin-top: 10px">
1802
+ <span class="dashicons dashicons-info"></span>
1803
+ <?php
1804
+ esc_html_e( 'To use the Profit Margin setting you will need to install one of the following two Cost of Goods plugins:', 'woocommerce-google-adwords-conversion-tracking-tag' );
1805
+ ?>
1806
+ <a href="https://woocommerce.com/products/woocommerce-cost-of-goods/" target="_blank">WooCommerce Cost
1807
+ of Goods (SkyVerge)</a>
1808
+ <?php
1809
+ esc_html_e( 'or', 'woocommerce-google-adwords-conversion-tracking-tag' );
1810
+ ?>
1811
+ <a href="https://wordpress.org/plugins/cost-of-goods-for-woocommerce/" target="_blank">Cost of Goods for
1812
+ WooCommerce (WPFactory)</a>
1813
+ <?php
1814
+ }
1815
+
1816
+ ?>
1817
+ </div>
1818
+ </div>
1819
  <?php
1820
  }
1821
 
1846
  <?php
1847
  }
1848
 
1849
+ protected function get_documentation_html_e( $path )
1850
+ {
1851
+ $html = '<a class="pmw-documentation-icon" href="' . $path . '" target="_blank">';
1852
+ $html .= '<span style="vertical-align: top; margin-top: 0px" class="dashicons dashicons-info-outline pmw-tooltip"><span class="tooltiptext">';
1853
+ $html .= esc_html__( 'open the documentation', 'woocommerce-google-adwords-conversion-tracking-tag' );
1854
+ $html .= '</span></span></a>';
1855
+ return $html;
1856
+ }
1857
+
1858
  public function wpm_setting_html_google_consent_mode_active()
1859
  {
1860
  // adding the hidden input is a hack to make WordPress save the option with the value zero,
2441
  $this->get_documentation_html_by_key( 'acr' );
2442
  }
2443
 
2444
+ public function pmw_info_html_order_list_info()
2445
+ {
2446
+ // adding the hidden input is a hack to make WordPress save the option with the value zero,
2447
+ // instead of not saving it and remove that array key entirely
2448
+ // https://stackoverflow.com/a/1992745/4688612
2449
+ ?>
2450
+ <label>
2451
+ <input type='hidden' value='0' name='wgact_plugin_options[shop][order_list_info]'>
2452
+ <input type='checkbox' id='wpm_plugin_option_gads_dynamic_remarketing'
2453
+ name='wgact_plugin_options[shop][order_list_info]'
2454
+ value='1' <?php
2455
+ checked( $this->options['shop']['order_list_info'] );
2456
+ ?> />
2457
+
2458
+ <?php
2459
+ esc_html_e( 'Display PMW related information on the order list page', 'woocommerce-google-adwords-conversion-tracking-tag' );
2460
+ ?>
2461
+ </label>
2462
+ <?php
2463
+ $this->get_status_icon_new( $this->options['shop']['order_list_info'] );
2464
+ ?>
2465
+ <?php
2466
+ $this->get_documentation_html_by_key( 'order_list_info' );
2467
+ }
2468
+
2469
  private function get_order_duplication_prevention_text()
2470
  {
2471
  esc_html_e( 'Basic order duplication prevention is ', 'woocommerce-google-adwords-conversion-tracking-tag' );
classes/admin/class-documentation.php CHANGED
@@ -151,13 +151,27 @@ class Documentation {
151
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/testing/'],
152
  'payment_gateway_tracking_accuracy' => [
153
  'default' => '/docs/wpm/diagnostics/#payment-gateway-tracking-accuracy-report',
154
- 'wcm' => 'document/pixel-manager-pro-for-woocommerce/diagnostics/#payment-gateway-tracking-accuracy-report'],
155
  'acr' => [
156
  'default' => '/docs/wpm/features/acr',
157
- 'wcm' => 'document/pixel-manager-pro-for-woocommerce/'],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  ];
159
 
160
-
161
  if (array_key_exists($key, $documentation_links)) {
162
  return $documentation_links[$key][$doc_host_url];
163
  } else {
151
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/testing/'],
152
  'payment_gateway_tracking_accuracy' => [
153
  'default' => '/docs/wpm/diagnostics/#payment-gateway-tracking-accuracy-report',
154
+ 'wcm' => '/document/pixel-manager-pro-for-woocommerce/diagnostics/#payment-gateway-tracking-accuracy-report'],
155
  'acr' => [
156
  'default' => '/docs/wpm/features/acr',
157
+ 'wcm' => '/document/pixel-manager-pro-for-woocommerce/features/automatic-conversion-recovery-acr/'],
158
+ 'order_list_info' => [
159
+ 'default' => '/docs/wpm/plugin-configuration/general-settings#order-list-info',
160
+ 'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/general-settings/#order-list-info'],
161
+ 'order_total_logic' => [
162
+ 'default' => '/docs/wpm/plugin-configuration/general-settings#order-total-logic',
163
+ 'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
164
+ 'order_subtotal' => [
165
+ 'default' => '/docs/wpm/plugin-configuration/general-settings#order-subtotal-default',
166
+ 'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
167
+ 'order_total' => [
168
+ 'default' => '/docs/wpm/plugin-configuration/general-settings#order-total',
169
+ 'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
170
+ 'order_profit_margin' => [
171
+ 'default' => '/docs/wpm/plugin-configuration/general-settings#profit-margin',
172
+ 'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
173
  ];
174
 
 
175
  if (array_key_exists($key, $documentation_links)) {
176
  return $documentation_links[$key][$doc_host_url];
177
  } else {
classes/admin/class-environment-check.php CHANGED
@@ -2,6 +2,7 @@
2
 
3
  namespace WCPM\Classes\Admin;
4
 
 
5
  use WCPM\Classes\Pixels\Trait_Shop;
6
 
7
  if (!defined('ABSPATH')) {
@@ -54,6 +55,22 @@ class Environment_Check {
54
  return false;
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  public function is_not_allowed_notification_page( $page ) {
58
  return !$this->is_allowed_notification_page($page);
59
  }
@@ -518,6 +535,18 @@ class Environment_Check {
518
  return is_plugin_active('cookie-law-info/cookie-law-info.php');
519
  }
520
 
 
 
 
 
 
 
 
 
 
 
 
 
521
  public function is_some_cmp_active() {
522
  if (
523
  $this->is_borlabs_cookie_active() ||
@@ -1479,6 +1508,16 @@ class Environment_Check {
1479
  return $this->wpm_ist_order_received_page;
1480
  }
1481
 
 
 
 
 
 
 
 
 
 
 
1482
  // Get value from WC or db
1483
  $this->wpm_ist_order_received_page = is_order_received_page() || $this->is_valid_order_key_in_url();
1484
  return $this->wpm_ist_order_received_page;
2
 
3
  namespace WCPM\Classes\Admin;
4
 
5
+ use WCPM\Classes\Helpers;
6
  use WCPM\Classes\Pixels\Trait_Shop;
7
 
8
  if (!defined('ABSPATH')) {
55
  return false;
56
  }
57
 
58
+ public function is_pmw_settings_page() {
59
+
60
+ if (!is_admin()) {
61
+ return false;
62
+ }
63
+
64
+ $_get = Helpers::get_input_vars_sanitized(INPUT_GET);
65
+ $page = isset($_get['page']) ? $_get['page'] : '';
66
+
67
+ if ('wpm' !== $page) {
68
+ return false;
69
+ }
70
+
71
+ return true;
72
+ }
73
+
74
  public function is_not_allowed_notification_page( $page ) {
75
  return !$this->is_allowed_notification_page($page);
76
  }
535
  return is_plugin_active('cookie-law-info/cookie-law-info.php');
536
  }
537
 
538
+ // WooCommerce Cost of Goods
539
+ // https://woocommerce.com/products/woocommerce-cost-of-goods/
540
+ public function is_woocommerce_cog_active() {
541
+ return class_exists('WC_COG') || is_plugin_active('woocommerce-cost-of-goods/woocommerce-cost-of-goods.php');
542
+ }
543
+
544
+ // Cost of Good for WooCommerce
545
+ // https://wordpress.org/plugins/cost-of-goods-for-woocommerce/
546
+ public function is_cog_for_woocommerce_active() {
547
+ return class_exists('Alg_WC_Cost_of_Goods') || is_plugin_active('cost-of-goods-for-woocommerce/cost-of-goods-for-woocommerce.php');
548
+ }
549
+
550
  public function is_some_cmp_active() {
551
  if (
552
  $this->is_borlabs_cookie_active() ||
1508
  return $this->wpm_ist_order_received_page;
1509
  }
1510
 
1511
+ /**
1512
+ * If a purchase order was created by a shop manager
1513
+ * and the customer is viewing the PO page
1514
+ * don't fire the conversion pixels
1515
+ **/
1516
+ if (is_checkout_pay_page()) {
1517
+ $this->wpm_ist_order_received_page = false;
1518
+ return false;
1519
+ }
1520
+
1521
  // Get value from WC or db
1522
  $this->wpm_ist_order_received_page = is_order_received_page() || $this->is_valid_order_key_in_url();
1523
  return $this->wpm_ist_order_received_page;
classes/class-db-upgrade.php CHANGED
@@ -36,7 +36,7 @@ class Db_Upgrade {
36
 
37
  $options_old = get_option(WPM_DB_OPTIONS_NAME);
38
 
39
- $this->backup_options($options_old, '2');
40
 
41
  $options_new = $options_old;
42
 
@@ -62,7 +62,7 @@ class Db_Upgrade {
62
 
63
  $options_old = get_option(WPM_DB_OPTIONS_NAME);
64
 
65
- $this->backup_options($options_old, '1');
66
 
67
  $options_new = [
68
  'gads' => [
36
 
37
  $options_old = get_option(WPM_DB_OPTIONS_NAME);
38
 
39
+ self::backup_options($options_old, '2');
40
 
41
  $options_new = $options_old;
42
 
62
 
63
  $options_old = get_option(WPM_DB_OPTIONS_NAME);
64
 
65
+ self::backup_options($options_old, '1');
66
 
67
  $options_new = [
68
  'gads' => [
classes/class-default-options.php CHANGED
@@ -20,10 +20,10 @@ class Default_Options {
20
  'aw_merchant_id' => '',
21
  'product_identifier' => 0,
22
  'google_business_vertical' => 0,
23
- 'dynamic_remarketing' => 0,
24
  'phone_conversion_number' => '',
25
  'phone_conversion_label' => '',
26
- 'enhanced_conversions' => 0,
27
  ],
28
  'analytics' => [
29
  'universal' => [
@@ -33,23 +33,20 @@ class Default_Options {
33
  'measurement_id' => '',
34
  'api_secret' => '',
35
  ],
36
- 'link_attribution' => 0,
37
  ],
38
  'optimize' => [
39
  'container_id' => '',
40
  ],
41
- 'gtag' => [
42
- 'deactivation' => 0,
43
- ],
44
  'consent_mode' => [
45
- 'active' => 0,
46
  'regions' => [],
47
  ],
48
- 'user_id' => 0,
49
  ],
50
  'facebook' => [
51
  'pixel_id' => '',
52
- 'microdata' => 0,
53
  'capi' => [
54
  'token' => '',
55
  'user_transparency' => [
@@ -79,18 +76,16 @@ class Default_Options {
79
  'shop' => [
80
  'order_total_logic' => 0,
81
  'cookie_consent_mgmt' => [
82
- 'cookiebot' => [ // This Cookiebot setting is deprecated. Not in use anymore.
83
- 'active' => 0
84
- ],
85
- 'explicit_consent' => 0,
86
  ],
87
- 'order_deduplication' => 1,
88
  'disable_tracking_for' => [],
 
89
  ],
90
  'general' => [
91
- 'variations_output' => 1,
92
- 'maximum_compatibility_mode' => 0,
93
- 'pro_version_demo' => 0,
94
  ],
95
  'db_version' => WPM_DB_VERSION,
96
  ];
20
  'aw_merchant_id' => '',
21
  'product_identifier' => 0,
22
  'google_business_vertical' => 0,
23
+ 'dynamic_remarketing' => false,
24
  'phone_conversion_number' => '',
25
  'phone_conversion_label' => '',
26
+ 'enhanced_conversions' => false,
27
  ],
28
  'analytics' => [
29
  'universal' => [
33
  'measurement_id' => '',
34
  'api_secret' => '',
35
  ],
36
+ 'link_attribution' => false,
37
  ],
38
  'optimize' => [
39
  'container_id' => '',
40
  ],
 
 
 
41
  'consent_mode' => [
42
+ 'active' => false,
43
  'regions' => [],
44
  ],
45
+ 'user_id' => false,
46
  ],
47
  'facebook' => [
48
  'pixel_id' => '',
49
+ 'microdata' => false,
50
  'capi' => [
51
  'token' => '',
52
  'user_transparency' => [
76
  'shop' => [
77
  'order_total_logic' => 0,
78
  'cookie_consent_mgmt' => [
79
+ 'explicit_consent' => false,
 
 
 
80
  ],
81
+ 'order_deduplication' => true,
82
  'disable_tracking_for' => [],
83
+ 'order_list_info' => true,
84
  ],
85
  'general' => [
86
+ 'variations_output' => true,
87
+ 'maximum_compatibility_mode' => false,
88
+ 'pro_version_demo' => false,
89
  ],
90
  'db_version' => WPM_DB_VERSION,
91
  ];
classes/class-profit-margin.php ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Profit Margin calculation class
5
+ */
6
+
7
+ namespace WCPM\Classes;
8
+
9
+ if (!defined('ABSPATH')) {
10
+ exit; // Exit if accessed directly
11
+ }
12
+
13
+ class Profit_Margin {
14
+
15
+ public static function get_order_profit_margin( $order ) {
16
+
17
+ $cogs_margin = self::get_order_item_profit_margin($order);
18
+
19
+ $cogs_margin -= $order->get_total_discount();
20
+ $cogs_margin -= self::get_order_fees($order);
21
+
22
+ return wc_format_decimal($cogs_margin);
23
+ }
24
+
25
+ private static function get_order_item_profit_margin( $order ) {
26
+
27
+ $order_items = $order->get_items();
28
+
29
+ $order_value = 0;
30
+
31
+ foreach ($order_items as $item) {
32
+
33
+ $product = $item->get_product();
34
+
35
+ if (!is_object($product)) {
36
+ continue;
37
+ }
38
+
39
+ $qty = $item->get_quantity();
40
+ $item_cog = self::get_cog_for_product($product);
41
+
42
+ $order_value += $item->get_total() - ( $qty * $item_cog );
43
+ }
44
+
45
+ return $order_value;
46
+ }
47
+
48
+ private static function get_cog_for_product( $product ) {
49
+
50
+ // WooCommerce Cost of Goods (SkyVerge)
51
+ if (class_exists('WC_COG_Product') && method_exists('WC_COG_Product', 'get_cost')) {
52
+
53
+ $cog = \WC_COG_Product::get_cost($product);
54
+
55
+ return floatval($cog);
56
+ }
57
+
58
+ // Cost of Goods for WooCommerce (WPFactory)
59
+ if (class_exists('Alg_WC_Cost_of_Goods_Products') && method_exists('Alg_WC_Cost_of_Goods_Products', 'get_product_cost')) {
60
+
61
+ $cog = ( new \Alg_WC_Cost_of_Goods_Products() )->get_product_cost($product->get_id());
62
+
63
+ return floatval($cog);
64
+ }
65
+
66
+ /**
67
+ * Fallback to retrieving directly from postmeta if the COG plugin gets deactivated for some reason
68
+ */
69
+
70
+ // WooCommerce Cost of Goods (SkyVerge)
71
+ $cog = self::get_cog_for_product_from_meta($product, '_wc_cog_cost');
72
+
73
+ if ($cog) {
74
+ return floatval($cog);
75
+ }
76
+
77
+ // Cost of Goods for WooCommerce (WPFactory)
78
+ $cog = self::get_cog_for_product_from_meta($product, '_alg_wc_cog_cost');
79
+
80
+ if ($cog) {
81
+ return floatval($cog);
82
+ }
83
+
84
+ /**
85
+ * Fallback to zero if none of the above works
86
+ */
87
+
88
+ return 0;
89
+ }
90
+
91
+ private static function get_cog_for_product_from_meta( $product, $meta_key ) {
92
+
93
+ $cog = get_post_meta($product->get_id(), $meta_key, true);
94
+
95
+ // If item is a variation and the COG is set, use the variation COG, otherwise try to use the parent COG
96
+ if (empty($cog) && $product->is_type('variation')) {
97
+ $cog = get_post_meta($product->get_parent_id(), $meta_key, true);
98
+ }
99
+
100
+ return $cog;
101
+ }
102
+
103
+
104
+ private static function get_order_fees( $order ) {
105
+
106
+ $order_fees = 0;
107
+
108
+ // Add fees that have been saved to the order
109
+ if ($order->get_total_fees()) {
110
+ $order_fees = $order->get_total_fees();
111
+ }
112
+
113
+ // Add Stripe fees
114
+ // because Stripe doesn't save the fee on the order fees
115
+ $order_fees += self::get_fee_by_postmeta_key($order->get_id(), '_stripe_fee');
116
+
117
+ // Add _paypal_transaction_fee
118
+ // because PayPal doesn't save the fee on the order fees
119
+ // https://stackoverflow.com/a/56129332/4688612
120
+ $order_fees += self::get_fee_by_postmeta_key($order->get_id(), '_paypal_transaction_fee');
121
+
122
+ // Add ppcp_paypal_fees
123
+ // because PayPal doesn't save the fee on the order fees
124
+ if (get_post_meta($order->get_id(), '_ppcp_paypal_fees', true)) {
125
+ $ppcp_paypal_fees = get_post_meta($order->get_id(), '_ppcp_paypal_fees', true);
126
+
127
+ if (!empty($ppcp_paypal_fees['paypal_fee']['value'])) {
128
+ $order_fees += $ppcp_paypal_fees['paypal_fee']['value'];
129
+ }
130
+ }
131
+
132
+ return $order_fees;
133
+ }
134
+
135
+ private static function get_fee_by_postmeta_key( $order_id, $postmeta_key ) {
136
+
137
+ $fee = get_post_meta($order_id, $postmeta_key, true);
138
+
139
+ if (empty($fee)) {
140
+ return 0;
141
+ }
142
+
143
+ return $fee;
144
+ }
145
+ }
146
+
classes/pixels/class-pixel-manager.php CHANGED
@@ -28,7 +28,6 @@ class Pixel_Manager
28
  protected $google ;
29
  protected $microdata_product_id ;
30
  protected $position = 1 ;
31
- protected $is_order_received_page = false ;
32
  protected $order ;
33
  private static $instance ;
34
  public static function get_instance()
@@ -295,7 +294,7 @@ class Pixel_Manager
295
  $options = $this->generic_sanitization( $options );
296
  // Validate imported options
297
 
298
- if ( $this->validations->validate_imported_options( $options ) ) {
299
  update_option( WPM_DB_OPTIONS_NAME, $options );
300
  wp_send_json_success( [
301
  'message' => 'Options saved',
28
  protected $google ;
29
  protected $microdata_product_id ;
30
  protected $position = 1 ;
 
31
  protected $order ;
32
  private static $instance ;
33
  public static function get_instance()
294
  $options = $this->generic_sanitization( $options );
295
  // Validate imported options
296
 
297
+ if ( Validations::validate_imported_options( $options ) ) {
298
  update_option( WPM_DB_OPTIONS_NAME, $options );
299
  wp_send_json_success( [
300
  'message' => 'Options saved',
classes/pixels/trait-shop.php CHANGED
@@ -8,6 +8,7 @@ use libphonenumber\PhoneNumberUtil ;
8
  use WC_Geolocation ;
9
  use WCPM\Classes\Admin\Documentation ;
10
  use WCPM\Classes\Admin\Environment_Check ;
 
11
 
12
  if ( !defined( 'ABSPATH' ) ) {
13
  exit;
@@ -84,12 +85,6 @@ trait Trait_Shop
84
  protected function is_valid_order_key_in_url()
85
  {
86
  $_get = $this->get_input_vars( INPUT_GET );
87
- // If a purchase order was created by a shop manager
88
- // and the customer is viewing the PO
89
- // don't fire the conversion pixels
90
- if ( isset( $_get['pay_for_order'] ) ) {
91
- return false;
92
- }
93
  $order_key = null;
94
  // key is for WooCommerce
95
  // wcf-key is for CartFlows
@@ -113,8 +108,17 @@ trait Trait_Shop
113
 
114
  protected function wpm_get_order_total( $order )
115
  {
116
- $order_total = ( 0 == $this->options_obj->shop->order_total_logic ? $order->get_subtotal() - $order->get_total_discount() : $order->get_total() );
117
- // filter to adjust the order value
 
 
 
 
 
 
 
 
 
118
  $order_total = apply_filters_deprecated(
119
  'wgact_conversion_value_filter',
120
  [ $order_total, $order ],
@@ -127,6 +131,7 @@ trait Trait_Shop
127
  '1.13.0',
128
  'wpm_conversion_value_filter'
129
  );
 
130
  $order_total = apply_filters( 'wpm_conversion_value_filter', $order_total, $order );
131
  return wc_format_decimal( (double) $order_total, 2 );
132
  }
8
  use WC_Geolocation ;
9
  use WCPM\Classes\Admin\Documentation ;
10
  use WCPM\Classes\Admin\Environment_Check ;
11
+ use WCPM\Classes\Profit_Margin ;
12
 
13
  if ( !defined( 'ABSPATH' ) ) {
14
  exit;
85
  protected function is_valid_order_key_in_url()
86
  {
87
  $_get = $this->get_input_vars( INPUT_GET );
 
 
 
 
 
 
88
  $order_key = null;
89
  // key is for WooCommerce
90
  // wcf-key is for CartFlows
108
 
109
  protected function wpm_get_order_total( $order )
110
  {
111
+ $order_total = $order->get_total();
112
+
113
+ if ( in_array( $this->options_obj->shop->order_total_logic, [ '0', 'order_subtotal' ], true ) ) {
114
+ $order_total = $order->get_subtotal() - $order->get_total_discount();
115
+ } elseif ( in_array( $this->options_obj->shop->order_total_logic, [ '1', 'order_total' ], true ) ) {
116
+ $order_total = $order->get_total();
117
+ } elseif ( in_array( $this->options_obj->shop->order_total_logic, [ '2', 'order_profit_margin' ], true ) ) {
118
+ $order_total = Profit_Margin::get_order_profit_margin( $order );
119
+ }
120
+
121
+ // deprecated filters to adjust the order value
122
  $order_total = apply_filters_deprecated(
123
  'wgact_conversion_value_filter',
124
  [ $order_total, $order ],
131
  '1.13.0',
132
  'wpm_conversion_value_filter'
133
  );
134
+ // filter to adjust the order value
135
  $order_total = apply_filters( 'wpm_conversion_value_filter', $order_total, $order );
136
  return wc_format_decimal( (double) $order_total, 2 );
137
  }
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.20.0\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-08-30T09:53:16+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: woocommerce-google-adwords-conversion-tracking-tag\n"
@@ -34,733 +34,751 @@ msgstr ""
34
  msgid "https://sweetcode.com"
35
  msgstr ""
36
 
37
- #: classes/admin/class-admin.php:257
38
- #: classes/admin/class-admin.php:258
39
- #: wgact.php:229
40
- #: wgact.php:230
41
  msgid "Pixel Manager"
42
  msgstr ""
43
 
44
- #: classes/admin/class-admin.php:298
45
  msgid "Main"
46
  msgstr ""
47
 
48
- #: classes/admin/class-admin.php:319
49
  msgid "Google"
50
  msgstr ""
51
 
52
- #: classes/admin/class-admin.php:342
53
  msgid "Google Ads Conversion ID"
54
  msgstr ""
55
 
56
- #: classes/admin/class-admin.php:354
57
  msgid "Google Ads Purchase Conversion Label"
58
  msgstr ""
59
 
60
- #: classes/admin/class-admin.php:365
61
  msgid "Google Analytics UA"
62
  msgstr ""
63
 
64
- #: classes/admin/class-admin.php:376
65
  msgid "Google Analytics 4"
66
  msgstr ""
67
 
68
- #: classes/admin/class-admin.php:387
69
  msgid "Google Optimize"
70
  msgstr ""
71
 
72
- #: classes/admin/class-admin.php:399
73
  msgid "Meta (Facebook)"
74
  msgstr ""
75
 
76
- #: classes/admin/class-admin.php:422
77
  msgid "Meta (Facebook) pixel ID"
78
  msgstr ""
79
 
80
- #: classes/admin/class-admin.php:434
81
  msgid "more pixels"
82
  msgstr ""
83
 
84
- #: classes/admin/class-admin.php:459
85
  msgid "Microsoft Advertising UET tag ID"
86
  msgstr ""
87
 
88
- #: classes/admin/class-admin.php:471
89
  msgid "Twitter pixel ID"
90
  msgstr ""
91
 
92
- #: classes/admin/class-admin.php:483
93
  msgid "Pinterest pixel ID"
94
  msgstr ""
95
 
96
- #: classes/admin/class-admin.php:495
97
  msgid "Snapchat pixel ID"
98
  msgstr ""
99
 
100
- #: classes/admin/class-admin.php:507
101
  msgid "TikTok pixel ID"
102
  msgstr ""
103
 
104
- #: classes/admin/class-admin.php:520
105
  msgid "Hotjar site ID"
106
  msgstr ""
107
 
108
- #: classes/admin/class-admin.php:532
109
  msgid "Advanced"
110
  msgstr ""
111
 
112
- #: classes/admin/class-admin.php:583
113
  msgid "Order Total Logic"
114
  msgstr ""
115
 
116
- #: classes/admin/class-admin.php:595
117
  msgid "Order Duplication Prevention"
118
  msgstr ""
119
 
120
- #: classes/admin/class-admin.php:607
121
  msgid "Maximum Compatibility Mode"
122
  msgstr ""
123
 
124
- #: classes/admin/class-admin.php:621
125
  msgid "Disable Tracking for User Roles"
126
  msgstr ""
127
 
128
- #: classes/admin/class-admin.php:633
129
  msgid "ACR"
130
  msgstr ""
131
 
132
  #: classes/admin/class-admin.php:667
 
 
 
 
133
  msgid "Conversion Cart Data"
134
  msgstr ""
135
 
136
- #: classes/admin/class-admin.php:680
137
  msgid "Enhanced E-Commerce"
138
  msgstr ""
139
 
140
- #: classes/admin/class-admin.php:692
141
  msgid "GA 4 API secret"
142
  msgstr ""
143
 
144
- #: classes/admin/class-admin.php:705
145
  msgid "Enhanced Link Attribution"
146
  msgstr ""
147
 
148
- #: classes/admin/class-admin.php:718
149
  msgid "Google User ID"
150
  msgstr ""
151
 
152
- #: classes/admin/class-admin.php:730
153
  msgid "Google Ads Enhanced Conversions"
154
  msgstr ""
155
 
156
- #: classes/admin/class-admin.php:744
157
  msgid "Google Ads Phone Conversion Number"
158
  msgstr ""
159
 
160
- #: classes/admin/class-admin.php:756
161
  msgid "Google Ads Phone Conversion Label"
162
  msgstr ""
163
 
164
- #: classes/admin/class-admin.php:769
165
  msgid "Cookie Consent Management"
166
  msgstr ""
167
 
168
- #: classes/admin/class-admin.php:792
169
  msgid "Google Consent Mode"
170
  msgstr ""
171
 
172
- #: classes/admin/class-admin.php:804
173
  msgid "Google Consent Regions"
174
  msgstr ""
175
 
176
- #: classes/admin/class-admin.php:816
177
  msgid "Explicit Consent Mode"
178
  msgstr ""
179
 
180
- #: classes/admin/class-admin.php:829
181
  msgid "Borlabs Cookie support"
182
  msgstr ""
183
 
184
- #: classes/admin/class-admin.php:843
185
  msgid "Cookiebot support"
186
  msgstr ""
187
 
188
- #: classes/admin/class-admin.php:857
189
  msgid "Complianz GDPR support"
190
  msgstr ""
191
 
192
- #: classes/admin/class-admin.php:871
193
  msgid "Cookie Notice support"
194
  msgstr ""
195
 
196
- #: classes/admin/class-admin.php:885
197
  msgid "Cookie Script support"
198
  msgstr ""
199
 
200
- #: classes/admin/class-admin.php:899
201
  msgid "GDPR Cookie Compliance support"
202
  msgstr ""
203
 
204
- #: classes/admin/class-admin.php:913
205
  msgid "GDPR Cookie Consent support"
206
  msgstr ""
207
 
208
- #: classes/admin/class-admin.php:946
209
  msgid "Meta (Facebook) CAPI: token"
210
  msgstr ""
211
 
212
- #: classes/admin/class-admin.php:958
213
  msgid "Meta (Facebook) CAPI: process anonymous hits"
214
  msgstr ""
215
 
216
- #: classes/admin/class-admin.php:970
217
  msgid "Meta (Facebook) CAPI: send additional visitor identifiers"
218
  msgstr ""
219
 
220
- #: classes/admin/class-admin.php:982
221
  msgid "Meta (Facebook) Microdata Tags for Catalogues"
222
  msgstr ""
223
 
224
- #: classes/admin/class-admin.php:994
225
- #: classes/admin/class-admin.php:1007
226
- #: classes/admin/class-admin.php:1018
227
  msgid "Dynamic Remarketing"
228
  msgstr ""
229
 
230
- #: classes/admin/class-admin.php:1030
231
  msgid "Product Identifier"
232
  msgstr ""
233
 
234
- #: classes/admin/class-admin.php:1042
235
  msgid "Variations output"
236
  msgstr ""
237
 
238
- #: classes/admin/class-admin.php:1055
239
  msgid "Google Business Vertical"
240
  msgstr ""
241
 
242
- #: classes/admin/class-admin.php:1068
243
- #: classes/admin/class-admin.php:1077
244
  msgid "Diagnostics"
245
  msgstr ""
246
 
247
- #: classes/admin/class-admin.php:1085
248
- #: classes/admin/class-admin.php:1094
249
  msgid "Support"
250
  msgstr ""
251
 
252
- #: classes/admin/class-admin.php:1102
253
- #: classes/admin/class-admin.php:1112
254
  msgid "Author"
255
  msgstr ""
256
 
257
- #: classes/admin/class-admin.php:1159
258
  msgid ""
259
  "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"
260
  " In order for the plugin to work properly you need to disable the script blocker."
261
  msgstr ""
262
 
263
- #: classes/admin/class-admin.php:1166
264
  #: classes/admin/class-notifications.php:96
265
  #: classes/admin/class-notifications.php:146
266
  msgid "Learn more"
267
  msgstr ""
268
 
269
- #: classes/admin/class-admin.php:1210
270
  msgid "Profit Driven Marketing by SweetCode"
271
  msgstr ""
272
 
273
- #: classes/admin/class-admin.php:1235
274
  msgid "Visit us here:"
275
  msgstr ""
276
 
277
- #: classes/admin/class-admin.php:1281
278
  msgid "Payment Gateway Tracking Accuracy Report"
279
  msgstr ""
280
 
281
- #: classes/admin/class-admin.php:1282
282
- #: classes/admin/class-admin.php:2700
283
- #: classes/admin/class-admin.php:2708
284
  msgid "beta"
285
  msgstr ""
286
 
287
- #: classes/admin/class-admin.php:1286
288
  msgid "What's this? Follow this link to learn more"
289
  msgstr ""
290
 
291
- #: classes/admin/class-admin.php:1294
292
  msgid "Available payment gateways"
293
  msgstr ""
294
 
295
- #: classes/admin/class-admin.php:1301
296
  msgid "id"
297
  msgstr ""
298
 
299
- #: classes/admin/class-admin.php:1302
300
  msgid "method_title"
301
  msgstr ""
302
 
303
- #: classes/admin/class-admin.php:1303
304
  msgid "class"
305
  msgstr ""
306
 
307
- #: classes/admin/class-admin.php:1321
308
  msgid "Purchase confirmation page reached per gateway (active and inactive)"
309
  msgstr ""
310
 
311
- #: classes/admin/class-admin.php:1329
312
- #: classes/admin/class-admin.php:1378
313
- #: classes/admin/class-admin.php:1453
314
  msgid "The analysis is being generated. Please check back in 5 minutes."
315
  msgstr ""
316
 
317
- #: classes/admin/class-admin.php:1370
318
  msgid "Purchase confirmation page reached per gateway (only active), weighted by frequency"
319
  msgstr ""
320
 
321
- #: classes/admin/class-admin.php:1441
322
  msgid "Automatic Conversion Recovery (ACR)"
323
  msgstr ""
324
 
325
  #. translators: The number and percentage of orders that were recovered by the Automatic Conversion Recovery (ACR).
326
- #: classes/admin/class-admin.php:1529
327
  msgid "ACR recovered %1$s (%2$s%%) out of %3$s missing conversions."
328
  msgstr ""
329
 
330
- #: classes/admin/class-admin.php:1547
331
  msgid "This feature is only available in the pro version of the plugin. Follow the link to learn more about it:"
332
  msgstr ""
333
 
334
- #: classes/admin/class-admin.php:1549
335
  msgid "Get the pro version of the Pixel Manager for WooCommerce over here"
336
  msgstr ""
337
 
338
- #: classes/admin/class-admin.php:1551
339
  msgid "Go Pro"
340
  msgstr ""
341
 
342
- #: classes/admin/class-admin.php:1580
343
  msgid "Contacting Support"
344
  msgstr ""
345
 
346
- #: classes/admin/class-admin.php:1602
347
  msgid "Debug Information"
348
  msgstr ""
349
 
350
- #: classes/admin/class-admin.php:1611
351
  msgid "copy to clipboard"
352
  msgstr ""
353
 
354
- #: classes/admin/class-admin.php:1621
355
  msgid "Export settings"
356
  msgstr ""
357
 
358
- #: classes/admin/class-admin.php:1633
359
  msgid "Export to disk"
360
  msgstr ""
361
 
362
- #: classes/admin/class-admin.php:1642
363
  msgid "Import settings"
364
  msgstr ""
365
 
366
- #: classes/admin/class-admin.php:1647
367
  msgid "Settings imported successfully!"
368
  msgstr ""
369
 
370
- #: classes/admin/class-admin.php:1650
371
  msgid "Reloading...(in 5 seconds)!"
372
  msgstr ""
373
 
374
- #: classes/admin/class-admin.php:1656
375
  msgid "There was an error importing that file! Please try again."
376
  msgstr ""
377
 
378
- #: classes/admin/class-admin.php:1673
379
  msgid "Translations"
380
  msgstr ""
381
 
382
- #: classes/admin/class-admin.php:1674
383
  msgid "If you want to participate improving the translations of this plugin into your language, please follow this link:"
384
  msgstr ""
385
 
386
- #: classes/admin/class-admin.php:1692
387
  msgid "Post a support request in the WordPress support forum here: "
388
  msgstr ""
389
 
390
- #: classes/admin/class-admin.php:1695
391
  msgid "Support forum"
392
  msgstr ""
393
 
394
- #: classes/admin/class-admin.php:1699
395
  msgid "(Never post the debug or other sensitive information to the support forum. Instead send us the information by email.)"
396
  msgstr ""
397
 
398
- #: classes/admin/class-admin.php:1702
399
  msgid "Or send us an email to the following address: "
400
  msgstr ""
401
 
402
- #: classes/admin/class-admin.php:1718
403
  msgid "Send us your support request through the WooCommerce.com dashboard: "
404
  msgstr ""
405
 
406
- #: classes/admin/class-admin.php:1732
407
  msgid "More details about the developer of this plugin: "
408
  msgstr ""
409
 
410
- #: classes/admin/class-admin.php:1735
411
  msgid "Developer: SweetCode"
412
  msgstr ""
413
 
414
- #: classes/admin/class-admin.php:1737
415
  msgid "Website: "
416
  msgstr ""
417
 
418
- #: classes/admin/class-admin.php:1760
419
  msgid "The Google Analytics Universal property ID looks like this:"
420
  msgstr ""
421
 
422
- #: classes/admin/class-admin.php:1776
423
  msgid "The Google Analytics 4 measurement ID looks like this:"
424
  msgstr ""
425
 
426
- #: classes/admin/class-admin.php:1792
427
  msgid "The conversion ID looks similar to this:"
428
  msgstr ""
429
 
430
- #: classes/admin/class-admin.php:1808
431
  msgid "The purchase conversion label looks similar to this:"
432
  msgstr ""
433
 
434
- #: classes/admin/class-admin.php:1812
435
- #: classes/admin/class-admin.php:2522
436
  msgid "Requires an active Google Ads Conversion ID"
437
  msgstr ""
438
 
439
- #: classes/admin/class-admin.php:1830
440
  msgid "The Google Optimize container ID looks like this:"
441
  msgstr ""
442
 
443
- #: classes/admin/class-admin.php:1832
 
444
  msgid "or"
445
  msgstr ""
446
 
447
- #: classes/admin/class-admin.php:1848
448
  msgid "The Meta (Facebook) pixel ID looks similar to this:"
449
  msgstr ""
450
 
451
- #: classes/admin/class-admin.php:1866
452
  msgid "The Microsoft Advertising UET tag ID looks similar to this:"
453
  msgstr ""
454
 
455
- #: classes/admin/class-admin.php:1885
456
  msgid "The Twitter pixel ID looks similar to this:"
457
  msgstr ""
458
 
459
- #: classes/admin/class-admin.php:1904
460
  msgid "The Pinterest pixel ID looks similar to this:"
461
  msgstr ""
462
 
463
- #: classes/admin/class-admin.php:1923
464
  msgid "The Snapchat pixel ID looks similar to this:"
465
  msgstr ""
466
 
467
- #: classes/admin/class-admin.php:1944
468
  msgid "The TikTok pixel ID looks similar to this:"
469
  msgstr ""
470
 
471
- #: classes/admin/class-admin.php:1956
472
  msgid "The Hotjar site ID looks similar to this:"
473
  msgstr ""
474
 
475
- #: classes/admin/class-admin.php:1966
476
- msgid "Use order_subtotal: Doesn't include tax and shipping (default)"
477
  msgstr ""
478
 
479
- #: classes/admin/class-admin.php:1973
480
- msgid "Use order_total: Includes tax and shipping"
481
  msgstr ""
482
 
483
- #: classes/admin/class-admin.php:1976
 
 
 
 
484
  msgid "This is the order total amount reported back to the paid ads pixels (such as Google Ads, Facebook, etc.)"
485
  msgstr ""
486
 
487
- #: classes/admin/class-admin.php:1996
 
 
 
 
 
488
  msgid "open the documentation"
489
  msgstr ""
490
 
491
- #: classes/admin/class-admin.php:2016
492
  msgid "Enable Google consent mode with standard settings"
493
  msgstr ""
494
 
495
- #: classes/admin/class-admin.php:2054
496
  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."
497
  msgstr ""
498
 
499
- #: classes/admin/class-admin.php:2062
500
  msgid "Google Analytics Enhanced E-Commerce is "
501
  msgstr ""
502
 
503
- #: classes/admin/class-admin.php:2085
504
  msgid "Google Analytics 4 activation required"
505
  msgstr ""
506
 
507
- #: classes/admin/class-admin.php:2088
508
  msgid "If enabled, purchase and refund events will be sent to Google through the measurement protocol for increased accuracy."
509
  msgstr ""
510
 
511
- #: classes/admin/class-admin.php:2103
512
  msgid "Enable Google Analytics enhanced link attribution"
513
  msgstr ""
514
 
515
- #: classes/admin/class-admin.php:2119
516
- #: classes/admin/class-admin.php:2149
517
  msgid "You need to activate at least Google Analytics UA or Google Analytics 4"
518
  msgstr ""
519
 
520
- #: classes/admin/class-admin.php:2138
521
  msgid "Enable Google user ID"
522
  msgstr ""
523
 
524
- #: classes/admin/class-admin.php:2168
525
  msgid "Enable Google Ads Enhanced Conversions"
526
  msgstr ""
527
 
528
- #: classes/admin/class-admin.php:2179
529
  msgid "You need to activate Google Ads"
530
  msgstr ""
531
 
532
- #: classes/admin/class-admin.php:2199
533
  msgid "The Google Ads phone conversion number must be in the same format as on the website."
534
  msgstr ""
535
 
536
- #: classes/admin/class-admin.php:2221
537
  msgid "Borlabs Cookie detected. Automatic support is:"
538
  msgstr ""
539
 
540
- #: classes/admin/class-admin.php:2227
541
  msgid "Cookiebot detected. Automatic support is:"
542
  msgstr ""
543
 
544
- #: classes/admin/class-admin.php:2233
545
  msgid "Complianz GDPR detected. Automatic support is:"
546
  msgstr ""
547
 
548
- #: classes/admin/class-admin.php:2239
549
  msgid "Cookie Notice (by hu-manity.co) detected. Automatic support is:"
550
  msgstr ""
551
 
552
- #: classes/admin/class-admin.php:2245
553
  msgid "Cookie Script (by cookie-script.com) detected. Automatic support is:"
554
  msgstr ""
555
 
556
- #: classes/admin/class-admin.php:2251
557
  msgid "GDPR Cookie Compliance (by Moove Agency) detected. Automatic support is:"
558
  msgstr ""
559
 
560
- #: classes/admin/class-admin.php:2257
561
  msgid "GDPR Cookie Consent (by WebToffee) detected. Automatic support is:"
562
  msgstr ""
563
 
564
- #: classes/admin/class-admin.php:2276
565
  msgid "Enable Explicit Consent Mode"
566
  msgstr ""
567
 
568
- #: classes/admin/class-admin.php:2285
569
  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."
570
  msgstr ""
571
 
572
- #: classes/admin/class-admin.php:2304
573
- #: classes/admin/class-admin.php:2337
574
- #: classes/admin/class-admin.php:2366
575
- #: classes/admin/class-admin.php:2394
576
  msgid "You need to activate the Meta (Facebook) pixel"
577
  msgstr ""
578
 
579
- #: classes/admin/class-admin.php:2328
580
  msgid "Send CAPI hits for anonymous visitors who likely have blocked the Meta (Facebook) pixel."
581
  msgstr ""
582
 
583
- #: classes/admin/class-admin.php:2357
584
  msgid "Include additional visitor's identifiers, such as IP address, email and shop ID in the CAPI hit."
585
  msgstr ""
586
 
587
- #: classes/admin/class-admin.php:2385
588
  msgid "Enable Meta (Facebook) product microdata output"
589
  msgstr ""
590
 
591
- #: classes/admin/class-admin.php:2421
592
  msgid "Only disable order duplication prevention for testing. Remember to re-enable the setting once done."
593
  msgstr ""
594
 
595
- #: classes/admin/class-admin.php:2438
596
  msgid "Enable the maximum compatibility mode"
597
  msgstr ""
598
 
599
- #: classes/admin/class-admin.php:2473
600
  msgid "Automatic Conversion Recovery (ACR) is "
601
  msgstr ""
602
 
603
- #: classes/admin/class-admin.php:2481
 
 
 
 
604
  msgid "Advanced order duplication prevention is "
605
  msgstr ""
606
 
607
- #: classes/admin/class-admin.php:2483
608
  msgid "Basic order duplication prevention is "
609
  msgstr ""
610
 
611
- #: classes/admin/class-admin.php:2507
612
  msgid "Enable dynamic remarketing audience collection"
613
  msgstr ""
614
 
615
- #: classes/admin/class-admin.php:2528
616
  msgid "You need to choose the correct product identifier setting in order to match the product identifiers in the product feeds."
617
  msgstr ""
618
 
619
- #: classes/admin/class-admin.php:2546
620
  msgid "Enable variations output"
621
  msgstr ""
622
 
623
- #: classes/admin/class-admin.php:2557
624
  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."
625
  msgstr ""
626
 
627
- #: classes/admin/class-admin.php:2572
628
  msgid "Retail"
629
  msgstr ""
630
 
631
- #: classes/admin/class-admin.php:2582
632
  msgid "Education"
633
  msgstr ""
634
 
635
- #: classes/admin/class-admin.php:2592
636
  msgid "Hotels and rentals"
637
  msgstr ""
638
 
639
- #: classes/admin/class-admin.php:2602
640
  msgid "Jobs"
641
  msgstr ""
642
 
643
- #: classes/admin/class-admin.php:2612
644
  msgid "Local deals"
645
  msgstr ""
646
 
647
- #: classes/admin/class-admin.php:2622
648
  msgid "Real estate"
649
  msgstr ""
650
 
651
- #: classes/admin/class-admin.php:2632
652
  msgid "Custom"
653
  msgstr ""
654
 
655
- #: classes/admin/class-admin.php:2651
656
  msgid "ID of your Google Merchant Center account. It looks like this: 12345678"
657
  msgstr ""
658
 
659
- #: classes/admin/class-admin.php:2660
660
  msgid "post ID (default)"
661
  msgstr ""
662
 
663
- #: classes/admin/class-admin.php:2666
664
  msgid "SKU"
665
  msgstr ""
666
 
667
- #: classes/admin/class-admin.php:2673
668
  msgid "ID for the WooCommerce Google Product Feed. Outputs the post ID with woocommerce_gpf_ prefix *"
669
  msgstr ""
670
 
671
- #: classes/admin/class-admin.php:2680
672
  msgid "ID for the WooCommerce Google Listings & Ads Plugin. Outputs the post ID with gla_ prefix **"
673
  msgstr ""
674
 
675
- #: classes/admin/class-admin.php:2684
676
  msgid "Choose a product identifier."
677
  msgstr ""
678
 
679
- #: classes/admin/class-admin.php:2687
680
  msgid "* This is for users of the WooCommerce Google Product Feed Plugin"
681
  msgstr ""
682
 
683
- #: classes/admin/class-admin.php:2691
684
  msgid "** This is for users of the WooCommerce Google Listings & Ads Plugin"
685
  msgstr ""
686
 
687
- #: classes/admin/class-admin.php:2714
688
- #: classes/admin/class-admin.php:2719
689
  msgid "active"
690
  msgstr ""
691
 
692
- #: classes/admin/class-admin.php:2724
693
- #: classes/admin/class-admin.php:2729
694
  msgid "inactive"
695
  msgstr ""
696
 
697
- #: classes/admin/class-admin.php:2734
698
- #: classes/admin/class-admin.php:2739
699
  msgid "partially active"
700
  msgstr ""
701
 
702
- #: classes/admin/class-admin.php:2750
703
  msgid "Pro Feature"
704
  msgstr ""
705
 
706
- #: classes/admin/class-admin.php:2793
707
  msgid "You have entered an invalid Google Analytics Universal property ID."
708
  msgstr ""
709
 
710
- #: classes/admin/class-admin.php:2801
711
  msgid "You have entered an invalid Google Analytics 4 measurement ID."
712
  msgstr ""
713
 
714
- #: classes/admin/class-admin.php:2809
715
  msgid "You have entered an invalid Google Analytics 4 API key."
716
  msgstr ""
717
 
718
- #: classes/admin/class-admin.php:2817
719
  msgid "You have entered an invalid conversion ID. It only contains 8 to 10 digits."
720
  msgstr ""
721
 
722
- #: classes/admin/class-admin.php:2825
723
- #: classes/admin/class-admin.php:2833
724
  msgid "You have entered an invalid conversion label."
725
  msgstr ""
726
 
727
- #: classes/admin/class-admin.php:2841
728
  msgid "You have entered an invalid merchant ID. It only contains 6 to 12 digits."
729
  msgstr ""
730
 
731
- #: classes/admin/class-admin.php:2849
732
  msgid "You have entered an invalid Google Optimize container ID."
733
  msgstr ""
734
 
735
- #: classes/admin/class-admin.php:2857
736
  msgid "You have entered an invalid Meta (Facebook) pixel ID. It only contains 14 to 16 digits."
737
  msgstr ""
738
 
739
- #: classes/admin/class-admin.php:2865
740
  msgid "You have entered an invalid Meta (Facebook) CAPI token."
741
  msgstr ""
742
 
743
- #: classes/admin/class-admin.php:2873
744
  msgid "You have entered an invalid Bing Ads UET tag ID. It only contains 7 to 9 digits."
745
  msgstr ""
746
 
747
- #: classes/admin/class-admin.php:2881
748
  msgid "You have entered an invalid Twitter pixel ID. It only contains 5 to 7 lowercase letters and numbers."
749
  msgstr ""
750
 
751
- #: classes/admin/class-admin.php:2889
752
  msgid "You have entered an invalid Pinterest pixel ID. It only contains 13 digits."
753
  msgstr ""
754
 
755
- #: classes/admin/class-admin.php:2897
756
  msgid "You have entered an invalid Snapchat pixel ID."
757
  msgstr ""
758
 
759
- #: classes/admin/class-admin.php:2905
760
  msgid "You have entered an invalid TikTok pixel ID."
761
  msgstr ""
762
 
763
- #: classes/admin/class-admin.php:2913
764
  msgid "You have entered an invalid Hotjar site ID. It only contains 6 to 9 digits."
765
  msgstr ""
766
 
@@ -852,14 +870,14 @@ msgstr ""
852
  msgid "Conversion pixels not fired yet"
853
  msgstr ""
854
 
855
- #: wgact.php:245
856
  msgid "Pixel Manager for WooCommerce error"
857
  msgstr ""
858
 
859
- #: wgact.php:247
860
  msgid "Your environment doesn't meet all the system requirements listed below."
861
  msgstr ""
862
 
863
- #: wgact.php:251
864
  msgid "The WooCommerce plugin needs to be activated"
865
  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.21.0\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-09-12T07:44:52+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\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:278
38
+ #: classes/admin/class-admin.php:279
39
+ #: wgact.php:255
40
+ #: wgact.php:256
41
  msgid "Pixel Manager"
42
  msgstr ""
43
 
44
+ #: classes/admin/class-admin.php:319
45
  msgid "Main"
46
  msgstr ""
47
 
48
+ #: classes/admin/class-admin.php:340
49
  msgid "Google"
50
  msgstr ""
51
 
52
+ #: classes/admin/class-admin.php:363
53
  msgid "Google Ads Conversion ID"
54
  msgstr ""
55
 
56
+ #: classes/admin/class-admin.php:375
57
  msgid "Google Ads Purchase Conversion Label"
58
  msgstr ""
59
 
60
+ #: classes/admin/class-admin.php:386
61
  msgid "Google Analytics UA"
62
  msgstr ""
63
 
64
+ #: classes/admin/class-admin.php:397
65
  msgid "Google Analytics 4"
66
  msgstr ""
67
 
68
+ #: classes/admin/class-admin.php:408
69
  msgid "Google Optimize"
70
  msgstr ""
71
 
72
+ #: classes/admin/class-admin.php:420
73
  msgid "Meta (Facebook)"
74
  msgstr ""
75
 
76
+ #: classes/admin/class-admin.php:443
77
  msgid "Meta (Facebook) pixel ID"
78
  msgstr ""
79
 
80
+ #: classes/admin/class-admin.php:455
81
  msgid "more pixels"
82
  msgstr ""
83
 
84
+ #: classes/admin/class-admin.php:480
85
  msgid "Microsoft Advertising UET tag ID"
86
  msgstr ""
87
 
88
+ #: classes/admin/class-admin.php:492
89
  msgid "Twitter pixel ID"
90
  msgstr ""
91
 
92
+ #: classes/admin/class-admin.php:504
93
  msgid "Pinterest pixel ID"
94
  msgstr ""
95
 
96
+ #: classes/admin/class-admin.php:516
97
  msgid "Snapchat pixel ID"
98
  msgstr ""
99
 
100
+ #: classes/admin/class-admin.php:528
101
  msgid "TikTok pixel ID"
102
  msgstr ""
103
 
104
+ #: classes/admin/class-admin.php:541
105
  msgid "Hotjar site ID"
106
  msgstr ""
107
 
108
+ #: classes/admin/class-admin.php:553
109
  msgid "Advanced"
110
  msgstr ""
111
 
112
+ #: classes/admin/class-admin.php:604
113
  msgid "Order Total Logic"
114
  msgstr ""
115
 
116
+ #: classes/admin/class-admin.php:616
117
  msgid "Order Duplication Prevention"
118
  msgstr ""
119
 
120
+ #: classes/admin/class-admin.php:628
121
  msgid "Maximum Compatibility Mode"
122
  msgstr ""
123
 
124
+ #: classes/admin/class-admin.php:642
125
  msgid "Disable Tracking for User Roles"
126
  msgstr ""
127
 
128
+ #: classes/admin/class-admin.php:654
129
  msgid "ACR"
130
  msgstr ""
131
 
132
  #: classes/admin/class-admin.php:667
133
+ msgid "Order List Info"
134
+ msgstr ""
135
+
136
+ #: classes/admin/class-admin.php:700
137
  msgid "Conversion Cart Data"
138
  msgstr ""
139
 
140
+ #: classes/admin/class-admin.php:713
141
  msgid "Enhanced E-Commerce"
142
  msgstr ""
143
 
144
+ #: classes/admin/class-admin.php:725
145
  msgid "GA 4 API secret"
146
  msgstr ""
147
 
148
+ #: classes/admin/class-admin.php:738
149
  msgid "Enhanced Link Attribution"
150
  msgstr ""
151
 
152
+ #: classes/admin/class-admin.php:751
153
  msgid "Google User ID"
154
  msgstr ""
155
 
156
+ #: classes/admin/class-admin.php:763
157
  msgid "Google Ads Enhanced Conversions"
158
  msgstr ""
159
 
160
+ #: classes/admin/class-admin.php:777
161
  msgid "Google Ads Phone Conversion Number"
162
  msgstr ""
163
 
164
+ #: classes/admin/class-admin.php:789
165
  msgid "Google Ads Phone Conversion Label"
166
  msgstr ""
167
 
168
+ #: classes/admin/class-admin.php:802
169
  msgid "Cookie Consent Management"
170
  msgstr ""
171
 
172
+ #: classes/admin/class-admin.php:825
173
  msgid "Google Consent Mode"
174
  msgstr ""
175
 
176
+ #: classes/admin/class-admin.php:837
177
  msgid "Google Consent Regions"
178
  msgstr ""
179
 
180
+ #: classes/admin/class-admin.php:849
181
  msgid "Explicit Consent Mode"
182
  msgstr ""
183
 
184
+ #: classes/admin/class-admin.php:862
185
  msgid "Borlabs Cookie support"
186
  msgstr ""
187
 
188
+ #: classes/admin/class-admin.php:876
189
  msgid "Cookiebot support"
190
  msgstr ""
191
 
192
+ #: classes/admin/class-admin.php:890
193
  msgid "Complianz GDPR support"
194
  msgstr ""
195
 
196
+ #: classes/admin/class-admin.php:904
197
  msgid "Cookie Notice support"
198
  msgstr ""
199
 
200
+ #: classes/admin/class-admin.php:918
201
  msgid "Cookie Script support"
202
  msgstr ""
203
 
204
+ #: classes/admin/class-admin.php:932
205
  msgid "GDPR Cookie Compliance support"
206
  msgstr ""
207
 
208
+ #: classes/admin/class-admin.php:946
209
  msgid "GDPR Cookie Consent support"
210
  msgstr ""
211
 
212
+ #: classes/admin/class-admin.php:979
213
  msgid "Meta (Facebook) CAPI: token"
214
  msgstr ""
215
 
216
+ #: classes/admin/class-admin.php:991
217
  msgid "Meta (Facebook) CAPI: process anonymous hits"
218
  msgstr ""
219
 
220
+ #: classes/admin/class-admin.php:1003
221
  msgid "Meta (Facebook) CAPI: send additional visitor identifiers"
222
  msgstr ""
223
 
224
+ #: classes/admin/class-admin.php:1015
225
  msgid "Meta (Facebook) Microdata Tags for Catalogues"
226
  msgstr ""
227
 
228
+ #: classes/admin/class-admin.php:1027
229
+ #: classes/admin/class-admin.php:1040
230
+ #: classes/admin/class-admin.php:1051
231
  msgid "Dynamic Remarketing"
232
  msgstr ""
233
 
234
+ #: classes/admin/class-admin.php:1063
235
  msgid "Product Identifier"
236
  msgstr ""
237
 
238
+ #: classes/admin/class-admin.php:1075
239
  msgid "Variations output"
240
  msgstr ""
241
 
242
+ #: classes/admin/class-admin.php:1088
243
  msgid "Google Business Vertical"
244
  msgstr ""
245
 
246
+ #: classes/admin/class-admin.php:1101
247
+ #: classes/admin/class-admin.php:1110
248
  msgid "Diagnostics"
249
  msgstr ""
250
 
251
+ #: classes/admin/class-admin.php:1118
252
+ #: classes/admin/class-admin.php:1127
253
  msgid "Support"
254
  msgstr ""
255
 
256
+ #: classes/admin/class-admin.php:1135
257
+ #: classes/admin/class-admin.php:1145
258
  msgid "Author"
259
  msgstr ""
260
 
261
+ #: classes/admin/class-admin.php:1192
262
  msgid ""
263
  "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"
264
  " In order for the plugin to work properly you need to disable the script blocker."
265
  msgstr ""
266
 
267
+ #: classes/admin/class-admin.php:1199
268
  #: classes/admin/class-notifications.php:96
269
  #: classes/admin/class-notifications.php:146
270
  msgid "Learn more"
271
  msgstr ""
272
 
273
+ #: classes/admin/class-admin.php:1243
274
  msgid "Profit Driven Marketing by SweetCode"
275
  msgstr ""
276
 
277
+ #: classes/admin/class-admin.php:1268
278
  msgid "Visit us here:"
279
  msgstr ""
280
 
281
+ #: classes/admin/class-admin.php:1314
282
  msgid "Payment Gateway Tracking Accuracy Report"
283
  msgstr ""
284
 
285
+ #: classes/admin/class-admin.php:1315
286
+ #: classes/admin/class-admin.php:2794
287
+ #: classes/admin/class-admin.php:2802
288
  msgid "beta"
289
  msgstr ""
290
 
291
+ #: classes/admin/class-admin.php:1319
292
  msgid "What's this? Follow this link to learn more"
293
  msgstr ""
294
 
295
+ #: classes/admin/class-admin.php:1327
296
  msgid "Available payment gateways"
297
  msgstr ""
298
 
299
+ #: classes/admin/class-admin.php:1334
300
  msgid "id"
301
  msgstr ""
302
 
303
+ #: classes/admin/class-admin.php:1335
304
  msgid "method_title"
305
  msgstr ""
306
 
307
+ #: classes/admin/class-admin.php:1336
308
  msgid "class"
309
  msgstr ""
310
 
311
+ #: classes/admin/class-admin.php:1354
312
  msgid "Purchase confirmation page reached per gateway (active and inactive)"
313
  msgstr ""
314
 
315
+ #: classes/admin/class-admin.php:1362
316
+ #: classes/admin/class-admin.php:1411
317
+ #: classes/admin/class-admin.php:1486
318
  msgid "The analysis is being generated. Please check back in 5 minutes."
319
  msgstr ""
320
 
321
+ #: classes/admin/class-admin.php:1403
322
  msgid "Purchase confirmation page reached per gateway (only active), weighted by frequency"
323
  msgstr ""
324
 
325
+ #: classes/admin/class-admin.php:1474
326
  msgid "Automatic Conversion Recovery (ACR)"
327
  msgstr ""
328
 
329
  #. translators: The number and percentage of orders that were recovered by the Automatic Conversion Recovery (ACR).
330
+ #: classes/admin/class-admin.php:1562
331
  msgid "ACR recovered %1$s (%2$s%%) out of %3$s missing conversions."
332
  msgstr ""
333
 
334
+ #: classes/admin/class-admin.php:1580
335
  msgid "This feature is only available in the pro version of the plugin. Follow the link to learn more about it:"
336
  msgstr ""
337
 
338
+ #: classes/admin/class-admin.php:1582
339
  msgid "Get the pro version of the Pixel Manager for WooCommerce over here"
340
  msgstr ""
341
 
342
+ #: classes/admin/class-admin.php:1584
343
  msgid "Go Pro"
344
  msgstr ""
345
 
346
+ #: classes/admin/class-admin.php:1613
347
  msgid "Contacting Support"
348
  msgstr ""
349
 
350
+ #: classes/admin/class-admin.php:1635
351
  msgid "Debug Information"
352
  msgstr ""
353
 
354
+ #: classes/admin/class-admin.php:1644
355
  msgid "copy to clipboard"
356
  msgstr ""
357
 
358
+ #: classes/admin/class-admin.php:1654
359
  msgid "Export settings"
360
  msgstr ""
361
 
362
+ #: classes/admin/class-admin.php:1666
363
  msgid "Export to disk"
364
  msgstr ""
365
 
366
+ #: classes/admin/class-admin.php:1675
367
  msgid "Import settings"
368
  msgstr ""
369
 
370
+ #: classes/admin/class-admin.php:1680
371
  msgid "Settings imported successfully!"
372
  msgstr ""
373
 
374
+ #: classes/admin/class-admin.php:1683
375
  msgid "Reloading...(in 5 seconds)!"
376
  msgstr ""
377
 
378
+ #: classes/admin/class-admin.php:1689
379
  msgid "There was an error importing that file! Please try again."
380
  msgstr ""
381
 
382
+ #: classes/admin/class-admin.php:1706
383
  msgid "Translations"
384
  msgstr ""
385
 
386
+ #: classes/admin/class-admin.php:1707
387
  msgid "If you want to participate improving the translations of this plugin into your language, please follow this link:"
388
  msgstr ""
389
 
390
+ #: classes/admin/class-admin.php:1725
391
  msgid "Post a support request in the WordPress support forum here: "
392
  msgstr ""
393
 
394
+ #: classes/admin/class-admin.php:1728
395
  msgid "Support forum"
396
  msgstr ""
397
 
398
+ #: classes/admin/class-admin.php:1732
399
  msgid "(Never post the debug or other sensitive information to the support forum. Instead send us the information by email.)"
400
  msgstr ""
401
 
402
+ #: classes/admin/class-admin.php:1735
403
  msgid "Or send us an email to the following address: "
404
  msgstr ""
405
 
406
+ #: classes/admin/class-admin.php:1751
407
  msgid "Send us your support request through the WooCommerce.com dashboard: "
408
  msgstr ""
409
 
410
+ #: classes/admin/class-admin.php:1765
411
  msgid "More details about the developer of this plugin: "
412
  msgstr ""
413
 
414
+ #: classes/admin/class-admin.php:1768
415
  msgid "Developer: SweetCode"
416
  msgstr ""
417
 
418
+ #: classes/admin/class-admin.php:1770
419
  msgid "Website: "
420
  msgstr ""
421
 
422
+ #: classes/admin/class-admin.php:1793
423
  msgid "The Google Analytics Universal property ID looks like this:"
424
  msgstr ""
425
 
426
+ #: classes/admin/class-admin.php:1809
427
  msgid "The Google Analytics 4 measurement ID looks like this:"
428
  msgstr ""
429
 
430
+ #: classes/admin/class-admin.php:1825
431
  msgid "The conversion ID looks similar to this:"
432
  msgstr ""
433
 
434
+ #: classes/admin/class-admin.php:1841
435
  msgid "The purchase conversion label looks similar to this:"
436
  msgstr ""
437
 
438
+ #: classes/admin/class-admin.php:1845
439
+ #: classes/admin/class-admin.php:2616
440
  msgid "Requires an active Google Ads Conversion ID"
441
  msgstr ""
442
 
443
+ #: classes/admin/class-admin.php:1863
444
  msgid "The Google Optimize container ID looks like this:"
445
  msgstr ""
446
 
447
+ #: classes/admin/class-admin.php:1865
448
+ #: classes/admin/class-admin.php:2034
449
  msgid "or"
450
  msgstr ""
451
 
452
+ #: classes/admin/class-admin.php:1881
453
  msgid "The Meta (Facebook) pixel ID looks similar to this:"
454
  msgstr ""
455
 
456
+ #: classes/admin/class-admin.php:1899
457
  msgid "The Microsoft Advertising UET tag ID looks similar to this:"
458
  msgstr ""
459
 
460
+ #: classes/admin/class-admin.php:1918
461
  msgid "The Twitter pixel ID looks similar to this:"
462
  msgstr ""
463
 
464
+ #: classes/admin/class-admin.php:1937
465
  msgid "The Pinterest pixel ID looks similar to this:"
466
  msgstr ""
467
 
468
+ #: classes/admin/class-admin.php:1956
469
  msgid "The Snapchat pixel ID looks similar to this:"
470
  msgstr ""
471
 
472
+ #: classes/admin/class-admin.php:1977
473
  msgid "The TikTok pixel ID looks similar to this:"
474
  msgstr ""
475
 
476
+ #: classes/admin/class-admin.php:1989
477
  msgid "The Hotjar site ID looks similar to this:"
478
  msgstr ""
479
 
480
+ #: classes/admin/class-admin.php:1999
481
+ msgid "Order Subtotal: Doesn't include tax and shipping (default)"
482
  msgstr ""
483
 
484
+ #: classes/admin/class-admin.php:2007
485
+ msgid "Order Total: Includes tax and shipping"
486
  msgstr ""
487
 
488
+ #: classes/admin/class-admin.php:2021
489
+ msgid "Profit Margin: Only reports the profit margin. Excludes tax, shipping, and where possible, gateway fees."
490
+ msgstr ""
491
+
492
+ #: classes/admin/class-admin.php:2027
493
  msgid "This is the order total amount reported back to the paid ads pixels (such as Google Ads, Facebook, etc.)"
494
  msgstr ""
495
 
496
+ #: classes/admin/class-admin.php:2031
497
+ msgid "To use the Profit Margin setting you will need to install one of the following two Cost of Goods plugins:"
498
+ msgstr ""
499
+
500
+ #: classes/admin/class-admin.php:2058
501
+ #: classes/admin/class-admin.php:2068
502
  msgid "open the documentation"
503
  msgstr ""
504
 
505
+ #: classes/admin/class-admin.php:2088
506
  msgid "Enable Google consent mode with standard settings"
507
  msgstr ""
508
 
509
+ #: classes/admin/class-admin.php:2126
510
  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."
511
  msgstr ""
512
 
513
+ #: classes/admin/class-admin.php:2134
514
  msgid "Google Analytics Enhanced E-Commerce is "
515
  msgstr ""
516
 
517
+ #: classes/admin/class-admin.php:2157
518
  msgid "Google Analytics 4 activation required"
519
  msgstr ""
520
 
521
+ #: classes/admin/class-admin.php:2160
522
  msgid "If enabled, purchase and refund events will be sent to Google through the measurement protocol for increased accuracy."
523
  msgstr ""
524
 
525
+ #: classes/admin/class-admin.php:2175
526
  msgid "Enable Google Analytics enhanced link attribution"
527
  msgstr ""
528
 
529
+ #: classes/admin/class-admin.php:2191
530
+ #: classes/admin/class-admin.php:2221
531
  msgid "You need to activate at least Google Analytics UA or Google Analytics 4"
532
  msgstr ""
533
 
534
+ #: classes/admin/class-admin.php:2210
535
  msgid "Enable Google user ID"
536
  msgstr ""
537
 
538
+ #: classes/admin/class-admin.php:2240
539
  msgid "Enable Google Ads Enhanced Conversions"
540
  msgstr ""
541
 
542
+ #: classes/admin/class-admin.php:2251
543
  msgid "You need to activate Google Ads"
544
  msgstr ""
545
 
546
+ #: classes/admin/class-admin.php:2271
547
  msgid "The Google Ads phone conversion number must be in the same format as on the website."
548
  msgstr ""
549
 
550
+ #: classes/admin/class-admin.php:2293
551
  msgid "Borlabs Cookie detected. Automatic support is:"
552
  msgstr ""
553
 
554
+ #: classes/admin/class-admin.php:2299
555
  msgid "Cookiebot detected. Automatic support is:"
556
  msgstr ""
557
 
558
+ #: classes/admin/class-admin.php:2305
559
  msgid "Complianz GDPR detected. Automatic support is:"
560
  msgstr ""
561
 
562
+ #: classes/admin/class-admin.php:2311
563
  msgid "Cookie Notice (by hu-manity.co) detected. Automatic support is:"
564
  msgstr ""
565
 
566
+ #: classes/admin/class-admin.php:2317
567
  msgid "Cookie Script (by cookie-script.com) detected. Automatic support is:"
568
  msgstr ""
569
 
570
+ #: classes/admin/class-admin.php:2323
571
  msgid "GDPR Cookie Compliance (by Moove Agency) detected. Automatic support is:"
572
  msgstr ""
573
 
574
+ #: classes/admin/class-admin.php:2329
575
  msgid "GDPR Cookie Consent (by WebToffee) detected. Automatic support is:"
576
  msgstr ""
577
 
578
+ #: classes/admin/class-admin.php:2348
579
  msgid "Enable Explicit Consent Mode"
580
  msgstr ""
581
 
582
+ #: classes/admin/class-admin.php:2357
583
  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."
584
  msgstr ""
585
 
586
+ #: classes/admin/class-admin.php:2376
587
+ #: classes/admin/class-admin.php:2409
588
+ #: classes/admin/class-admin.php:2438
589
+ #: classes/admin/class-admin.php:2466
590
  msgid "You need to activate the Meta (Facebook) pixel"
591
  msgstr ""
592
 
593
+ #: classes/admin/class-admin.php:2400
594
  msgid "Send CAPI hits for anonymous visitors who likely have blocked the Meta (Facebook) pixel."
595
  msgstr ""
596
 
597
+ #: classes/admin/class-admin.php:2429
598
  msgid "Include additional visitor's identifiers, such as IP address, email and shop ID in the CAPI hit."
599
  msgstr ""
600
 
601
+ #: classes/admin/class-admin.php:2457
602
  msgid "Enable Meta (Facebook) product microdata output"
603
  msgstr ""
604
 
605
+ #: classes/admin/class-admin.php:2493
606
  msgid "Only disable order duplication prevention for testing. Remember to re-enable the setting once done."
607
  msgstr ""
608
 
609
+ #: classes/admin/class-admin.php:2510
610
  msgid "Enable the maximum compatibility mode"
611
  msgstr ""
612
 
613
+ #: classes/admin/class-admin.php:2545
614
  msgid "Automatic Conversion Recovery (ACR) is "
615
  msgstr ""
616
 
617
+ #: classes/admin/class-admin.php:2563
618
+ msgid "Display PMW related information on the order list page"
619
+ msgstr ""
620
+
621
+ #: classes/admin/class-admin.php:2575
622
  msgid "Advanced order duplication prevention is "
623
  msgstr ""
624
 
625
+ #: classes/admin/class-admin.php:2577
626
  msgid "Basic order duplication prevention is "
627
  msgstr ""
628
 
629
+ #: classes/admin/class-admin.php:2601
630
  msgid "Enable dynamic remarketing audience collection"
631
  msgstr ""
632
 
633
+ #: classes/admin/class-admin.php:2622
634
  msgid "You need to choose the correct product identifier setting in order to match the product identifiers in the product feeds."
635
  msgstr ""
636
 
637
+ #: classes/admin/class-admin.php:2640
638
  msgid "Enable variations output"
639
  msgstr ""
640
 
641
+ #: classes/admin/class-admin.php:2651
642
  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."
643
  msgstr ""
644
 
645
+ #: classes/admin/class-admin.php:2666
646
  msgid "Retail"
647
  msgstr ""
648
 
649
+ #: classes/admin/class-admin.php:2676
650
  msgid "Education"
651
  msgstr ""
652
 
653
+ #: classes/admin/class-admin.php:2686
654
  msgid "Hotels and rentals"
655
  msgstr ""
656
 
657
+ #: classes/admin/class-admin.php:2696
658
  msgid "Jobs"
659
  msgstr ""
660
 
661
+ #: classes/admin/class-admin.php:2706
662
  msgid "Local deals"
663
  msgstr ""
664
 
665
+ #: classes/admin/class-admin.php:2716
666
  msgid "Real estate"
667
  msgstr ""
668
 
669
+ #: classes/admin/class-admin.php:2726
670
  msgid "Custom"
671
  msgstr ""
672
 
673
+ #: classes/admin/class-admin.php:2745
674
  msgid "ID of your Google Merchant Center account. It looks like this: 12345678"
675
  msgstr ""
676
 
677
+ #: classes/admin/class-admin.php:2754
678
  msgid "post ID (default)"
679
  msgstr ""
680
 
681
+ #: classes/admin/class-admin.php:2760
682
  msgid "SKU"
683
  msgstr ""
684
 
685
+ #: classes/admin/class-admin.php:2767
686
  msgid "ID for the WooCommerce Google Product Feed. Outputs the post ID with woocommerce_gpf_ prefix *"
687
  msgstr ""
688
 
689
+ #: classes/admin/class-admin.php:2774
690
  msgid "ID for the WooCommerce Google Listings & Ads Plugin. Outputs the post ID with gla_ prefix **"
691
  msgstr ""
692
 
693
+ #: classes/admin/class-admin.php:2778
694
  msgid "Choose a product identifier."
695
  msgstr ""
696
 
697
+ #: classes/admin/class-admin.php:2781
698
  msgid "* This is for users of the WooCommerce Google Product Feed Plugin"
699
  msgstr ""
700
 
701
+ #: classes/admin/class-admin.php:2785
702
  msgid "** This is for users of the WooCommerce Google Listings & Ads Plugin"
703
  msgstr ""
704
 
705
+ #: classes/admin/class-admin.php:2808
706
+ #: classes/admin/class-admin.php:2813
707
  msgid "active"
708
  msgstr ""
709
 
710
+ #: classes/admin/class-admin.php:2818
711
+ #: classes/admin/class-admin.php:2823
712
  msgid "inactive"
713
  msgstr ""
714
 
715
+ #: classes/admin/class-admin.php:2828
716
+ #: classes/admin/class-admin.php:2833
717
  msgid "partially active"
718
  msgstr ""
719
 
720
+ #: classes/admin/class-admin.php:2844
721
  msgid "Pro Feature"
722
  msgstr ""
723
 
724
+ #: classes/admin/class-admin.php:2887
725
  msgid "You have entered an invalid Google Analytics Universal property ID."
726
  msgstr ""
727
 
728
+ #: classes/admin/class-admin.php:2895
729
  msgid "You have entered an invalid Google Analytics 4 measurement ID."
730
  msgstr ""
731
 
732
+ #: classes/admin/class-admin.php:2903
733
  msgid "You have entered an invalid Google Analytics 4 API key."
734
  msgstr ""
735
 
736
+ #: classes/admin/class-admin.php:2911
737
  msgid "You have entered an invalid conversion ID. It only contains 8 to 10 digits."
738
  msgstr ""
739
 
740
+ #: classes/admin/class-admin.php:2919
741
+ #: classes/admin/class-admin.php:2927
742
  msgid "You have entered an invalid conversion label."
743
  msgstr ""
744
 
745
+ #: classes/admin/class-admin.php:2935
746
  msgid "You have entered an invalid merchant ID. It only contains 6 to 12 digits."
747
  msgstr ""
748
 
749
+ #: classes/admin/class-admin.php:2943
750
  msgid "You have entered an invalid Google Optimize container ID."
751
  msgstr ""
752
 
753
+ #: classes/admin/class-admin.php:2951
754
  msgid "You have entered an invalid Meta (Facebook) pixel ID. It only contains 14 to 16 digits."
755
  msgstr ""
756
 
757
+ #: classes/admin/class-admin.php:2959
758
  msgid "You have entered an invalid Meta (Facebook) CAPI token."
759
  msgstr ""
760
 
761
+ #: classes/admin/class-admin.php:2967
762
  msgid "You have entered an invalid Bing Ads UET tag ID. It only contains 7 to 9 digits."
763
  msgstr ""
764
 
765
+ #: classes/admin/class-admin.php:2975
766
  msgid "You have entered an invalid Twitter pixel ID. It only contains 5 to 7 lowercase letters and numbers."
767
  msgstr ""
768
 
769
+ #: classes/admin/class-admin.php:2983
770
  msgid "You have entered an invalid Pinterest pixel ID. It only contains 13 digits."
771
  msgstr ""
772
 
773
+ #: classes/admin/class-admin.php:2991
774
  msgid "You have entered an invalid Snapchat pixel ID."
775
  msgstr ""
776
 
777
+ #: classes/admin/class-admin.php:2999
778
  msgid "You have entered an invalid TikTok pixel ID."
779
  msgstr ""
780
 
781
+ #: classes/admin/class-admin.php:3007
782
  msgid "You have entered an invalid Hotjar site ID. It only contains 6 to 9 digits."
783
  msgstr ""
784
 
870
  msgid "Conversion pixels not fired yet"
871
  msgstr ""
872
 
873
+ #: wgact.php:271
874
  msgid "Pixel Manager for WooCommerce error"
875
  msgstr ""
876
 
877
+ #: wgact.php:273
878
  msgid "Your environment doesn't meet all the system requirements listed below."
879
  msgstr ""
880
 
881
+ #: wgact.php:277
882
  msgid "The WooCommerce plugin needs to be activated"
883
  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.0
6
  Requires PHP: 7.3
7
- Stable tag: 1.20.2
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -18,17 +18,17 @@ The Pixel Manager is the most complete and flexible solution for implementing pi
18
 
19
  The Pixel Managers advanced architecture has numerous advantages over other solutions:
20
 
21
- - Its transpiled and optimized JavaScript library ensures compatibility with more than 98% of all browsers that visit your website.
22
  - Data privacy features allow you to achieve the highest level of GDPR (and other privacy) compliance.
23
  - It is very easy to use and easy to understand.
24
  - Filters allow you to modify the output very flexibly and customize it perfectly to your needs.
25
  - Standardized output to all pixels allows a much better apples-to-apples comparison between different providers.
26
  - Payment gateway accuracy report that shows how many conversions are lost due to redirect issues.
27
  - Automatic Conversion Recovery (ACR) feature allows you to recover lost conversions due to redirect issues.
 
28
 
29
  While the setup is as simple as it can get, the pixel engine under the hood is very powerful. It tracks all e-commerce events and implements all advanced pixel features like Meta CAPI (Facebook CAPI) (Pro version), Google Analytics Enhanced E-Commerce, Google Shopping Cart Item Tracking, and much more. For advanced users, the plugin offers filters that allow them to tweak the output flexibly and fine-tune the behavior for each shop.
30
 
31
- <strong>What sets us apart from other, similar plugins?</strong>
32
 
33
  The unparalleled and high tracking accuracy, the simple user interface, and constant innovation make Pixel Manager the best solution for e-commerce tracking.
34
 
@@ -107,8 +107,10 @@ Are you interested in buying the [Pro version](https://sweetcode.com)? Come and
107
  The plugin supports and works with the following third-party plugins.
108
 
109
  * CartFlows
 
110
  * WooCommerce Brands
111
  * WooCommerce Composite Products
 
112
  * WooCommerce Deposits
113
  * WooCommerce Google Product Feed
114
  * WooCommerce Subscriptions
@@ -209,6 +211,16 @@ You can send the link to the front page of your shop too if you think it would b
209
 
210
  == Changelog ==
211
 
 
 
 
 
 
 
 
 
 
 
212
  = 1.20.2 = 31.08.2022
213
 
214
  * Fix: Fixed division by zero if WPML multi currency is enabled and a product has a price of zero or has no price set.
4
  Requires at least: 3.7
5
  Tested up to: 6.0
6
  Requires PHP: 7.3
7
+ Stable tag: 1.21.0
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
18
 
19
  The Pixel Managers advanced architecture has numerous advantages over other solutions:
20
 
 
21
  - Data privacy features allow you to achieve the highest level of GDPR (and other privacy) compliance.
22
  - It is very easy to use and easy to understand.
23
  - Filters allow you to modify the output very flexibly and customize it perfectly to your needs.
24
  - Standardized output to all pixels allows a much better apples-to-apples comparison between different providers.
25
  - Payment gateway accuracy report that shows how many conversions are lost due to redirect issues.
26
  - Automatic Conversion Recovery (ACR) feature allows you to recover lost conversions due to redirect issues.
27
+ - Its transpiled and optimized JavaScript library ensures compatibility with more than 98% of all browsers that visit your website.
28
 
29
  While the setup is as simple as it can get, the pixel engine under the hood is very powerful. It tracks all e-commerce events and implements all advanced pixel features like Meta CAPI (Facebook CAPI) (Pro version), Google Analytics Enhanced E-Commerce, Google Shopping Cart Item Tracking, and much more. For advanced users, the plugin offers filters that allow them to tweak the output flexibly and fine-tune the behavior for each shop.
30
 
31
+ <strong>What makes the Pixle Manager unique?</strong>
32
 
33
  The unparalleled and high tracking accuracy, the simple user interface, and constant innovation make Pixel Manager the best solution for e-commerce tracking.
34
 
107
  The plugin supports and works with the following third-party plugins.
108
 
109
  * CartFlows
110
+ * Cost of Goods for WooCommerce (WPFactory)
111
  * WooCommerce Brands
112
  * WooCommerce Composite Products
113
+ * WooCommerce Cost of Goods (SkyVerge)
114
  * WooCommerce Deposits
115
  * WooCommerce Google Product Feed
116
  * WooCommerce Subscriptions
211
 
212
  == Changelog ==
213
 
214
+ = 1.21.0 = 12.09.2022
215
+
216
+
217
+ * Tweak: Added option to disable the PMW order list info output.
218
+ * Tweak: Updated default settings.
219
+ * Tweak: Added doc link for order list info.
220
+ * Tweak: Refactored running PMW tracking accuracy analysis report to better work with action scheduler to avoid running into its initialization bug
221
+ * Fix: Fixed options validation when importing the settings.
222
+ * Fix: Added safeguard to not fire the conversion pixels on the /order-pay/ page.
223
+
224
  = 1.20.2 = 31.08.2022
225
 
226
  * Fix: Fixed division by zero if WPML multi currency is enabled and a product has a price of zero or has no price set.
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.20.2
14
  *
15
  * WC requires at least: 3.7
16
  * WC tested up to: 6.8
@@ -19,7 +19,7 @@
19
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
  **/
22
- const WPM_CURRENT_VERSION = '1.20.2' ;
23
  // TODO add option checkbox on uninstall and ask if user wants to delete options from db
24
 
25
  if ( !defined( 'ABSPATH' ) ) {
@@ -31,7 +31,6 @@ 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\Notifications ;
35
  use WCPM\Classes\Admin\Order_Columns ;
36
  use WCPM\Classes\Db_Upgrade ;
37
  use WCPM\Classes\Default_Options ;
@@ -155,6 +154,12 @@ if ( function_exists( 'wpm_fs' ) ) {
155
 
156
  if ( $this->is_woocommerce_active() ) {
157
  add_action( 'woocommerce_init', [ $this, 'init' ] );
 
 
 
 
 
 
158
  } else {
159
  add_action( 'init', [ $this, 'init' ] );
160
  }
@@ -166,6 +171,25 @@ if ( function_exists( 'wpm_fs' ) ) {
166
 
167
  }
168
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  protected function is_woocommerce_active()
170
  {
171
  return is_plugin_active( 'woocommerce/woocommerce.php' );
@@ -262,31 +286,16 @@ if ( function_exists( 'wpm_fs' ) ) {
262
  // startup all functions
263
  public function init()
264
  {
265
- add_action( 'pmw_tracking_accuracy_analysis', function () {
266
- Debug_Info::get_instance()->run_tracking_accuracy_analysis();
267
- } );
268
 
269
  if ( is_admin() ) {
270
- // If the tracking accuracy has not been run yet, run it immediately in the background.
271
-
272
- if ( function_exists( 'as_enqueue_async_action' ) && !get_transient( 'pmw_tracking_accuracy_analysis' ) && !get_transient( 'pmw_tracking_accuracy_analysis_running_in_as' ) ) {
273
- // Set a transient for 5 minutes for pmw_tracking_accuracy_analysis_running_in_as
274
- // This is a workaround because as_enqueue_async_action is buggy
275
- // https://github.com/woocommerce/action-scheduler/issues/839
276
- set_transient( 'pmw_tracking_accuracy_analysis_running_in_as', true, 5 * MINUTE_IN_SECONDS );
277
- as_enqueue_async_action( 'pmw_tracking_accuracy_analysis' );
278
- }
279
-
280
- if ( !wp_next_scheduled( 'pmw_tracking_accuracy_analysis' ) ) {
281
- wp_schedule_event( strtotime( '03:25:00' ), 'daily', 'pmw_tracking_accuracy_analysis' );
282
- }
283
  // display admin views
284
  Admin::get_instance();
285
  // ask visitor for rating
286
  Ask_For_Rating::get_instance();
287
  // Load admin notification handlers
288
  Notification_Handlers::get_instance();
289
- if ( Environment_Check::get_instance()->is_woocommerce_active() ) {
 
290
  Order_Columns::get_instance();
291
  }
292
  // add a settings link on the plugins page
10
  * Developer URI: https://sweetcode.com
11
  * Text Domain: woocommerce-google-adwords-conversion-tracking-tag
12
  * Domain path: /languages
13
+ * * Version: 1.21.0
14
  *
15
  * WC requires at least: 3.7
16
  * WC tested up to: 6.8
19
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
  **/
22
+ const WPM_CURRENT_VERSION = '1.21.0' ;
23
  // TODO add option checkbox on uninstall and ask if user wants to delete options from db
24
 
25
  if ( !defined( 'ABSPATH' ) ) {
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\Db_Upgrade ;
36
  use WCPM\Classes\Default_Options ;
154
 
155
  if ( $this->is_woocommerce_active() ) {
156
  add_action( 'woocommerce_init', [ $this, 'init' ] );
157
+ add_action(
158
+ 'init',
159
+ [ $this, 'run_woocommerce_reports' ],
160
+ 10,
161
+ 2
162
+ );
163
  } else {
164
  add_action( 'init', [ $this, 'init' ] );
165
  }
171
 
172
  }
173
 
174
+ public function run_woocommerce_reports()
175
+ {
176
+ add_action( 'pmw_tracking_accuracy_analysis', function () {
177
+ Debug_Info::get_instance()->run_tracking_accuracy_analysis();
178
+ } );
179
+ // Only run reports if the Pixel Manager settings are being accessed
180
+ if ( !Environment_Check::get_instance()->is_pmw_settings_page() ) {
181
+ return;
182
+ }
183
+ // If the tracking accuracy has not been run yet, run it immediately in the background.
184
+ // https://github.com/woocommerce/action-scheduler/issues/839
185
+ if ( function_exists( 'as_enqueue_async_action' ) && !as_has_scheduled_action( 'pmw_tracking_accuracy_analysis' ) && !get_transient( 'pmw_tracking_accuracy_analysis' ) ) {
186
+ as_enqueue_async_action( 'pmw_tracking_accuracy_analysis' );
187
+ }
188
+ if ( !wp_next_scheduled( 'pmw_tracking_accuracy_analysis' ) ) {
189
+ wp_schedule_event( strtotime( '03:25:00' ), 'daily', 'pmw_tracking_accuracy_analysis' );
190
+ }
191
+ }
192
+
193
  protected function is_woocommerce_active()
194
  {
195
  return is_plugin_active( 'woocommerce/woocommerce.php' );
286
  // startup all functions
287
  public function init()
288
  {
 
 
 
289
 
290
  if ( is_admin() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  // display admin views
292
  Admin::get_instance();
293
  // ask visitor for rating
294
  Ask_For_Rating::get_instance();
295
  // Load admin notification handlers
296
  Notification_Handlers::get_instance();
297
+ // Show PMW information on the order list page
298
+ if ( Environment_Check::get_instance()->is_woocommerce_active() && $this->options['shop']['order_list_info'] ) {
299
  Order_Columns::get_instance();
300
  }
301
  // add a settings link on the plugins page