Version Description
Download this release
Release Info
Developer | PixelYourSite |
Plugin | PixelYourSite – Facebook Pixel (Events, WooCommerce & Easy Digital Downloads) |
Version | 8.2.0 |
Comparing to | |
See all releases |
Code changes from version 8.1.1 to 8.2.0
- dist/scripts/public.js +138 -28
- dist/styles/admin.css +29 -0
- facebook-pixel-master.php +2 -2
- includes/class-events-manager.php +5 -6
- includes/class-pys.php +1 -0
- includes/functions-admin.php +6 -5
- includes/functions-gdpr.php +30 -0
- includes/functions-migrate.php +0 -2
- includes/options_defaults.json +1 -1
- includes/options_fields.json +1 -1
- includes/views/html-gdpr.php +84 -128
- includes/views/html-main-general.php +23 -0
- includes/views/html-wrapper-main.php +3 -0
- pixelyoursite.php +1 -1
- readme.txt +83 -28
dist/scripts/public.js
CHANGED
@@ -517,7 +517,7 @@ if (!Array.prototype.includes) {
|
|
517 |
|
518 |
loadPixels: function () {
|
519 |
|
520 |
-
if (options.gdpr.ajax_enabled) {
|
521 |
|
522 |
// retrieves actual PYS GDPR filters values which allow to avoid cache issues
|
523 |
$.get({
|
@@ -552,6 +552,27 @@ if (!Array.prototype.includes) {
|
|
552 |
|
553 |
consentGiven: function (pixel) {
|
554 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
555 |
/**
|
556 |
* Real Cookie Banner
|
557 |
*/
|
@@ -592,27 +613,6 @@ if (!Array.prototype.includes) {
|
|
592 |
|
593 |
}
|
594 |
|
595 |
-
/**
|
596 |
-
* Ginger – EU Cookie Law
|
597 |
-
*/
|
598 |
-
if (options.gdpr.ginger_integration_enabled) {
|
599 |
-
|
600 |
-
var ginger_cookie = Cookies.get('ginger-cookie');
|
601 |
-
|
602 |
-
if (options.gdpr[pixel + '_prior_consent_enabled']) {
|
603 |
-
if (typeof ginger_cookie === 'undefined' || ginger_cookie === 'Y') {
|
604 |
-
return true;
|
605 |
-
}
|
606 |
-
} else {
|
607 |
-
if (ginger_cookie === 'Y') {
|
608 |
-
return true;
|
609 |
-
}
|
610 |
-
}
|
611 |
-
|
612 |
-
return false;
|
613 |
-
|
614 |
-
}
|
615 |
-
|
616 |
/**
|
617 |
* Cookie Notice
|
618 |
*/
|
@@ -660,7 +660,94 @@ if (!Array.prototype.includes) {
|
|
660 |
},
|
661 |
|
662 |
setupGdprCallbacks: function () {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
663 |
|
|
|
664 |
/**
|
665 |
* Real Cookie Banner
|
666 |
*/
|
@@ -830,19 +917,22 @@ if (!Array.prototype.includes) {
|
|
830 |
|
831 |
function fireEvent(name, allData) {
|
832 |
|
|
|
|
|
|
|
|
|
833 |
var actionType = defaultEventTypes.includes(name) ? 'track' : 'trackCustom';
|
834 |
var data = allData.params;
|
835 |
var params = {};
|
836 |
var arg = {};
|
837 |
Utils.copyProperties(data, params);
|
838 |
|
839 |
-
|
840 |
if(options.facebook.serverApiEnabled) {
|
841 |
// fire server side event gdpr plugin installed
|
842 |
var isApiDisabled = options.gdpr.all_disabled_by_api ||
|
843 |
options.gdpr.facebook_disabled_by_api ||
|
844 |
options.gdpr.cookiebot_integration_enabled ||
|
845 |
-
options.gdpr.
|
846 |
options.gdpr.cookie_notice_integration_enabled ||
|
847 |
options.gdpr.cookie_law_info_integration_enabled;
|
848 |
|
@@ -956,11 +1046,27 @@ if (!Array.prototype.includes) {
|
|
956 |
if (options.facebook.removeMetadata) {
|
957 |
fbq('set', 'autoConfig', false, pixelId);
|
958 |
}
|
959 |
-
|
960 |
-
|
961 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
962 |
} else {
|
963 |
-
|
|
|
|
|
|
|
|
|
964 |
}
|
965 |
});
|
966 |
|
@@ -1181,6 +1287,10 @@ if (!Array.prototype.includes) {
|
|
1181 |
*/
|
1182 |
function fireEvent(name, data) {
|
1183 |
|
|
|
|
|
|
|
|
|
1184 |
var eventParams = Utils.copyProperties(data, {});
|
1185 |
|
1186 |
var _fireEvent = function (tracking_id) {
|
517 |
|
518 |
loadPixels: function () {
|
519 |
|
520 |
+
if (options.gdpr.ajax_enabled && !options.gdpr.consent_magic_integration_enabled) {
|
521 |
|
522 |
// retrieves actual PYS GDPR filters values which allow to avoid cache issues
|
523 |
$.get({
|
552 |
|
553 |
consentGiven: function (pixel) {
|
554 |
|
555 |
+
/**
|
556 |
+
* ConsentMagic
|
557 |
+
*/
|
558 |
+
if (options.gdpr.consent_magic_integration_enabled) {
|
559 |
+
|
560 |
+
var cs_cookie = Cookies.get('cs_viewed_cookie_policy'+test_prefix);
|
561 |
+
|
562 |
+
if (options.gdpr[pixel + '_prior_consent_enabled']) {
|
563 |
+
if (typeof cs_cookie === 'undefined' || cs_cookie === 'yes') {
|
564 |
+
return true;
|
565 |
+
}
|
566 |
+
} else {
|
567 |
+
if (cs_cookie === 'yes') {
|
568 |
+
return true;
|
569 |
+
}
|
570 |
+
}
|
571 |
+
|
572 |
+
return false;
|
573 |
+
|
574 |
+
}
|
575 |
+
|
576 |
/**
|
577 |
* Real Cookie Banner
|
578 |
*/
|
613 |
|
614 |
}
|
615 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
616 |
/**
|
617 |
* Cookie Notice
|
618 |
*/
|
660 |
},
|
661 |
|
662 |
setupGdprCallbacks: function () {
|
663 |
+
/**
|
664 |
+
* ConsentMagic
|
665 |
+
*/
|
666 |
+
if (options.gdpr.consent_magic_integration_enabled) {
|
667 |
+
var test_prefix = CS_Data.test_prefix;
|
668 |
+
var cs_refresh_after_consent = false;
|
669 |
+
if (CS_Data.cs_refresh_after_consent == 1) {
|
670 |
+
cs_refresh_after_consent = CS_Data.cs_refresh_after_consent;
|
671 |
+
}
|
672 |
+
if (!cs_refresh_after_consent) {
|
673 |
+
jQuery('.custom-switch-input').each(function() {
|
674 |
+
categoryCookie_name = jQuery(this).attr('id');
|
675 |
+
var cs_cookie_val = Cookies.get(categoryCookie_name);
|
676 |
+
categoryCookie = categoryCookie_name.replace('cs_enabled_cookie_term'+test_prefix+'_','');
|
677 |
+
if(cs_cookie_val == 'yes') {
|
678 |
+
if (categoryCookie === CS_Data.cs_script_cat.facebook) {
|
679 |
+
Facebook.loadPixel();
|
680 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.bing) {
|
681 |
+
Bing.loadPixel();
|
682 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.analytics) {
|
683 |
+
Analytics.loadPixel();
|
684 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.gads) {
|
685 |
+
GAds.loadPixel();
|
686 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.pinterest) {
|
687 |
+
Pinterest.loadPixel();
|
688 |
+
}
|
689 |
+
} else {
|
690 |
+
if (categoryCookie === CS_Data.cs_script_cat.facebook) {
|
691 |
+
Facebook.disable();
|
692 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.bing) {
|
693 |
+
Bing.disable();
|
694 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.analytics) {
|
695 |
+
Analytics.disable();
|
696 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.gads) {
|
697 |
+
GAds.disable();
|
698 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.pinterest) {
|
699 |
+
Pinterest.disable();
|
700 |
+
}
|
701 |
+
}
|
702 |
+
if (jQuery('#cs_enabled_advanced_matching'+test_prefix).length > 0 && jQuery('#cs_enabled_advanced_matching'+test_prefix).is(':checked')) {
|
703 |
+
Facebook.loadPixel();
|
704 |
+
}
|
705 |
+
});
|
706 |
+
|
707 |
+
if (CS_Data.cs_track_analytics === '1') {
|
708 |
+
$(document).on('each', '.custom-switch-input', function () {
|
709 |
+
categoryCookie_name = jQuery(this).attr('id');
|
710 |
+
var cs_cookie_val = Cookies.get(categoryCookie_name);
|
711 |
+
categoryCookie = categoryCookie_name.replace('cs_enabled_cookie_term'+test_prefix+'_','');
|
712 |
+
if(cs_cookie_val == 'yes') {
|
713 |
+
if (categoryCookie === CS_Data.cs_script_cat.facebook) {
|
714 |
+
Facebook.loadPixel();
|
715 |
+
console.log('load cs_track_analytics');
|
716 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.bing) {
|
717 |
+
Bing.loadPixel();
|
718 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.analytics) {
|
719 |
+
Analytics.loadPixel();
|
720 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.gads) {
|
721 |
+
GAds.loadPixel();
|
722 |
+
} else if (categoryCookie === CS_Data.cs_script_cat.pinterest) {
|
723 |
+
Pinterest.loadPixel();
|
724 |
+
}
|
725 |
+
}
|
726 |
+
});
|
727 |
+
}
|
728 |
+
|
729 |
+
$(document).on('click','.cs_action_btn',function(e) {
|
730 |
+
e.preventDefault();
|
731 |
+
var elm = $(this),
|
732 |
+
button_action = elm.attr('data-cs_action');
|
733 |
+
|
734 |
+
if(button_action === 'allow_all') {
|
735 |
+
Facebook.loadPixel();
|
736 |
+
Bing.loadPixel();
|
737 |
+
Analytics.loadPixel();
|
738 |
+
GAds.loadPixel();
|
739 |
+
Pinterest.loadPixel();
|
740 |
+
} else if(button_action === 'disable_all') {
|
741 |
+
Facebook.disable();
|
742 |
+
Bing.disable();
|
743 |
+
Analytics.disable();
|
744 |
+
GAds.disable();
|
745 |
+
Pinterest.disable();
|
746 |
+
}
|
747 |
+
});
|
748 |
+
}
|
749 |
|
750 |
+
}
|
751 |
/**
|
752 |
* Real Cookie Banner
|
753 |
*/
|
917 |
|
918 |
function fireEvent(name, allData) {
|
919 |
|
920 |
+
if(typeof window.pys_event_data_filter === "function" && window.pys_disable_event_filter(name,'facebook')) {
|
921 |
+
return;
|
922 |
+
}
|
923 |
+
|
924 |
var actionType = defaultEventTypes.includes(name) ? 'track' : 'trackCustom';
|
925 |
var data = allData.params;
|
926 |
var params = {};
|
927 |
var arg = {};
|
928 |
Utils.copyProperties(data, params);
|
929 |
|
|
|
930 |
if(options.facebook.serverApiEnabled) {
|
931 |
// fire server side event gdpr plugin installed
|
932 |
var isApiDisabled = options.gdpr.all_disabled_by_api ||
|
933 |
options.gdpr.facebook_disabled_by_api ||
|
934 |
options.gdpr.cookiebot_integration_enabled ||
|
935 |
+
options.gdpr.consent_magic_integration_enabled ||
|
936 |
options.gdpr.cookie_notice_integration_enabled ||
|
937 |
options.gdpr.cookie_law_info_integration_enabled;
|
938 |
|
1046 |
if (options.facebook.removeMetadata) {
|
1047 |
fbq('set', 'autoConfig', false, pixelId);
|
1048 |
}
|
1049 |
+
if (options.gdpr.consent_magic_integration_enabled) {
|
1050 |
+
if(options.facebook.advancedMatching.length === 0) {
|
1051 |
+
fbq('init', pixelId);
|
1052 |
+
} else {
|
1053 |
+
var cs_advanced_matching = Cookies.get('cs_enabled_advanced_matching'+test_prefix);
|
1054 |
+
if (jQuery('#cs_enabled_advanced_matching'+test_prefix).length > 0) {
|
1055 |
+
if (cs_advanced_matching == 'yes') {
|
1056 |
+
fbq('init', pixelId, options.facebook.advancedMatching);
|
1057 |
+
} else {
|
1058 |
+
fbq('init', pixelId);
|
1059 |
+
}
|
1060 |
+
} else {
|
1061 |
+
fbq('init', pixelId, options.facebook.advancedMatching);
|
1062 |
+
}
|
1063 |
+
}
|
1064 |
} else {
|
1065 |
+
if (options.facebook.advancedMatching.length === 0) {
|
1066 |
+
fbq('init', pixelId);
|
1067 |
+
} else {
|
1068 |
+
fbq('init', pixelId, options.facebook.advancedMatching);
|
1069 |
+
}
|
1070 |
}
|
1071 |
});
|
1072 |
|
1287 |
*/
|
1288 |
function fireEvent(name, data) {
|
1289 |
|
1290 |
+
if(typeof window.pys_event_data_filter === "function" && window.pys_disable_event_filter(name,'ga')) {
|
1291 |
+
return;
|
1292 |
+
}
|
1293 |
+
|
1294 |
var eventParams = Utils.copyProperties(data, {});
|
1295 |
|
1296 |
var _fireEvent = function (tracking_id) {
|
dist/styles/admin.css
CHANGED
@@ -23,4 +23,33 @@
|
|
23 |
#pys #gan_settings_switch:checked + .settings_content,
|
24 |
#pys #fb_settings_switch:checked + .settings_content {
|
25 |
display: block;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
23 |
#pys #gan_settings_switch:checked + .settings_content,
|
24 |
#pys #fb_settings_switch:checked + .settings_content {
|
25 |
display: block;
|
26 |
+
}
|
27 |
+
|
28 |
+
#pys .pys_btn_orange {
|
29 |
+
color: #fff;
|
30 |
+
background-color: #ef7908;
|
31 |
+
border-color: #ef7908;
|
32 |
+
margin: 15px auto;
|
33 |
+
padding: 1rem 1.5rem;
|
34 |
+
font-size: 1rem;
|
35 |
+
}
|
36 |
+
#pys .pys_btn_orange:hover{
|
37 |
+
color: #fff;
|
38 |
+
background-color: #ca6607;
|
39 |
+
border-color: #be6006;
|
40 |
+
}
|
41 |
+
|
42 |
+
#pys .orange {
|
43 |
+
color: #ef7908;
|
44 |
+
}
|
45 |
+
|
46 |
+
#pys a.orange:hover {
|
47 |
+
color: #ca6607;
|
48 |
+
}
|
49 |
+
#pys ul.pys_list {
|
50 |
+
list-style: disc;
|
51 |
+
padding-left: 20px;
|
52 |
+
}
|
53 |
+
#pys ul.pys_list li {
|
54 |
+
margin-bottom: 1.1em;
|
55 |
}
|
facebook-pixel-master.php
CHANGED
@@ -3,8 +3,8 @@
|
|
3 |
/**
|
4 |
* Plugin Name: PixelYourSite
|
5 |
* Plugin URI: http://www.pixelyoursite.com/
|
6 |
-
* Description: No coding <strong>Facebook Pixel, Facebook Converion API,</strong> and <strong>Google Analytics</strong> install. Track key actions with our Signal event, 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: 8.
|
8 |
* Author: PixelYourSite
|
9 |
* Author URI: http://www.pixelyoursite.com
|
10 |
* License: GPLv3
|
3 |
/**
|
4 |
* Plugin Name: PixelYourSite
|
5 |
* Plugin URI: http://www.pixelyoursite.com/
|
6 |
+
* Description: No coding <strong>Facebook Pixel, Facebook Converion API,</strong> and <strong>Google Analytics</strong> install. Track key actions with our Signal event, 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. Full support for ConsentMagic.com.
|
7 |
+
* Version: 8.2.0
|
8 |
* Author: PixelYourSite
|
9 |
* Author URI: http://www.pixelyoursite.com
|
10 |
* License: GPLv3
|
includes/class-events-manager.php
CHANGED
@@ -86,11 +86,9 @@ class EventsManager {
|
|
86 |
'cookiebot_google_ads_consent_category' => PYS()->getOption( 'gdpr_cookiebot_google_ads_consent_category' ),
|
87 |
'cookiebot_pinterest_consent_category' => PYS()->getOption( 'gdpr_cookiebot_pinterest_consent_category' ),
|
88 |
'cookiebot_bing_consent_category' => PYS()->getOption( 'gdpr_cookiebot_bing_consent_category' ),
|
89 |
-
|
90 |
-
'real_cookie_banner_integration_enabled' => PYS()->getOption( 'gdpr_real_cookie_banner_integration_enabled' ),
|
91 |
-
|
92 |
-
'ginger_integration_enabled' => isGingerPluginActivated() && PYS()->getOption( 'gdpr_ginger_integration_enabled' ),
|
93 |
-
'cookie_notice_integration_enabled' => isCookieNoticePluginActivated() && PYS()->getOption( 'gdpr_cookie_notice_integration_enabled' ),
|
94 |
'cookie_law_info_integration_enabled' => isCookieLawInfoPluginActivated() && PYS()->getOption( 'gdpr_cookie_law_info_integration_enabled' ),
|
95 |
);
|
96 |
|
@@ -334,7 +332,8 @@ class EventsManager {
|
|
334 |
return apply_filters( 'pys_disable_by_gdpr', false ) ||
|
335 |
apply_filters( 'pys_disable_facebook_by_gdpr', false ) ||
|
336 |
isCookiebotPluginActivated() && PYS()->getOption( 'gdpr_cookiebot_integration_enabled' ) ||
|
337 |
-
|
|
|
338 |
isCookieNoticePluginActivated() && PYS()->getOption( 'gdpr_cookie_notice_integration_enabled' ) ||
|
339 |
isCookieLawInfoPluginActivated() && PYS()->getOption( 'gdpr_cookie_law_info_integration_enabled' );
|
340 |
}
|
86 |
'cookiebot_google_ads_consent_category' => PYS()->getOption( 'gdpr_cookiebot_google_ads_consent_category' ),
|
87 |
'cookiebot_pinterest_consent_category' => PYS()->getOption( 'gdpr_cookiebot_pinterest_consent_category' ),
|
88 |
'cookiebot_bing_consent_category' => PYS()->getOption( 'gdpr_cookiebot_bing_consent_category' ),
|
89 |
+
'consent_magic_integration_enabled' => isConsentMagicPluginActivated() && PYS()->getOption( 'consent_magic_integration_enabled' ),
|
90 |
+
'real_cookie_banner_integration_enabled' => isRealCookieBannerPluginActivated() && PYS()->getOption( 'gdpr_real_cookie_banner_integration_enabled' ),
|
91 |
+
'cookie_notice_integration_enabled' => isCookieNoticePluginActivated() && PYS()->getOption( 'gdpr_cookie_notice_integration_enabled' ),
|
|
|
|
|
92 |
'cookie_law_info_integration_enabled' => isCookieLawInfoPluginActivated() && PYS()->getOption( 'gdpr_cookie_law_info_integration_enabled' ),
|
93 |
);
|
94 |
|
332 |
return apply_filters( 'pys_disable_by_gdpr', false ) ||
|
333 |
apply_filters( 'pys_disable_facebook_by_gdpr', false ) ||
|
334 |
isCookiebotPluginActivated() && PYS()->getOption( 'gdpr_cookiebot_integration_enabled' ) ||
|
335 |
+
isConsentMagicPluginActivated() && PYS()->getOption( 'consent_magic_integration_enabled' ) ||
|
336 |
+
isRealCookieBannerPluginActivated() && PYS()->getOption( 'gdpr_real_cookie_banner_integration_enabled' ) ||
|
337 |
isCookieNoticePluginActivated() && PYS()->getOption( 'gdpr_cookie_notice_integration_enabled' ) ||
|
338 |
isCookieLawInfoPluginActivated() && PYS()->getOption( 'gdpr_cookie_law_info_integration_enabled' );
|
339 |
}
|
includes/class-pys.php
CHANGED
@@ -577,6 +577,7 @@ final class PYS extends Settings implements Plugin {
|
|
577 |
$this->updateOptions( array(
|
578 |
'gdpr_ajax_enabled' => true,
|
579 |
'gdpr_cookie_law_info_integration_enabled' => true,
|
|
|
580 |
) );
|
581 |
|
582 |
add_action( 'admin_notices', 'PixelYourSite\adminGdprAjaxEnabledNotice' );
|
577 |
$this->updateOptions( array(
|
578 |
'gdpr_ajax_enabled' => true,
|
579 |
'gdpr_cookie_law_info_integration_enabled' => true,
|
580 |
+
'consent_magic_integration_enabled' => true,
|
581 |
) );
|
582 |
|
583 |
add_action( 'admin_notices', 'PixelYourSite\adminGdprAjaxEnabledNotice' );
|
includes/functions-admin.php
CHANGED
@@ -76,6 +76,12 @@ function getAdminPrimaryNavTabs() {
|
|
76 |
);
|
77 |
|
78 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
|
80 |
return $tabs;
|
81 |
|
@@ -106,11 +112,6 @@ function getAdminSecondaryNavTabs() {
|
|
106 |
'name' => 'Head & Footer',
|
107 |
);
|
108 |
|
109 |
-
$tabs['gdpr'] = array(
|
110 |
-
'url' => buildAdminUrl( 'pixelyoursite', 'gdpr' ),
|
111 |
-
'name' => 'GDPR',
|
112 |
-
);
|
113 |
-
|
114 |
return $tabs;
|
115 |
|
116 |
}
|
76 |
);
|
77 |
|
78 |
}
|
79 |
+
|
80 |
+
$tabs['gdpr'] = array(
|
81 |
+
'url' => buildAdminUrl( 'pixelyoursite', 'gdpr' ),
|
82 |
+
'name' => 'Consent',
|
83 |
+
'class' => 'orange'
|
84 |
+
);
|
85 |
|
86 |
return $tabs;
|
87 |
|
112 |
'name' => 'Head & Footer',
|
113 |
);
|
114 |
|
|
|
|
|
|
|
|
|
|
|
115 |
return $tabs;
|
116 |
|
117 |
}
|
includes/functions-gdpr.php
CHANGED
@@ -6,6 +6,36 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
6 |
exit; // Exit if accessed directly.
|
7 |
}
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
/**
|
10 |
* @link https://wordpress.org/plugins/ginger/
|
11 |
*/
|
6 |
exit; // Exit if accessed directly.
|
7 |
}
|
8 |
|
9 |
+
/**
|
10 |
+
* ConsentMagic
|
11 |
+
*/
|
12 |
+
function isConsentMagicPluginActivated() {
|
13 |
+
|
14 |
+
if ( ! function_exists( 'is_plugin_active' ) ) {
|
15 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
16 |
+
}
|
17 |
+
|
18 |
+
return is_plugin_active( 'consent-magic-pro/consent-magic-pro.php' );
|
19 |
+
|
20 |
+
}
|
21 |
+
function isConsentMagicPluginInstalled() {
|
22 |
+
|
23 |
+
if ( ! function_exists( 'is_plugin_active' ) ) {
|
24 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
25 |
+
}
|
26 |
+
$installed_plugins = get_plugins();
|
27 |
+
$plugin_slug = "consent-magic-pro/consent-magic-pro.php";
|
28 |
+
return array_key_exists( $plugin_slug, $installed_plugins ) || in_array( $plugin_slug, $installed_plugins, true );
|
29 |
+
|
30 |
+
}
|
31 |
+
|
32 |
+
function isConsentMagicPluginLicenceActivated() {
|
33 |
+
$id = get_option('cs_product_id');
|
34 |
+
if($id && get_option('wc_am_client_'.$id.'_activated') == 'Activated') {
|
35 |
+
return true;
|
36 |
+
}
|
37 |
+
return false;
|
38 |
+
}
|
39 |
/**
|
40 |
* @link https://wordpress.org/plugins/ginger/
|
41 |
*/
|
includes/functions-migrate.php
CHANGED
@@ -65,8 +65,6 @@ function migrate_v5_free_options() {
|
|
65 |
$v7_core = array(
|
66 |
'gdpr_facebook_prior_consent_enabled' => isset( $v5_free['gdpr']['enable_before_consent'] ) ? $v5_free['gdpr']['enable_before_consent'] : null,
|
67 |
'gdpr_cookiebot_integration_enabled' => isset( $v5_free['gdpr']['cookiebot_enabled'] ) ? $v5_free['gdpr']['cookiebot_enabled'] : null,
|
68 |
-
'gdpr_ginger_integration_enabled' => isset( $v5_free['gdpr']['ginger_enabled'] ) ? $v5_free['gdpr']['ginger_enabled'] : null,
|
69 |
-
|
70 |
'general_event_name' => isset( $v5_free['general']['general_event_name'] ) ? $v5_free['general']['general_event_name'] : null,
|
71 |
'general_event_delay' => isset( $v5_free['general']['general_event_delay'] ) ? $v5_free['general']['general_event_delay'] : null,
|
72 |
'general_event_on_posts_enabled' => isset( $v5_free['general']['general_event_on_posts_enabled'] ) ? $v5_free['general']['general_event_on_posts_enabled'] : null,
|
65 |
$v7_core = array(
|
66 |
'gdpr_facebook_prior_consent_enabled' => isset( $v5_free['gdpr']['enable_before_consent'] ) ? $v5_free['gdpr']['enable_before_consent'] : null,
|
67 |
'gdpr_cookiebot_integration_enabled' => isset( $v5_free['gdpr']['cookiebot_enabled'] ) ? $v5_free['gdpr']['cookiebot_enabled'] : null,
|
|
|
|
|
68 |
'general_event_name' => isset( $v5_free['general']['general_event_name'] ) ? $v5_free['general']['general_event_name'] : null,
|
69 |
'general_event_delay' => isset( $v5_free['general']['general_event_delay'] ) ? $v5_free['general']['general_event_delay'] : null,
|
70 |
'general_event_on_posts_enabled' => isset( $v5_free['general']['general_event_on_posts_enabled'] ) ? $v5_free['general']['general_event_on_posts_enabled'] : null,
|
includes/options_defaults.json
CHANGED
@@ -67,11 +67,11 @@
|
|
67 |
"gdpr_cookiebot_analytics_consent_category": "statistics",
|
68 |
"gdpr_cookiebot_pinterest_consent_category": "marketing",
|
69 |
"gdpr_cookiebot_bing_consent_category": "marketing",
|
70 |
-
"gdpr_ginger_integration_enabled": false,
|
71 |
"gdpr_cookie_notice_integration_enabled": false,
|
72 |
"gdpr_cookie_law_info_integration_enabled": false,
|
73 |
"gdpr_ajax_enabled": false,
|
74 |
"gdpr_real_cookie_banner_integration_enabled": false,
|
|
|
75 |
|
76 |
"woo_purchase_value_cog": "",
|
77 |
"woo_content_value_cog": "",
|
67 |
"gdpr_cookiebot_analytics_consent_category": "statistics",
|
68 |
"gdpr_cookiebot_pinterest_consent_category": "marketing",
|
69 |
"gdpr_cookiebot_bing_consent_category": "marketing",
|
|
|
70 |
"gdpr_cookie_notice_integration_enabled": false,
|
71 |
"gdpr_cookie_law_info_integration_enabled": false,
|
72 |
"gdpr_ajax_enabled": false,
|
73 |
"gdpr_real_cookie_banner_integration_enabled": false,
|
74 |
+
"consent_magic_integration_enabled": true,
|
75 |
|
76 |
"woo_purchase_value_cog": "",
|
77 |
"woo_content_value_cog": "",
|
includes/options_fields.json
CHANGED
@@ -56,11 +56,11 @@
|
|
56 |
"gdpr_cookiebot_analytics_consent_category": "text",
|
57 |
"gdpr_cookiebot_pinterest_consent_category": "text",
|
58 |
"gdpr_cookiebot_bing_consent_category": "text",
|
59 |
-
"gdpr_ginger_integration_enabled": "checkbox",
|
60 |
"gdpr_cookie_notice_integration_enabled": "checkbox",
|
61 |
"gdpr_cookie_law_info_integration_enabled": "checkbox",
|
62 |
"gdpr_ajax_enabled": "checkbox",
|
63 |
"gdpr_real_cookie_banner_integration_enabled": "checkbox",
|
|
|
64 |
|
65 |
"woo_purchase_value_cog": "radio",
|
66 |
"woo_content_value_cog": "radio",
|
56 |
"gdpr_cookiebot_analytics_consent_category": "text",
|
57 |
"gdpr_cookiebot_pinterest_consent_category": "text",
|
58 |
"gdpr_cookiebot_bing_consent_category": "text",
|
|
|
59 |
"gdpr_cookie_notice_integration_enabled": "checkbox",
|
60 |
"gdpr_cookie_law_info_integration_enabled": "checkbox",
|
61 |
"gdpr_ajax_enabled": "checkbox",
|
62 |
"gdpr_real_cookie_banner_integration_enabled": "checkbox",
|
63 |
+
"consent_magic_integration_enabled": "checkbox",
|
64 |
|
65 |
"woo_purchase_value_cog": "radio",
|
66 |
"woo_content_value_cog": "radio",
|
includes/views/html-gdpr.php
CHANGED
@@ -7,111 +7,95 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
7 |
}
|
8 |
|
9 |
?>
|
10 |
-
|
11 |
-
<h2 class="section-title">GDPR Settings</h2>
|
12 |
-
|
13 |
<div class="card card-static">
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
<h3>Google Analytics</h3>
|
41 |
-
<p>By default, Google Analytics doesn't track private data. This implementation will probably not
|
42 |
-
require prior consent. If you turn on Google Analytics Advertising features, Remarketing features,
|
43 |
-
or if you link your Analytics account to your AdSense account, you will start to send personal data.
|
44 |
-
In this case, prior consent is required.</p>
|
45 |
-
<p class="mb-4">Inform your users that they can control their privacy settings from here:
|
46 |
-
<a target="_blank" href="https://adssettings.google.com/authenticated">https://adssettings.google.com/authenticated</a></p>
|
47 |
-
|
48 |
-
<h3>Google Ads</h3>
|
49 |
-
<p>It is used for Google Ads. It does use private data and you will need to ask for prior consent.</p>
|
50 |
-
<p class="mb-4">Inform your users that they can control their privacy settings from here:
|
51 |
-
<a target="_blank" href="https://adssettings.google.com/authenticated">https://adssettings.google.com/authenticated</a>
|
52 |
-
</p>
|
53 |
-
|
54 |
-
<h3>Pinterest Tag</h3>
|
55 |
-
<p>It is used for Pinterest ads and does use private data that can identify your users. You will need to
|
56 |
-
ask for prior consent.</p>
|
57 |
-
<p class="mb-0">Inform your users that they can control privacy settings from here:
|
58 |
-
<a target="_blank" href="https://www.pinterest.com/settings/">https://www.pinterest.com/settings/</a></p>
|
59 |
-
</div>
|
60 |
-
</div>
|
61 |
-
</div>
|
62 |
-
</div>
|
63 |
-
|
64 |
-
<!-- Prior Consent -->
|
65 |
-
<div class="card card-static">
|
66 |
-
<div class="card-header">
|
67 |
-
Cookie Consent Integrations
|
68 |
-
</div>
|
69 |
-
<div class="card-body">
|
70 |
-
<div class="row">
|
71 |
-
<div class="col">
|
72 |
-
<?php PYS()->render_switcher_input( 'gdpr_facebook_prior_consent_enabled' ); ?>
|
73 |
-
<h4 class="switcher-label">Enable the Facebook Pixel tracking before consent is capture (this might not
|
74 |
-
be GDPR compliant)</h4>
|
75 |
-
</div>
|
76 |
-
</div>
|
77 |
-
<div class="row mt-3">
|
78 |
-
<div class="col">
|
79 |
-
<?php PYS()->render_switcher_input( 'gdpr_analytics_prior_consent_enabled' ); ?>
|
80 |
-
<h4 class="switcher-label">Enable Google Analytics tracking before consent is capture (if your Google
|
81 |
-
Analytics has advertising or remarketing features enabled, this might not be GDPR compliant)</h4>
|
82 |
-
</div>
|
83 |
-
</div>
|
84 |
-
<div class="row mt-3">
|
85 |
<div class="col">
|
86 |
-
|
87 |
-
<
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
</div>
|
|
|
90 |
</div>
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
|
|
96 |
</div>
|
97 |
-
|
98 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
<div class="col">
|
100 |
-
|
101 |
-
<
|
102 |
-
|
|
|
103 |
</div>
|
104 |
</div>
|
105 |
-
|
106 |
</div>
|
107 |
|
|
|
|
|
108 |
<!-- Cookiebot -->
|
109 |
-
<div class="card
|
110 |
<div class="card-header">
|
111 |
<?php if ( ! isCookiebotPluginActivated() ) : ?>
|
112 |
-
Cookiebot <span class="text-danger">[not detected]</span
|
113 |
<?php else: ?>
|
114 |
-
Cookiebot <span class="text-success">[detected]</span
|
115 |
<?php endif; ?>
|
116 |
</div>
|
117 |
<div class="card-body">
|
@@ -181,41 +165,13 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
181 |
</div>
|
182 |
</div>
|
183 |
|
184 |
-
<!-- Ginger – EU Cookie Law -->
|
185 |
-
<div class="card card-static">
|
186 |
-
<div class="card-header">
|
187 |
-
<?php if ( ! isGingerPluginActivated() ) : ?>
|
188 |
-
Ginger – EU Cookie Law <span class="text-danger">[not detected]</span>
|
189 |
-
<?php else: ?>
|
190 |
-
Ginger – EU Cookie Law <span class="text-success">[detected]</span>
|
191 |
-
<?php endif; ?>
|
192 |
-
</div>
|
193 |
-
<div class="card-body">
|
194 |
-
<div class="row">
|
195 |
-
<div class="col">
|
196 |
-
<p>This free plugin offers an interesting cookie consent integration with the possibility to turn OFF
|
197 |
-
cookies before consent is given.</p>
|
198 |
-
<p class="mb-0">Plugin: <a href="https://wordpress.org/plugins/ginger/" target="_blank">https://wordpress.org/plugins/ginger/</a>
|
199 |
-
</p>
|
200 |
-
</div>
|
201 |
-
</div>
|
202 |
-
<div class="row mt-3">
|
203 |
-
<div class="col">
|
204 |
-
<?php PYS()->render_switcher_input( 'gdpr_ginger_integration_enabled', false,
|
205 |
-
! isGingerPluginActivated() ); ?>
|
206 |
-
<h4 class="switcher-label">Enable Ginger – EU Cookie Law integration</h4>
|
207 |
-
</div>
|
208 |
-
</div>
|
209 |
-
</div>
|
210 |
-
</div>
|
211 |
-
|
212 |
<!-- Cookie Notice -->
|
213 |
-
<div class="card
|
214 |
<div class="card-header">
|
215 |
<?php if ( ! isCookieNoticePluginActivated() ) : ?>
|
216 |
-
Cookie Notice <span class="text-danger">[not detected]</span
|
217 |
<?php else: ?>
|
218 |
-
Cookie Notice <span class="text-success">[detected]</span
|
219 |
<?php endif; ?>
|
220 |
</div>
|
221 |
<div class="card-body">
|
@@ -237,12 +193,12 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
237 |
</div>
|
238 |
|
239 |
<!-- Cookie Law Info -->
|
240 |
-
<div class="card
|
241 |
<div class="card-header">
|
242 |
<?php if ( ! isCookieLawInfoPluginActivated() ) : ?>
|
243 |
-
GDPR Cookie Consent <span class="text-danger">[not detected]</span
|
244 |
<?php else: ?>
|
245 |
-
GDPR Cookie Consent <span class="text-success">[detected]</span
|
246 |
<?php endif; ?>
|
247 |
</div>
|
248 |
<div class="card-body">
|
@@ -264,12 +220,12 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
264 |
</div>
|
265 |
|
266 |
<!-- Real Cookie Banner -->
|
267 |
-
<div class="card
|
268 |
<div class="card-header">
|
269 |
<?php if ( ! isRealCookieBannerPluginActivated() ) : ?>
|
270 |
-
Real Cookie Banner <span class="text-danger">[not detected]</span
|
271 |
<?php else: ?>
|
272 |
-
Real Cookie Banner <span class="text-success">[detected]</span
|
273 |
<?php endif; ?>
|
274 |
</div>
|
275 |
<div class="card-body">
|
7 |
}
|
8 |
|
9 |
?>
|
10 |
+
<!-- Consent Magic -->
|
|
|
|
|
11 |
<div class="card card-static">
|
12 |
+
<div class="card-header">
|
13 |
+
Consent Magic - Recommended
|
14 |
+
</div>
|
15 |
+
<div class="card-body">
|
16 |
+
<?php if (isConsentMagicPluginInstalled()) : ?>
|
17 |
+
<?php if (isConsentMagicPluginActivated()) : ?>
|
18 |
+
<div class="row">
|
19 |
+
<div class="col">
|
20 |
+
Manage your consent settings with
|
21 |
+
<?php if (isConsentMagicPluginLicenceActivated()) { ?>
|
22 |
+
<a href="<?=admin_url("admin.php?page=consent-magic")?>">Consent Magic.</a>
|
23 |
+
<?php } else { ?>
|
24 |
+
<a href="<?=admin_url("admin.php?page=cs-license")?>">Consent Magic.</a>
|
25 |
+
<?php } ?>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
<?php else: ?>
|
29 |
+
<div class="row">
|
30 |
+
<div class="col">
|
31 |
+
You have Consent Magic installed, but it’s not activated yet. Go to the Plugins page and activate
|
32 |
+
<a href="<?=admin_url("plugins.php")?>">Consent Magic.</a>
|
33 |
+
</div>
|
34 |
+
</div>
|
35 |
+
<?php endif; ?>
|
36 |
+
<?php else: ?>
|
37 |
+
<div class="row">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
<div class="col">
|
39 |
+
<p>Ask for consent the right way, block scripts and cookies when required.</p>
|
40 |
+
<p><strong>Manage different type of consent:</strong></p>
|
41 |
+
<ul class="pys_list">
|
42 |
+
<li><strong>Ask before tracking:</strong> show a consent message and block the tracking scripts before the
|
43 |
+
visitor expresses consent - ideal for GDPR.</li>
|
44 |
+
<li><strong>Inform and opt out:</strong> show a consent message, and block the tracking scripts if the visitor
|
45 |
+
doesn’t agree to tracking - ideal for CCPA.</li>
|
46 |
+
<li><strong>Just inform:</strong> show a non-intrusive message informing your visitors about tracking.</li>
|
47 |
+
</ul>
|
48 |
+
<p><strong>Use geo-targeted rules:</strong></p>
|
49 |
+
<p>Target your visitors with the right rule based on their location. Rules can have different consent types
|
50 |
+
and different content. The plugin comes with the ready-made rules:</p>
|
51 |
+
<ul class="pys_list">
|
52 |
+
<li><strong>GDPR rule:</strong> targets visitors from GDPR countries, and uses Ask before tracking consent
|
53 |
+
type.</li>
|
54 |
+
<li><strong>CCPA rule:</strong> targets visitors from California, and uses Inform and opt-out consent type.</li>
|
55 |
+
<li><strong>Rest of the world rule:</strong> targets visitors from other locations and uses Just inform consent
|
56 |
+
type</li>
|
57 |
+
<li><strong>Your own rule:</strong> create any rules you need, target any countries, and use custom text for them.</li>
|
58 |
+
</ul>
|
59 |
</div>
|
60 |
+
|
61 |
</div>
|
62 |
+
<div class="row justify-content-center">
|
63 |
+
<div class="col-4">
|
64 |
+
<a href="https://www.consentmagic.com/?utm_source=pys&utm_medium=free-plugin&utm_campaign=consent-page" target="_blank" class="btn btn-sm pys_btn_orange">
|
65 |
+
Lean more about Consent Magic
|
66 |
+
</a>
|
67 |
+
</div>
|
68 |
</div>
|
69 |
+
<?php endif; ?>
|
70 |
+
</div>
|
71 |
+
</div>
|
72 |
+
|
73 |
+
<!-- Video -->
|
74 |
+
<div class="card card-static">
|
75 |
+
<div class="card-header">
|
76 |
+
Recommended Consent Videos:
|
77 |
+
</div>
|
78 |
+
<div class="card-body">
|
79 |
+
<div class="row">
|
80 |
<div class="col">
|
81 |
+
<p><a href="https://www.youtube.com/watch?v=uXTpgFu2V-E" target="_blank">The biggest problem with consent messages (7:02 min) - watch now</a></p>
|
82 |
+
<p><a href="https://www.youtube.com/watch?v=ZOlNbIPS_Uc" target="_blank">Target your visitors with the right consent rule (12:29 min) - watch now</a></p>
|
83 |
+
<p><a href="https://www.youtube.com/watch?v=P8CLxslSPDk" target="_blank">The right to change your mind (2:46 min) - watch now</a></p>
|
84 |
+
<p><a href="https://www.youtube.com/watch?v=PsKdCkKNeLU" target="_blank">Facebook Conversion API and the Consent Problem (9:25 min) - watch now</a></p>
|
85 |
</div>
|
86 |
</div>
|
87 |
+
</div>
|
88 |
</div>
|
89 |
|
90 |
+
<h2 class="section-title">Other consent plugins:</h2>
|
91 |
+
|
92 |
<!-- Cookiebot -->
|
93 |
+
<div class="card">
|
94 |
<div class="card-header">
|
95 |
<?php if ( ! isCookiebotPluginActivated() ) : ?>
|
96 |
+
Cookiebot <span class="text-danger">[not detected]</span><?php cardCollapseBtn(); ?>
|
97 |
<?php else: ?>
|
98 |
+
Cookiebot <span class="text-success">[detected]</span><?php cardCollapseBtn(); ?>
|
99 |
<?php endif; ?>
|
100 |
</div>
|
101 |
<div class="card-body">
|
165 |
</div>
|
166 |
</div>
|
167 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
<!-- Cookie Notice -->
|
169 |
+
<div class="card ">
|
170 |
<div class="card-header">
|
171 |
<?php if ( ! isCookieNoticePluginActivated() ) : ?>
|
172 |
+
Cookie Notice <span class="text-danger">[not detected]</span><?php cardCollapseBtn(); ?>
|
173 |
<?php else: ?>
|
174 |
+
Cookie Notice <span class="text-success">[detected]</span><?php cardCollapseBtn(); ?>
|
175 |
<?php endif; ?>
|
176 |
</div>
|
177 |
<div class="card-body">
|
193 |
</div>
|
194 |
|
195 |
<!-- Cookie Law Info -->
|
196 |
+
<div class="card">
|
197 |
<div class="card-header">
|
198 |
<?php if ( ! isCookieLawInfoPluginActivated() ) : ?>
|
199 |
+
GDPR Cookie Consent <span class="text-danger">[not detected]</span><?php cardCollapseBtn(); ?>
|
200 |
<?php else: ?>
|
201 |
+
GDPR Cookie Consent <span class="text-success">[detected]</span><?php cardCollapseBtn(); ?>
|
202 |
<?php endif; ?>
|
203 |
</div>
|
204 |
<div class="card-body">
|
220 |
</div>
|
221 |
|
222 |
<!-- Real Cookie Banner -->
|
223 |
+
<div class="card">
|
224 |
<div class="card-header">
|
225 |
<?php if ( ! isRealCookieBannerPluginActivated() ) : ?>
|
226 |
+
Real Cookie Banner <span class="text-danger">[not detected]</span><?php cardCollapseBtn(); ?>
|
227 |
<?php else: ?>
|
228 |
+
Real Cookie Banner <span class="text-success">[detected]</span><?php cardCollapseBtn(); ?>
|
229 |
<?php endif; ?>
|
230 |
</div>
|
231 |
<div class="card-body">
|
includes/views/html-main-general.php
CHANGED
@@ -167,6 +167,29 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
167 |
</div>
|
168 |
</div>
|
169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
<!-- Signal Events -->
|
171 |
<div class="card">
|
172 |
<div class="card-header has_switch">
|
167 |
</div>
|
168 |
</div>
|
169 |
|
170 |
+
<!-- video -->
|
171 |
+
<div class="card card-static">
|
172 |
+
<div class="card-header">
|
173 |
+
Recommended Videos:
|
174 |
+
</div>
|
175 |
+
<div class="card-body">
|
176 |
+
<div class="row">
|
177 |
+
<div class="col">
|
178 |
+
<p><a href="https://www.youtube.com/watch?v=uXTpgFu2V-E" target="_blank">How to configure Facebook Conversion API (2:51 min) - watch now</a></p>
|
179 |
+
<p><a href="https://www.youtube.com/watch?v=QqAIO1ONc0I" target="_blank">How to test Facebook Conversion API (10:16 min) - watch now</a></p>
|
180 |
+
<p><a href="https://www.youtube.com/watch?v=PsKdCkKNeLU" target="_blank">Facebook Conversion API and the Consent Problem (9:25 min) - watch now</a></p>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
<div class="row">
|
184 |
+
<div class="col-8">
|
185 |
+
</div>
|
186 |
+
<div class="col-4 justify-content-end">
|
187 |
+
<a href="https://www.youtube.com/channel/UCnie2zvwAjTLz9B4rqvAlFQ" target="_blank">Watch more on our YouTube channel</a>
|
188 |
+
</div>
|
189 |
+
</div>
|
190 |
+
</div>
|
191 |
+
</div>
|
192 |
+
|
193 |
<!-- Signal Events -->
|
194 |
<div class="card">
|
195 |
<div class="card-header has_switch">
|
includes/views/html-wrapper-main.php
CHANGED
@@ -39,6 +39,9 @@ include "html-popovers.php";
|
|
39 |
|
40 |
$classes = implode( ' ', $classes );
|
41 |
|
|
|
|
|
|
|
42 |
?>
|
43 |
|
44 |
<a class="<?php esc_attr_e( $classes ); ?>"
|
39 |
|
40 |
$classes = implode( ' ', $classes );
|
41 |
|
42 |
+
if(isset($tab_data['class']) ) {
|
43 |
+
$classes .= ' '.$tab_data['class'];
|
44 |
+
}
|
45 |
?>
|
46 |
|
47 |
<a class="<?php esc_attr_e( $classes ); ?>"
|
pixelyoursite.php
CHANGED
@@ -4,7 +4,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
-
define( 'PYS_FREE_VERSION', '8.
|
8 |
define( 'PYS_FREE_PINTEREST_MIN_VERSION', '3.0.0' );
|
9 |
define( 'PYS_FREE_BING_MIN_VERSION', '2.0.0' );
|
10 |
define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
+
define( 'PYS_FREE_VERSION', '8.2.0' );
|
8 |
define( 'PYS_FREE_PINTEREST_MIN_VERSION', '3.0.0' );
|
9 |
define( 'PYS_FREE_BING_MIN_VERSION', '2.0.0' );
|
10 |
define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: Facebook Pixel, Facebook Conversion API, CAPI, Facebook Pixel Events, Face
|
|
4 |
Requires at least: 3.0.1
|
5 |
Requires PHP: 5.4
|
6 |
Tested up to: 5.7
|
7 |
-
Stable tag: 8.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -31,34 +31,54 @@ Learn about [the Signal Event and Aggregated Event Measurement](https://www.pixe
|
|
31 |
|
32 |
TRACK EVERYTHING WITH A SINGLE PLUGIN:
|
33 |
|
34 |
-
The Facebook Pixel: one click install
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
Google
|
41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
-
**Want to learn about your Facebook Pixel? We've put together [this help page](https://www.pixelyoursite.com/how-to-use-facebook-pixel)**
|
44 |
|
45 |
FANTASTIC WOOCOMMERCE INTEGRATION:
|
46 |
|
47 |
-
Facebook Pixel: every e-commerce related event is fired automatically. Conversion value is tracked for each event. All the events are
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
EASY DIGITAL DOWNLOADS INTEGRATION:
|
55 |
|
56 |
-
The EDD integration works just like the WooCommerce integration, with full Dynamic Product Ads Facebook Pixel Support, Google Analytics Enhanced Ecommerce, and Pinterest Tag e-commerce events.
|
|
|
|
|
57 |
|
58 |
TRACK KEY ACTIONS WITH THE SIGNAL EVENT:
|
59 |
|
60 |
The Signal event captures important actions like form submit, comments, downloads, page scroll, and time on page.
|
61 |
|
|
|
|
|
62 |
FIRE YOUR OWN EVENTS:
|
63 |
|
64 |
You can easily configure your own events and send them to all or just some of the networks (Facebook, Google, Pinterest).
|
@@ -69,17 +89,23 @@ URL contains.
|
|
69 |
URL equals.
|
70 |
Delay event: fire after X seconds.
|
71 |
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
73 |
|
74 |
-
|
75 |
|
76 |
-
Cookiebot
|
77 |
-
GDPR Cookie Consent
|
78 |
-
Cookie Notice Plugin
|
79 |
-
Real Cookie Banner
|
80 |
|
81 |
|
82 |
Additionally we offer filters that developers can use to create their own custom integrations. These filters can control the way each pixel works.
|
|
|
83 |
|
84 |
|
85 |
FACEBOOK FOR WOOCOMMERCE INTEGRATION:
|
@@ -90,6 +116,8 @@ When Facebook for WooCommerce is detected, the plugin will offer you the option
|
|
90 |
|
91 |
[More details in this dedicated article](https://www.pixelyoursite.com/facebook-for-woocommerce-pixelyoursite)
|
92 |
|
|
|
|
|
93 |
OTHER USEFUL FEATURES:
|
94 |
|
95 |
Facebook Manual Advanced Matching.
|
@@ -99,6 +127,8 @@ Google Analytics Enhanced Link Attribution.
|
|
99 |
Google Analytics Anonymize IPs.
|
100 |
Pinterest Enhanced Matching.
|
101 |
|
|
|
|
|
102 |
**EVEN MORE FEATURES WITH THE PRO VERSION:**
|
103 |
|
104 |
|
@@ -106,24 +136,34 @@ Pinterest Enhanced Matching.
|
|
106 |
|
107 |
[Click here for a comparison between the free and pro versions](https://www.pixelyoursite.com/free-versus-pro)
|
108 |
|
|
|
|
|
109 |
EVEN MORE TRIGGERS FOR THE SIGNAL EVENT:
|
110 |
|
111 |
You can capture clicks on internal or external links, embedded video views, clicks on phone numbers or emails, user signups, clicks on AdSense ads.
|
112 |
|
|
|
|
|
113 |
EVEN MORE EVENTS’ TRIGGERS:
|
114 |
|
115 |
On top of the free triggers (URL equals and URL contains), the pro version will let you fire more complex events:
|
116 |
|
117 |
-
Clicks on CSS Selector: you can target virtually any clicks, like buttons, images etc.
|
118 |
-
|
119 |
-
|
|
|
|
|
120 |
|
|
|
|
|
121 |
EVEN MORE FACEBOOK EVENTS PARAMETERS:
|
122 |
|
123 |
The pro version will track a vast amount of data for each event, like the traffic source, UTMs, your visitor’s browser’s time (hour, day, month).
|
124 |
|
125 |
These parameters can be used for [Custom Audiences or Custom Conversions](https://www.pixelyoursite.com/facebook-pixel-plugin/custom-audiences-conversions)
|
126 |
|
|
|
|
|
127 |
EVEN MORE GOOGLE ANALYTICS FEATURES:
|
128 |
|
129 |
Support for Google Optimize (free A/B testing service by Google).
|
@@ -133,12 +173,16 @@ On top of the free version data, [the pro version](https://www.pixelyoursite.com
|
|
133 |
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).
|
134 |
Dynamic Remarketing vertical custom dimensions (Retail or Custom vertical). Useful if you want to configure dynamic remarketing via your Analytics account.
|
135 |
|
|
|
|
|
136 |
EVEN MORE HEAD & FOOTER OPTIONS:
|
137 |
|
138 |
The pro version [Head & Footer](https://www.pixelyoursite.com/head-footer-scripts) lets you use dynamic values: [id], [title], [categories], [email], [first_name], [last_name].
|
139 |
|
140 |
For WooCommerce you’ll have some additional dynamic values: [order_number], [order_subtotal], [order_total], [currency].
|
141 |
|
|
|
|
|
142 |
EVEN MORE WOOCOMMERCE FEATURES:
|
143 |
|
144 |
Identify your most valuable customers with our Advanced Marketing Events. Useful to create Facebook Lookalikes or Google Similar Audiences.
|
@@ -153,6 +197,8 @@ Track WooCommerce PayPal Standard clicks.
|
|
153 |
|
154 |
For more info on how the pro version can help you with your Facebook Pixel, [visit this WooCommerce - Facebook Pixel page](https://www.pixelyoursite.com/facebook-pixel-plugin/woocommerce-facebook-pixel)
|
155 |
|
|
|
|
|
156 |
GOOGLE ADS TAG (FORMER ADWORDS):
|
157 |
|
158 |
The Pro version will implement the [Google Ads Tag](https://www.pixelyoursite.com/google-ads-tag) with Dynamic Retargeting support for WooCommerce and Easy Digital Downloads.
|
@@ -161,6 +207,8 @@ Each Global event will be sent to Google Ads too, and you can configure Google A
|
|
161 |
|
162 |
Add conversion label to any WooCommerce or EDD event.
|
163 |
|
|
|
|
|
164 |
NOT ENOUGH? GET MORE WITH THE SUPER PACK:
|
165 |
|
166 |
With the [Super Pack](https://www.pixelyoursite.com/super-pack) you get 5 extra add-ons:
|
@@ -173,9 +221,10 @@ AMP support
|
|
173 |
|
174 |
The super pack comes as a free bonus with our [Advanced and Agency licenses](https://www.pixelyoursite.com/facebook-pixel-plugin/buy-pixelyoursite-pro).
|
175 |
|
|
|
|
|
176 |
DON’T MISS:
|
177 |
|
178 |
-
For more details about how [PixelYourSite Pro](https://www.pixelyoursite.com/) can help your business, visit our website. Make sure you check our [free versus pro comparison page](https://www.pixelyoursite.com/free-versus-pro)
|
179 |
|
180 |
**Learning Section**: we’ve put together a number of articles with all sort of tips and tricks that will help you with your ads. [Click here for our learning section](https://www.pixelyoursite.com/learn)
|
181 |
|
@@ -390,9 +439,15 @@ NO, absolutely not! We don't track any type of data about your website. We simpl
|
|
390 |
|
391 |
== Changelog ==
|
392 |
|
|
|
|
|
|
|
|
|
|
|
|
|
393 |
= PixelYourSite 8.1.1 =
|
394 |
|
395 |
-
* Remove parameters from event_source-url. This is a mandatory parameter for Facebook Conversion API events. If the URL contains parameters that include personal data, it will trigger privacy working on Facebook. To avoid this problem we are now removing all URL parameters for this event. If you think you need them, you have
|
396 |
|
397 |
* Dynamic Ads for Blogs events are now OFF by default.
|
398 |
|
4 |
Requires at least: 3.0.1
|
5 |
Requires PHP: 5.4
|
6 |
Tested up to: 5.7
|
7 |
+
Stable tag: 8.2.0
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
31 |
|
32 |
TRACK EVERYTHING WITH A SINGLE PLUGIN:
|
33 |
|
34 |
+
* The Facebook Pixel: one click install
|
35 |
+
|
36 |
+
* Facebook Conversion API: add a token and we send all events using CAPI
|
37 |
+
|
38 |
+
* Google Analytics: one click install
|
39 |
+
|
40 |
+
* Google Analytics 4: for details, watch [this video](https://www.youtube.com/watch?v=CCVBD_bD-Y0)
|
41 |
+
|
42 |
+
* ANY script: add any other script with our flexible Head & Footer option
|
43 |
+
|
44 |
+
* The Pinterest Tag: via [free add-on](https://www.pixelyoursite.com/pinterest-tag)
|
45 |
+
|
46 |
+
* Google Ads (formerly AdWords) [pro feature](https://www.pixelyoursite.com/google-ads-tag)
|
47 |
+
|
48 |
+
* Microsoft (BING) UET tag [paid add-on](https://www.pixelyoursite.com/bing-tag)
|
49 |
+
|
50 |
|
|
|
51 |
|
52 |
FANTASTIC WOOCOMMERCE INTEGRATION:
|
53 |
|
54 |
+
* Facebook Pixel: every e-commerce related event is fired automatically. Conversion value is tracked for each event. All the events are
|
55 |
+
|
56 |
+
* Dynamic Product Ads ready (content_ids and content_type parameters always present).
|
57 |
+
|
58 |
+
* Facebook Conversion API: every e-commerce event is sent using CAPI.
|
59 |
+
|
60 |
+
* Google Analytics: Enhanced Ecommerce implementation.
|
61 |
+
|
62 |
+
* GA4: Monetization data.
|
63 |
+
|
64 |
+
* Head & Footer scripts: you can insert scripts on the WooCommerce “order-received” page.
|
65 |
+
|
66 |
+
* Pinterest e-commerce events.
|
67 |
+
|
68 |
+
|
69 |
|
70 |
EASY DIGITAL DOWNLOADS INTEGRATION:
|
71 |
|
72 |
+
The EDD integration works just like the WooCommerce integration, with full Dynamic Product Ads Facebook Pixel Support, Google Analytics Enhanced Ecommerce, and Pinterest Tag e-commerce events.
|
73 |
+
|
74 |
+
|
75 |
|
76 |
TRACK KEY ACTIONS WITH THE SIGNAL EVENT:
|
77 |
|
78 |
The Signal event captures important actions like form submit, comments, downloads, page scroll, and time on page.
|
79 |
|
80 |
+
|
81 |
+
|
82 |
FIRE YOUR OWN EVENTS:
|
83 |
|
84 |
You can easily configure your own events and send them to all or just some of the networks (Facebook, Google, Pinterest).
|
89 |
URL equals.
|
90 |
Delay event: fire after X seconds.
|
91 |
|
92 |
+
|
93 |
+
|
94 |
+
**CONSENT, GDPR, CCPA SUPPORT:**
|
95 |
+
|
96 |
+
|
97 |
+
PixelYourSite is fully integrated with [ConsentMagic.com](https://www.consentmagic.com)
|
98 |
|
99 |
+
And it works with some of the most popular “cookie consent” plugins:
|
100 |
|
101 |
+
* Cookiebot
|
102 |
+
* GDPR Cookie Consent
|
103 |
+
* Cookie Notice Plugin
|
104 |
+
* Real Cookie Banner
|
105 |
|
106 |
|
107 |
Additionally we offer filters that developers can use to create their own custom integrations. These filters can control the way each pixel works.
|
108 |
+
|
109 |
|
110 |
|
111 |
FACEBOOK FOR WOOCOMMERCE INTEGRATION:
|
116 |
|
117 |
[More details in this dedicated article](https://www.pixelyoursite.com/facebook-for-woocommerce-pixelyoursite)
|
118 |
|
119 |
+
|
120 |
+
|
121 |
OTHER USEFUL FEATURES:
|
122 |
|
123 |
Facebook Manual Advanced Matching.
|
127 |
Google Analytics Anonymize IPs.
|
128 |
Pinterest Enhanced Matching.
|
129 |
|
130 |
+
|
131 |
+
|
132 |
**EVEN MORE FEATURES WITH THE PRO VERSION:**
|
133 |
|
134 |
|
136 |
|
137 |
[Click here for a comparison between the free and pro versions](https://www.pixelyoursite.com/free-versus-pro)
|
138 |
|
139 |
+
|
140 |
+
|
141 |
EVEN MORE TRIGGERS FOR THE SIGNAL EVENT:
|
142 |
|
143 |
You can capture clicks on internal or external links, embedded video views, clicks on phone numbers or emails, user signups, clicks on AdSense ads.
|
144 |
|
145 |
+
|
146 |
+
|
147 |
EVEN MORE EVENTS’ TRIGGERS:
|
148 |
|
149 |
On top of the free triggers (URL equals and URL contains), the pro version will let you fire more complex events:
|
150 |
|
151 |
+
* Clicks on CSS Selector: you can target virtually any clicks, like buttons, images etc.
|
152 |
+
|
153 |
+
* Mouse over CSS Selector
|
154 |
+
|
155 |
+
* Page Scroll: you can fire an event when any or a particular page is scrolled down to a percent.
|
156 |
|
157 |
+
|
158 |
+
|
159 |
EVEN MORE FACEBOOK EVENTS PARAMETERS:
|
160 |
|
161 |
The pro version will track a vast amount of data for each event, like the traffic source, UTMs, your visitor’s browser’s time (hour, day, month).
|
162 |
|
163 |
These parameters can be used for [Custom Audiences or Custom Conversions](https://www.pixelyoursite.com/facebook-pixel-plugin/custom-audiences-conversions)
|
164 |
|
165 |
+
|
166 |
+
|
167 |
EVEN MORE GOOGLE ANALYTICS FEATURES:
|
168 |
|
169 |
Support for Google Optimize (free A/B testing service by Google).
|
173 |
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).
|
174 |
Dynamic Remarketing vertical custom dimensions (Retail or Custom vertical). Useful if you want to configure dynamic remarketing via your Analytics account.
|
175 |
|
176 |
+
|
177 |
+
|
178 |
EVEN MORE HEAD & FOOTER OPTIONS:
|
179 |
|
180 |
The pro version [Head & Footer](https://www.pixelyoursite.com/head-footer-scripts) lets you use dynamic values: [id], [title], [categories], [email], [first_name], [last_name].
|
181 |
|
182 |
For WooCommerce you’ll have some additional dynamic values: [order_number], [order_subtotal], [order_total], [currency].
|
183 |
|
184 |
+
|
185 |
+
|
186 |
EVEN MORE WOOCOMMERCE FEATURES:
|
187 |
|
188 |
Identify your most valuable customers with our Advanced Marketing Events. Useful to create Facebook Lookalikes or Google Similar Audiences.
|
197 |
|
198 |
For more info on how the pro version can help you with your Facebook Pixel, [visit this WooCommerce - Facebook Pixel page](https://www.pixelyoursite.com/facebook-pixel-plugin/woocommerce-facebook-pixel)
|
199 |
|
200 |
+
|
201 |
+
|
202 |
GOOGLE ADS TAG (FORMER ADWORDS):
|
203 |
|
204 |
The Pro version will implement the [Google Ads Tag](https://www.pixelyoursite.com/google-ads-tag) with Dynamic Retargeting support for WooCommerce and Easy Digital Downloads.
|
207 |
|
208 |
Add conversion label to any WooCommerce or EDD event.
|
209 |
|
210 |
+
|
211 |
+
|
212 |
NOT ENOUGH? GET MORE WITH THE SUPER PACK:
|
213 |
|
214 |
With the [Super Pack](https://www.pixelyoursite.com/super-pack) you get 5 extra add-ons:
|
221 |
|
222 |
The super pack comes as a free bonus with our [Advanced and Agency licenses](https://www.pixelyoursite.com/facebook-pixel-plugin/buy-pixelyoursite-pro).
|
223 |
|
224 |
+
|
225 |
+
|
226 |
DON’T MISS:
|
227 |
|
|
|
228 |
|
229 |
**Learning Section**: we’ve put together a number of articles with all sort of tips and tricks that will help you with your ads. [Click here for our learning section](https://www.pixelyoursite.com/learn)
|
230 |
|
439 |
|
440 |
== Changelog ==
|
441 |
|
442 |
+
|
443 |
+
= PixelYourSite 8.2.0 =
|
444 |
+
|
445 |
+
* Full support for [ConsentMagic.com](https://www.consentmagic.com)
|
446 |
+
|
447 |
+
|
448 |
= PixelYourSite 8.1.1 =
|
449 |
|
450 |
+
* Remove parameters from event_source-url. This is a mandatory parameter for Facebook Conversion API events. If the URL contains parameters that include personal data, it will trigger privacy working on Facebook. To avoid this problem we are now removing all URL parameters for this event. If you think you need them, you have toggle to add them back on the plugin’s main page.
|
451 |
|
452 |
* Dynamic Ads for Blogs events are now OFF by default.
|
453 |
|