PixelYourSite – Facebook Pixel (Events, WooCommerce & Easy Digital Downloads) - Version 7.0.4

Version Description

Download this release

Release Info

Developer PixelYourSite
Plugin Icon 128x128 PixelYourSite – Facebook Pixel (Events, WooCommerce & Easy Digital Downloads)
Version 7.0.4
Comparing to
See all releases

Code changes from version 7.0.3 to 7.0.4

dist/scripts/public.js CHANGED
@@ -810,14 +810,22 @@ if (!Array.prototype.includes) {
810
 
811
  Utils.loadGoogleTag(options.ga.trackingIds[0]);
812
 
813
- // configure tracking ids
814
- options.ga.trackingIds.forEach(function (trackingId) {
 
 
815
 
816
- gtag('config', trackingId, {
817
- 'link_attribution': options.ga.enhanceLinkAttr,
818
- 'anonymize_ip': options.ga.anonimizeIP
819
- });
 
 
 
820
 
 
 
 
821
  });
822
 
823
  initialized = true;
810
 
811
  Utils.loadGoogleTag(options.ga.trackingIds[0]);
812
 
813
+ var config = {
814
+ 'link_attribution': options.ga.enhanceLinkAttr,
815
+ 'anonymize_ip': options.ga.anonimizeIP
816
+ };
817
 
818
+ // Cross-Domain tracking
819
+ if (options.ga.crossDomainEnabled) {
820
+ config.linker = {
821
+ accept_incoming: options.ga.crossDomainAcceptIncoming,
822
+ domains: options.ga.crossDomainDomains
823
+ };
824
+ }
825
 
826
+ // configure tracking ids
827
+ options.ga.trackingIds.forEach(function (trackingId) {
828
+ gtag('config', trackingId, config);
829
  });
830
 
831
  initialized = true;
facebook-pixel-master.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: PixelYourSite
5
  * Plugin URI: http://www.pixelyoursite.com/
6
  * Description: No codding <strong>Facebook Pixel</strong> and <strong>Google Analytics</strong> install. Track key actions with our Global Events, or configure your own events. WooCommerce and EDD fully supported, with Facebook Dynamic Ads Pixel set-up and Google Analytics Enhanced Ecommerce. Insert any custom script with our Head & Footer option. Add the <strong>Pinterest Tag</strong> with our free add-on. The PRO version adds support for the Google Ads tag plus a lot of extra stuff.
7
- * Version: 7.0.3
8
  * Author: PixelYourSite
9
  * Author URI: http://www.pixelyoursite.com
10
  * License: GPLv3
@@ -13,7 +13,7 @@
13
  * Tested up to: 5.1.1
14
  *
15
  * WC requires at least: 2.6.0
16
- * WC tested up to: 3.6.1
17
  *
18
  * Text Domain: pys
19
  */
4
  * Plugin Name: PixelYourSite
5
  * Plugin URI: http://www.pixelyoursite.com/
6
  * Description: No codding <strong>Facebook Pixel</strong> and <strong>Google Analytics</strong> install. Track key actions with our Global Events, or configure your own events. WooCommerce and EDD fully supported, with Facebook Dynamic Ads Pixel set-up and Google Analytics Enhanced Ecommerce. Insert any custom script with our Head & Footer option. Add the <strong>Pinterest Tag</strong> with our free add-on. The PRO version adds support for the Google Ads tag plus a lot of extra stuff.
7
+ * Version: 7.0.4
8
  * Author: PixelYourSite
9
  * Author URI: http://www.pixelyoursite.com
10
  * License: GPLv3
13
  * Tested up to: 5.1.1
14
  *
15
  * WC requires at least: 2.6.0
16
+ * WC tested up to: 3.6.2
17
  *
18
  * Text Domain: pys
19
  */
includes/class-pys.php CHANGED
@@ -60,9 +60,8 @@ final class PYS extends Settings implements Plugin {
60
  add_action( 'admin_notices', 'PixelYourSite\adminRenderPromoNotice' );
61
  add_action( 'admin_init', array( $this, 'adminProcessRequest' ), 11 );
62
 
63
- if ( ! defined( 'DOING_AJAX' ) ) {
64
- add_action( 'template_redirect', array( $this, 'managePixels' ) );
65
- }
66
 
67
  // "admin_permission" option custom sanitization function
68
  add_filter( 'pys_core_settings_sanitize_admin_permissions_field', function( $value ) {
@@ -177,6 +176,20 @@ final class PYS extends Settings implements Plugin {
177
  */
178
  public function managePixels() {
179
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
  // output debug info
181
  add_action( 'wp_head', function() {
182
  echo "<script type='text/javascript'>console.log('PixelYourSite Free version " . PYS_FREE_VERSION . "');</script>\r\n";
60
  add_action( 'admin_notices', 'PixelYourSite\adminRenderPromoNotice' );
61
  add_action( 'admin_init', array( $this, 'adminProcessRequest' ), 11 );
62
 
63
+ // run Events Manager
64
+ add_action( 'template_redirect', array( $this, 'managePixels' ) );
 
65
 
66
  // "admin_permission" option custom sanitization function
67
  add_filter( 'pys_core_settings_sanitize_admin_permissions_field', function( $value ) {
176
  */
177
  public function managePixels() {
178
 
179
+ if (defined('DOING_AJAX') && DOING_AJAX) {
180
+ return;
181
+ }
182
+
183
+ // disable PYS on Customizer and preview mode
184
+ if (is_admin() || is_customize_preview() || is_preview()) {
185
+ return;
186
+ }
187
+
188
+ // disable PYS on Elementor editor
189
+ if (did_action('elementor/preview/init') || did_action('elementor/editor/init')) {
190
+ return;
191
+ }
192
+
193
  // output debug info
194
  add_action( 'wp_head', function() {
195
  echo "<script type='text/javascript'>console.log('PixelYourSite Free version " . PYS_FREE_VERSION . "');</script>\r\n";
includes/functions-admin.php CHANGED
@@ -283,6 +283,11 @@ function adminRenderNotices() {
283
  }
284
 
285
  }
 
 
 
 
 
286
 
287
  } else {
288
 
@@ -388,6 +393,21 @@ function adminNoticeDismissHandler() {
388
 
389
  }
390
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
391
  function adminRenderNoPixelsNotice() {
392
 
393
  if ( 'pixelyoursite' == getCurrentAdminPage() ) {
@@ -588,6 +608,27 @@ function renderDummySelectInput( $value, $full_width = false ) {
588
  <?php
589
  }
590
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
591
  function renderProBadge( $url = null ) {
592
 
593
  if ( ! $url ) {
283
  }
284
 
285
  }
286
+
287
+ // show notice if licence was never activated
288
+ if (Pinterest()->enabled() && empty($pinterest_license_status)) {
289
+ adminRenderActivatePinterestLicence();
290
+ }
291
 
292
  } else {
293
 
393
 
394
  }
395
 
396
+ function adminRenderActivatePinterestLicence() {
397
+
398
+ if ( 'pixelyoursite_licenses' == getCurrentAdminPage() ) {
399
+ return; // do not show notice licenses page
400
+ }
401
+
402
+ ?>
403
+
404
+ <div class="notice notice-error">
405
+ <p>Activate your Pinterest add-on license: <a href="<?php echo esc_url( buildAdminUrl( 'pixelyoursite_licenses' ) ); ?>">click here</a>.</p>
406
+ </div>
407
+
408
+ <?php
409
+ }
410
+
411
  function adminRenderNoPixelsNotice() {
412
 
413
  if ( 'pixelyoursite' == getCurrentAdminPage() ) {
608
  <?php
609
  }
610
 
611
+ function renderDummyGoogleAdsConversionLabelInputs() {
612
+ ?>
613
+
614
+ <div class="row mt-1 mb-2">
615
+ <div class="col-11 col-offset-left form-inline">
616
+ <label>Add conversion label </label>
617
+ <?php renderDummyTextInput( 'Enter conversion label' ); ?>
618
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag'); ?>
619
+ </div>
620
+ <div class="col-1">
621
+ <button type="button" class="btn btn-link" role="button" data-toggle="pys-popover" data-trigger="focus"
622
+ data-placement="right" data-popover_id="google_ads_conversion_label" data-original-title=""
623
+ title="">
624
+ <i class="fa fa-info-circle" aria-hidden="true"></i>
625
+ </button>
626
+ </div>
627
+ </div>
628
+
629
+ <?php
630
+ }
631
+
632
  function renderProBadge( $url = null ) {
633
 
634
  if ( ! $url ) {
includes/views/html-main-edd.php CHANGED
@@ -298,9 +298,10 @@ if ( ! defined( 'ABSPATH' ) ) {
298
  <div class="col">
299
  <?php renderDummySwitcher(); ?>
300
  <h4 class="switcher-label">Enable the purchase event on Google Ads</h4>
301
- <?php renderProBadge(); ?>
302
  </div>
303
  </div>
 
304
 
305
  <div class="row mt-3">
306
  <div class="col">
@@ -391,9 +392,10 @@ if ( ! defined( 'ABSPATH' ) ) {
391
  <div class="col">
392
  <?php renderDummySwitcher(); ?>
393
  <h4 class="switcher-label">Enable the begin_checkout event on Google Ads</h4>
394
- <?php renderProBadge(); ?>
395
  </div>
396
  </div>
 
397
 
398
  </div>
399
  </div>
@@ -433,7 +435,7 @@ if ( ! defined( 'ABSPATH' ) ) {
433
  <div class="col">
434
  <?php renderDummySwitcher(); ?>
435
  <h4 class="switcher-label">Enable the remove_from_cart event on Google Ads</h4>
436
- <?php renderProBadge(); ?>
437
  </div>
438
  </div>
439
 
@@ -527,9 +529,10 @@ if ( ! defined( 'ABSPATH' ) ) {
527
  <div class="col">
528
  <?php renderDummySwitcher(); ?>
529
  <h4 class="switcher-label">Enable the add_to_cart event on Google Ads</h4>
530
- <?php renderProBadge(); ?>
531
  </div>
532
  </div>
 
533
 
534
  </div>
535
  </div>
@@ -618,9 +621,10 @@ if ( ! defined( 'ABSPATH' ) ) {
618
  <div class="col">
619
  <?php renderDummySwitcher(); ?>
620
  <h4 class="switcher-label">Enable the view_item event on Google Ads</h4>
621
- <?php renderProBadge(); ?>
622
  </div>
623
  </div>
 
624
 
625
  </div>
626
  </div>
@@ -663,6 +667,7 @@ if ( ! defined( 'ABSPATH' ) ) {
663
  <?php renderProBadge(); ?>
664
  </div>
665
  </div>
 
666
 
667
  <?php if ( Pinterest()->enabled() ) : ?>
668
  <div class="row">
298
  <div class="col">
299
  <?php renderDummySwitcher(); ?>
300
  <h4 class="switcher-label">Enable the purchase event on Google Ads</h4>
301
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
302
  </div>
303
  </div>
304
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
305
 
306
  <div class="row mt-3">
307
  <div class="col">
392
  <div class="col">
393
  <?php renderDummySwitcher(); ?>
394
  <h4 class="switcher-label">Enable the begin_checkout event on Google Ads</h4>
395
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
396
  </div>
397
  </div>
398
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
399
 
400
  </div>
401
  </div>
435
  <div class="col">
436
  <?php renderDummySwitcher(); ?>
437
  <h4 class="switcher-label">Enable the remove_from_cart event on Google Ads</h4>
438
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
439
  </div>
440
  </div>
441
 
529
  <div class="col">
530
  <?php renderDummySwitcher(); ?>
531
  <h4 class="switcher-label">Enable the add_to_cart event on Google Ads</h4>
532
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
533
  </div>
534
  </div>
535
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
536
 
537
  </div>
538
  </div>
621
  <div class="col">
622
  <?php renderDummySwitcher(); ?>
623
  <h4 class="switcher-label">Enable the view_item event on Google Ads</h4>
624
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
625
  </div>
626
  </div>
627
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
628
 
629
  </div>
630
  </div>
667
  <?php renderProBadge(); ?>
668
  </div>
669
  </div>
670
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
671
 
672
  <?php if ( Pinterest()->enabled() ) : ?>
673
  <div class="row">
includes/views/html-main-events-edit.php CHANGED
@@ -480,7 +480,7 @@ $event = isset( $_REQUEST['id'] ) ? CustomEventFactory::getById( $_REQUEST['id']
480
 
481
  <div class="card card-disabled">
482
  <div class="card-header">
483
- Google Ads <?php renderProBadge(); ?><?php cardCollapseBtn(); ?>
484
  </div>
485
  <div class="card-body">
486
  <div class="row mb-2">
480
 
481
  <div class="card card-disabled">
482
  <div class="card-header">
483
+ Google Ads <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?><?php cardCollapseBtn(); ?>
484
  </div>
485
  <div class="card-body">
486
  <div class="row mb-2">
includes/views/html-main-general.php CHANGED
@@ -126,7 +126,7 @@ if ( ! defined( 'ABSPATH' ) ) {
126
  <div class="col">
127
  <?php renderDummySwitcher(); ?>
128
  <h4 class="switcher-label">Enable on Google Ads</h4>
129
- <?php renderProBadge() ?>
130
  </div>
131
  </div>
132
 
@@ -266,7 +266,7 @@ if ( ! defined( 'ABSPATH' ) ) {
266
  <div class="col">
267
  <?php renderDummySwitcher(); ?>
268
  <h4 class="switcher-label">Enable the search event on Google Ads</h4>
269
- <?php renderProBadge() ?>
270
  </div>
271
  </div>
272
 
@@ -326,7 +326,7 @@ if ( ! defined( 'ABSPATH' ) ) {
326
  <div class="col">
327
  <?php renderDummySwitcher(); ?>
328
  <h4 class="switcher-label">Enable the Form event on Google Ads</h4>
329
- <?php renderProBadge() ?>
330
  </div>
331
  </div>
332
 
@@ -386,7 +386,7 @@ if ( ! defined( 'ABSPATH' ) ) {
386
  <div class="col">
387
  <?php renderDummySwitcher(); ?>
388
  <h4 class="switcher-label">Enable the Comment event on Google Ads</h4>
389
- <?php renderProBadge() ?>
390
  </div>
391
  </div>
392
 
@@ -447,7 +447,7 @@ if ( ! defined( 'ABSPATH' ) ) {
447
  <div class="col">
448
  <?php renderDummySwitcher(); ?>
449
  <h4 class="switcher-label">Enable the Download event on Google Ads</h4>
450
- <?php renderProBadge() ?>
451
  </div>
452
  </div>
453
 
126
  <div class="col">
127
  <?php renderDummySwitcher(); ?>
128
  <h4 class="switcher-label">Enable on Google Ads</h4>
129
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
130
  </div>
131
  </div>
132
 
266
  <div class="col">
267
  <?php renderDummySwitcher(); ?>
268
  <h4 class="switcher-label">Enable the search event on Google Ads</h4>
269
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
270
  </div>
271
  </div>
272
 
326
  <div class="col">
327
  <?php renderDummySwitcher(); ?>
328
  <h4 class="switcher-label">Enable the Form event on Google Ads</h4>
329
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
330
  </div>
331
  </div>
332
 
386
  <div class="col">
387
  <?php renderDummySwitcher(); ?>
388
  <h4 class="switcher-label">Enable the Comment event on Google Ads</h4>
389
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
390
  </div>
391
  </div>
392
 
447
  <div class="col">
448
  <?php renderDummySwitcher(); ?>
449
  <h4 class="switcher-label">Enable the Download event on Google Ads</h4>
450
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
451
  </div>
452
  </div>
453
 
includes/views/html-main-woo.php CHANGED
@@ -381,9 +381,10 @@ use PixelYourSite\Facebook\Helpers;
381
  <div class="col">
382
  <?php renderDummySwitcher(); ?>
383
  <h4 class="switcher-label">Enable the purchase event on Google Ads</h4>
384
- <?php renderProBadge(); ?>
385
  </div>
386
  </div>
 
387
 
388
  <div class="row mt-3">
389
  <div class="col">
@@ -473,9 +474,10 @@ use PixelYourSite\Facebook\Helpers;
473
  <div class="col">
474
  <?php renderDummySwitcher(); ?>
475
  <h4 class="switcher-label">Enable the begin_checkout event on Google Ads</h4>
476
- <?php renderProBadge(); ?>
477
  </div>
478
  </div>
 
479
 
480
  </div>
481
  </div>
@@ -515,7 +517,7 @@ use PixelYourSite\Facebook\Helpers;
515
  <div class="col">
516
  <?php renderDummySwitcher(); ?>
517
  <h4 class="switcher-label">Enable the remove_from_cart event on Google Ads</h4>
518
- <?php renderProBadge(); ?>
519
  </div>
520
  </div>
521
 
@@ -609,9 +611,10 @@ use PixelYourSite\Facebook\Helpers;
609
  <div class="col">
610
  <?php renderDummySwitcher(); ?>
611
  <h4 class="switcher-label">Enable the add_to_cart event on Google Ads</h4>
612
- <?php renderProBadge(); ?>
613
  </div>
614
  </div>
 
615
 
616
  </div>
617
  </div>
@@ -700,9 +703,10 @@ use PixelYourSite\Facebook\Helpers;
700
  <div class="col">
701
  <?php renderDummySwitcher(); ?>
702
  <h4 class="switcher-label">Enable the view_item event on Google Ads</h4>
703
- <?php renderProBadge(); ?>
704
  </div>
705
  </div>
 
706
 
707
  </div>
708
  </div>
@@ -742,9 +746,10 @@ use PixelYourSite\Facebook\Helpers;
742
  <div class="col">
743
  <?php renderDummySwitcher(); ?>
744
  <h4 class="switcher-label">Enable the view_item_list event on Google Ads</h4>
745
- <?php renderProBadge(); ?>
746
  </div>
747
  </div>
 
748
 
749
  <?php if ( Pinterest()->enabled() ) : ?>
750
  <div class="row">
381
  <div class="col">
382
  <?php renderDummySwitcher(); ?>
383
  <h4 class="switcher-label">Enable the purchase event on Google Ads</h4>
384
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
385
  </div>
386
  </div>
387
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
388
 
389
  <div class="row mt-3">
390
  <div class="col">
474
  <div class="col">
475
  <?php renderDummySwitcher(); ?>
476
  <h4 class="switcher-label">Enable the begin_checkout event on Google Ads</h4>
477
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
478
  </div>
479
  </div>
480
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
481
 
482
  </div>
483
  </div>
517
  <div class="col">
518
  <?php renderDummySwitcher(); ?>
519
  <h4 class="switcher-label">Enable the remove_from_cart event on Google Ads</h4>
520
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
521
  </div>
522
  </div>
523
 
611
  <div class="col">
612
  <?php renderDummySwitcher(); ?>
613
  <h4 class="switcher-label">Enable the add_to_cart event on Google Ads</h4>
614
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
615
  </div>
616
  </div>
617
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
618
 
619
  </div>
620
  </div>
703
  <div class="col">
704
  <?php renderDummySwitcher(); ?>
705
  <h4 class="switcher-label">Enable the view_item event on Google Ads</h4>
706
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
707
  </div>
708
  </div>
709
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
710
 
711
  </div>
712
  </div>
746
  <div class="col">
747
  <?php renderDummySwitcher(); ?>
748
  <h4 class="switcher-label">Enable the view_item_list event on Google Ads</h4>
749
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature'); ?>
750
  </div>
751
  </div>
752
+ <?php renderDummyGoogleAdsConversionLabelInputs(); ?>
753
 
754
  <?php if ( Pinterest()->enabled() ) : ?>
755
  <div class="row">
includes/views/html-popovers.php CHANGED
@@ -561,4 +561,19 @@
561
  <div id="pys-ads_woo_item_id_prefix" style="display: none; visibility: hidden">
562
  <p>You can use this option to match the product ID that Google Ads Tag will use for the Dynamic Remarketing
563
  parameters. The ID should be identical to the one used by your Google Merchant or Custom feed.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
564
  </div>
561
  <div id="pys-ads_woo_item_id_prefix" style="display: none; visibility: hidden">
562
  <p>You can use this option to match the product ID that Google Ads Tag will use for the Dynamic Remarketing
563
  parameters. The ID should be identical to the one used by your Google Merchant or Custom feed.</p>
564
+ </div>
565
+
566
+ <div id="pys-google_ads_conversion_label" style="display: none; visibility: hidden">
567
+ <p>Transform this event into a Google Ads conversion:</p>
568
+ <p>Create a conversion inside your Google Ads account, copy its label and paste it here.</p>
569
+ <p>If you have more than one Google Tags installed, select the same one where the conversion was created.</p>
570
+ <p><a href="https://www.pixelyoursite.com/documentation/track-google-ads-conversion-on-woocommerce"
571
+ target="_blank">Click here for details</a></p>
572
+ </div>
573
+
574
+ <div id="pys-ga_cross_domain_tracking" style="display: none; visibility: hidden">
575
+ <p>Cross-domain measurement makes it possible for Analytics to see sessions on two related sites (such as an
576
+ ecommerce site and a separate shopping cart site) as a single session.</p>
577
+ <p><a href="https://www.pixelyoursite.com/pixelyoursite-free-version/google-analytics-cross-domain-tracking"
578
+ target="_blank">Click here for help</a></p>
579
  </div>
modules/google_analytics/function-helpers.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PixelYourSite\GA\Helpers;
4
+
5
+ use PixelYourSite;
6
+
7
+ if ( ! defined( 'ABSPATH' ) ) {
8
+ exit; // Exit if accessed directly.
9
+ }
10
+
11
+ /**
12
+ * Render Cross Domain Domain text field
13
+ *
14
+ * @param int $index
15
+ */
16
+ function renderCrossDomainDomain( $index = 0 ) {
17
+
18
+ $slug = PixelYourSite\GA()->getSlug();
19
+
20
+ $attr_name = "pys[$slug][cross_domain_domains][]";
21
+ $attr_id = 'pys_' . $slug . '_cross_domain_domains_' . $index;
22
+
23
+ $values = (array) PixelYourSite\GA()->getOption( 'cross_domain_domains' );
24
+ $attr_value = isset( $values[ $index ] ) ? $values[ $index ] : null;
25
+
26
+ ?>
27
+
28
+ <input type="text" name="<?php esc_attr_e( $attr_name ); ?>"
29
+ id="<?php esc_attr_e( $attr_id ); ?>"
30
+ value="<?php esc_attr_e( $attr_value ); ?>"
31
+ placeholder="Enter domain"
32
+ class="form-control">
33
+
34
+ <?php
35
+
36
+ }
modules/google_analytics/ga.php CHANGED
@@ -6,6 +6,9 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  exit; // Exit if accessed directly.
7
  }
8
 
 
 
 
9
  class GA extends Settings implements Pixel {
10
 
11
  private static $_instance;
@@ -63,21 +66,25 @@ class GA extends Settings implements Pixel {
63
  return (array) reset( $ids ); // return first id only
64
 
65
  }
66
-
67
- public function getPixelOptions() {
68
-
 
69
  return array(
70
- 'trackingIds' => $this->getPixelIDs(),
71
- 'enhanceLinkAttr' => $this->getOption( 'enhance_link_attribution' ),
72
- 'anonimizeIP' => $this->getOption( 'anonimize_ip' ),
73
- 'commentEventEnabled' => $this->getOption( 'comment_event_enabled' ),
74
- 'commentEventNonInteractive' => $this->getOption( 'comment_event_non_interactive' ),
75
- 'downloadEnabled' => $this->getOption( 'download_event_enabled' ),
76
- 'downloadEventNonInteractive' => $this->getOption( 'download_event_non_interactive' ),
77
- 'formEventEnabled' => $this->getOption( 'form_event_enabled' ),
 
 
 
78
  );
79
-
80
- }
81
 
82
  public function getEventData( $eventType, $args = null ) {
83
 
6
  exit; // Exit if accessed directly.
7
  }
8
 
9
+ /** @noinspection PhpIncludeInspection */
10
+ require_once PYS_FREE_PATH . '/modules/google_analytics/function-helpers.php';
11
+
12
  class GA extends Settings implements Pixel {
13
 
14
  private static $_instance;
66
  return (array) reset( $ids ); // return first id only
67
 
68
  }
69
+
70
+ public function getPixelOptions()
71
+ {
72
+
73
  return array(
74
+ 'trackingIds' => $this->getPixelIDs(),
75
+ 'enhanceLinkAttr' => $this->getOption('enhance_link_attribution'),
76
+ 'anonimizeIP' => $this->getOption('anonimize_ip'),
77
+ 'commentEventEnabled' => $this->getOption('comment_event_enabled'),
78
+ 'commentEventNonInteractive' => $this->getOption('comment_event_non_interactive'),
79
+ 'downloadEnabled' => $this->getOption('download_event_enabled'),
80
+ 'downloadEventNonInteractive' => $this->getOption('download_event_non_interactive'),
81
+ 'formEventEnabled' => $this->getOption('form_event_enabled'),
82
+ 'crossDomainEnabled' => $this->getOption('cross_domain_enabled'),
83
+ 'crossDomainAcceptIncoming' => $this->getOption('cross_domain_accept_incoming'),
84
+ 'crossDomainDomains' => $this->getOption('cross_domain_domains'),
85
  );
86
+
87
+ }
88
 
89
  public function getEventData( $eventType, $args = null ) {
90
 
modules/google_analytics/options_defaults.json CHANGED
@@ -4,6 +4,10 @@
4
  "enhance_link_attribution": false,
5
  "anonimize_ip": false,
6
 
 
 
 
 
7
  "search_event_enabled": true,
8
  "search_event_non_interactive": true,
9
  "comment_event_enabled": true,
4
  "enhance_link_attribution": false,
5
  "anonimize_ip": false,
6
 
7
+ "cross_domain_enabled": false,
8
+ "cross_domain_accept_incoming": false,
9
+ "cross_domain_domains": [],
10
+
11
  "search_event_enabled": true,
12
  "search_event_non_interactive": true,
13
  "comment_event_enabled": true,
modules/google_analytics/options_fields.json CHANGED
@@ -4,6 +4,10 @@
4
  "enhance_link_attribution": "checkbox",
5
  "anonimize_ip": "checkbox",
6
 
 
 
 
 
7
  "search_event_enabled": "checkbox",
8
  "search_event_non_interactive": "checkbox",
9
  "comment_event_enabled": "checkbox",
4
  "enhance_link_attribution": "checkbox",
5
  "anonimize_ip": "checkbox",
6
 
7
+ "cross_domain_enabled": "checkbox",
8
+ "cross_domain_accept_incoming": "checkbox",
9
+ "cross_domain_domains": "array",
10
+
11
  "search_event_enabled": "checkbox",
12
  "search_event_non_interactive": "checkbox",
13
  "comment_event_enabled": "checkbox",
modules/google_analytics/views/html-settings.php CHANGED
@@ -6,6 +6,8 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  exit; // Exit if accessed directly.
7
  }
8
 
 
 
9
  ?>
10
 
11
  <h2 class="section-title">Google Analytics Settings</h2>
@@ -46,6 +48,100 @@ if ( ! defined( 'ABSPATH' ) ) {
46
  </div>
47
  </div>
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  <div class="panel">
50
  <div class="row">
51
  <div class="col text-center">
@@ -61,4 +157,28 @@ if ( ! defined( 'ABSPATH' ) ) {
61
  <div class="col-4">
62
  <button class="btn btn-block btn-save">Save Settings</button>
63
  </div>
64
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  exit; // Exit if accessed directly.
7
  }
8
 
9
+ use PixelYourSite\GA\Helpers;
10
+
11
  ?>
12
 
13
  <h2 class="section-title">Google Analytics Settings</h2>
48
  </div>
49
  </div>
50
 
51
+ <!-- Google Optimize -->
52
+ <div class="card card-static">
53
+ <div class="card-header">
54
+ Google Optimize <?php renderProBadge( 'https://www.pixelyoursite.com/google-analytics?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature' ); ?>
55
+ </div>
56
+ <div class="card-body">
57
+ <div class="row mb-3">
58
+ <div class="col">
59
+ <?php renderDummySwitcher(); ?>
60
+ <h4 class="switcher-label">Enable Google Optimize</h4>
61
+ </div>
62
+ </div>
63
+ <div class="row">
64
+ <div class="col">
65
+ <?php renderDummyTextInput('Enter Optimize ID'); ?>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+
71
+ <!-- Cross-Domain Tracking -->
72
+ <!-- @link: https://developers.google.com/analytics/devguides/collection/gtagjs/cross-domain -->
73
+ <div class="card card-static">
74
+ <div class="card-header">
75
+ Cross-Domain Tracking
76
+ </div>
77
+ <div class="card-body">
78
+ <div class="row mb-3">
79
+ <div class="col-11">
80
+ <?php GA()->render_switcher_input( 'cross_domain_enabled' ); ?>
81
+ <h4 class="switcher-label">Enable Cross-Domain Tracking</h4>
82
+ </div>
83
+ <div class="col-1">
84
+ <?php renderPopoverButton( 'ga_cross_domain_tracking' ); ?>
85
+ </div>
86
+ </div>
87
+ <div class="row mb-3">
88
+ <div class="col col-offset-left">
89
+ <?php GA()->render_switcher_input( 'cross_domain_accept_incoming' ); ?>
90
+ <h4 class="switcher-label">Accept incoming</h4>
91
+ </div>
92
+ </div>
93
+
94
+ <div class="row mt-3">
95
+ <div class="col-5 col-offset-left">
96
+ <?php Helpers\renderCrossDomainDomain( 0 ); ?>
97
+ </div>
98
+ </div>
99
+
100
+ <?php foreach ( GA()->getOption('cross_domain_domains') as $index => $domain ) : ?>
101
+
102
+ <?php
103
+
104
+ if ( $index === 0 ) {
105
+ continue; // skip default ID
106
+ }
107
+
108
+ ?>
109
+
110
+ <div class="row mt-3">
111
+ <div class="col-5 col-offset-left">
112
+ <?php Helpers\renderCrossDomainDomain( $index ); ?>
113
+ </div>
114
+ <div class="col-2">
115
+ <button type="button" class="btn btn-sm remove-row">
116
+ <i class="fa fa-trash-o" aria-hidden="true"></i>
117
+ </button>
118
+ </div>
119
+ </div>
120
+
121
+ <?php endforeach; ?>
122
+
123
+ <div class="row mt-3" id="pys_ga_cross_domain_domain" style="display: none;">
124
+ <div class="col-5 col-offset-left">
125
+ <input type="text" name="" id="" value="" placeholder="Enter domain" class="form-control">
126
+ </div>
127
+ <div class="col-2">
128
+ <button type="button" class="btn btn-sm remove-row">
129
+ <i class="fa fa-trash-o" aria-hidden="true"></i>
130
+ </button>
131
+ </div>
132
+ </div>
133
+
134
+ <div class="row mt-3">
135
+ <div class="col-5 col-offset-left">
136
+ <button class="btn btn-sm btn-block btn-primary" type="button"
137
+ id="pys_ga_add_cross_domain_domain">
138
+ Add Extra Domain
139
+ </button>
140
+ </div>
141
+ </div>
142
+ </div>
143
+ </div>
144
+
145
  <div class="panel">
146
  <div class="row">
147
  <div class="col text-center">
157
  <div class="col-4">
158
  <button class="btn btn-block btn-save">Save Settings</button>
159
  </div>
160
+ </div>
161
+
162
+ <script type="text/javascript">
163
+ jQuery(document).ready(function ($) {
164
+
165
+ $('#pys_ga_add_cross_domain_domain').click(function (e) {
166
+
167
+ e.preventDefault();
168
+
169
+ var $row = $('#pys_ga_cross_domain_domain').clone()
170
+ .insertBefore('#pys_ga_cross_domain_domain')
171
+ .attr('id', '')
172
+ .css('display', 'flex');
173
+
174
+ $('input[type="text"]', $row)
175
+ .attr('name', 'pys[ga][cross_domain_domains][]');
176
+
177
+ });
178
+
179
+ $(document).on('click', '.remove-row', function () {
180
+ $(this).closest('.row').remove();
181
+ });
182
+
183
+ });
184
+ </script>
modules/head_footer/head_footer.php CHANGED
@@ -130,7 +130,7 @@ class HeadFooter extends Settings {
130
  * Single Post
131
  */
132
 
133
- if ( is_singular() ) {
134
  $post_meta = get_post_meta( $post->ID, '_pys_head_footer', true );
135
  } else {
136
  $post_meta = array();
130
  * Single Post
131
  */
132
 
133
+ if ( is_singular() && $post ) {
134
  $post_meta = get_post_meta( $post->ID, '_pys_head_footer', true );
135
  } else {
136
  $post_meta = array();
pixelyoursite.php CHANGED
@@ -4,7 +4,7 @@ if ( ! defined( 'ABSPATH' ) ) {
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
- define( 'PYS_FREE_VERSION', '7.0.3' );
8
  define( 'PYS_FREE_PINTEREST_MIN_VERSION', '2.0.3' );
9
  define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
10
  define( 'PYS_FREE_URL', untrailingslashit( plugin_dir_url( __FILE__ ) ) );
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
+ define( 'PYS_FREE_VERSION', '7.0.4' );
8
  define( 'PYS_FREE_PINTEREST_MIN_VERSION', '2.0.3' );
9
  define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
10
  define( 'PYS_FREE_URL', untrailingslashit( plugin_dir_url( __FILE__ ) ) );
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: PixelYourSite, themister
3
  Tags: Facebook Pixel, New Facebook Pixel, Facebook Conversion Pixel, Facebook Pixel Events, Facebook, New Facebook Pixel Events, Dynamic Events, Standard Events, Facebook Events, Facebook Standard Events, Facebook Dynamic Product Ads, WooCommerce, WooCommerce Facebook Pixel, Facebook Custom Events, Facebook Conversion Value, WooCommerce Affiliate Products, Easy Digital Downloads Pixel, Easy Digital Downloads Google Analytics, Head & Footer scripts, Enhanced Ecommerce, Pinterest tag
4
  Requires at least: 3.0.1
5
  Requires PHP: 5.4
6
- Tested up to: 5.1
7
- Stable tag: 7.0.3
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -31,6 +31,8 @@ ANY script: add any other script with our flexible Head & Footer option
31
  The Pinterest Tag: via [free add-on](https://www.pixelyoursite.com/pinterest-tag)
32
  Google Ads (formerly AdWords) [pro feature](https://www.pixelyoursite.com/google-ads-tag)
33
 
 
 
34
  FANTASTIC WOOCOMMERCE INTEGRATION:
35
 
36
  Facebook Pixe: every e-commerce related event is fired automatically. Conversion value is tracked for each event. All the events are Dynamic Product Ads ready (content_ids and content_type parameters always present).
@@ -83,11 +85,12 @@ When Facebook for WooCommerce is detected, the plugin will offer you the option
83
 
84
  OTHER USEFUL FEATURES:
85
 
86
- Facebook Advanced Matching
87
- Remove Facebook default events
88
- Google Analytics Enhanced Link Attribution
89
- Google Analytics Anonymize IPs
90
- Pinterest Enhanced Matching
 
91
 
92
  **EVEN MORE FEATURES WITH THE PRO VERSION:**
93
 
@@ -118,6 +121,8 @@ These parameters can be used for [Custom Audiences or Custom Conversions](https:
118
 
119
  EVEN MORE GOOGLE ANALYTICS FEATURES:
120
 
 
 
121
  On top of the free version data, [the pro version](https://www.pixelyoursite.com/google-analytics) will track a number of useful Custom Dimensions.
122
 
123
  Browser’s hour, day, and month. They are useful if you sell globally and what to know at what time your visitors take a particular action (their time, not your server’s or Google Analytics time).
@@ -149,6 +154,8 @@ The Pro version will implement the [Google Ads Tag](https://www.pixelyoursite.co
149
 
150
  Each Global event will be sent to Google Ads too, and you can configure Google Ads conversions.
151
 
 
 
152
  NOT ENOUGH? GET MORE WITH THE SUPER PACK:
153
 
154
  With the [Super Pack](https://www.pixelyoursite.com/super-pack) you get 5 extra add-ons:
@@ -364,6 +371,15 @@ There's a strange solution: it appears that if you have the Yoast plugin install
364
 
365
  == Changelog ==
366
 
 
 
 
 
 
 
 
 
 
367
 
368
  = PixelYourSite 7.0.3 =
369
 
@@ -660,6 +676,4 @@ This is a major release, with a new design and new features:
660
 
661
  = 5.0 =
662
 
663
- Version 5.0 comes with full Easy Digital Downloads integrations plus the ability to give each WooCommerce and EDD event a global value.
664
-
665
-
3
  Tags: Facebook Pixel, New Facebook Pixel, Facebook Conversion Pixel, Facebook Pixel Events, Facebook, New Facebook Pixel Events, Dynamic Events, Standard Events, Facebook Events, Facebook Standard Events, Facebook Dynamic Product Ads, WooCommerce, WooCommerce Facebook Pixel, Facebook Custom Events, Facebook Conversion Value, WooCommerce Affiliate Products, Easy Digital Downloads Pixel, Easy Digital Downloads Google Analytics, Head & Footer scripts, Enhanced Ecommerce, Pinterest tag
4
  Requires at least: 3.0.1
5
  Requires PHP: 5.4
6
+ Tested up to: 5.2
7
+ Stable tag: 7.0.4
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
31
  The Pinterest Tag: via [free add-on](https://www.pixelyoursite.com/pinterest-tag)
32
  Google Ads (formerly AdWords) [pro feature](https://www.pixelyoursite.com/google-ads-tag)
33
 
34
+ **Want to learn about your Facebook Pixel? We've put toghether [this help page](https://www.pixelyoursite.com/how-to-use-facebook-pixel)**
35
+
36
  FANTASTIC WOOCOMMERCE INTEGRATION:
37
 
38
  Facebook Pixe: every e-commerce related event is fired automatically. Conversion value is tracked for each event. All the events are Dynamic Product Ads ready (content_ids and content_type parameters always present).
85
 
86
  OTHER USEFUL FEATURES:
87
 
88
+ Facebook Manual Advanced Matching.
89
+ Remove Facebook default events.
90
+ Google Analytics cross-domain measurement.
91
+ Google Analytics Enhanced Link Attribution.
92
+ Google Analytics Anonymize IPs.
93
+ Pinterest Enhanced Matching.
94
 
95
  **EVEN MORE FEATURES WITH THE PRO VERSION:**
96
 
121
 
122
  EVEN MORE GOOGLE ANALYTICS FEATURES:
123
 
124
+ Support for Google Optimize (free A/B testing service by Google).
125
+
126
  On top of the free version data, [the pro version](https://www.pixelyoursite.com/google-analytics) will track a number of useful Custom Dimensions.
127
 
128
  Browser’s hour, day, and month. They are useful if you sell globally and what to know at what time your visitors take a particular action (their time, not your server’s or Google Analytics time).
154
 
155
  Each Global event will be sent to Google Ads too, and you can configure Google Ads conversions.
156
 
157
+ Add conversion label to any WooCommerce or EDD event.
158
+
159
  NOT ENOUGH? GET MORE WITH THE SUPER PACK:
160
 
161
  With the [Super Pack](https://www.pixelyoursite.com/super-pack) you get 5 extra add-ons:
371
 
372
  == Changelog ==
373
 
374
+ = PixelYourSite 7.0.4 =
375
+
376
+ * New Feature: Google Analytics cross-domain measurement. Tell Analytics to see sessions on two related sites (such as an ecommerce site and a separate shopping cart site) as a single session.
377
+
378
+ * UI changes to reflect some new features our PRO version has (Google Optimize, add conversion label to WooCommerce and EDD Google Ads events).
379
+
380
+ * Pinterest add-on missing license notice.
381
+
382
+ * Remove the pixels when you edit something with Elementor.
383
 
384
  = PixelYourSite 7.0.3 =
385
 
676
 
677
  = 5.0 =
678
 
679
+ Version 5.0 comes with full Easy Digital Downloads integrations plus the ability to give each WooCommerce and EDD event a global value.