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

Version Description

Download this release

Release Info

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

Code changes from version 9.2.0 to 9.2.1

dist/scripts/public.bundle.js ADDED
@@ -0,0 +1 @@
 
1
+ (()=>{function e(e){for(var t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".split(""),n=[],o=0;o<e;o++){var a=(Math.random()*(t.length-1)).toFixed(0);n[o]=t[a]}return n.join("")}function t(e){switch(e){case"facebook":return window.pys.Facebook;case"ga":return window.pys.Analytics;case"bing":return window.pys.Bing;case"pinterest":return window.pys.Pinterest}}Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(e,t){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var a,i,r=0|t,s=Math.max(r>=0?r:o-Math.abs(r),0);s<o;){if((a=n[s])===(i=e)||"number"==typeof a&&"number"==typeof i&&isNaN(a)&&isNaN(i))return!0;s++}return!1}}),function(o,a){a.debug&&console.log("PYS:",a);var i={isEnabled:function(){},disable:function(){},loadPixel:function(){},fireEvent:function(e,t){return!1},onCommentEvent:function(){},onDownloadEvent:function(e){},onFormEvent:function(e){},onWooAddToCartOnButtonEvent:function(e){},onWooAddToCartOnSingleEvent:function(e,t,n,o,a){},onWooRemoveFromCartEvent:function(e){},onEddAddToCartOnButtonEvent:function(e,t,n){},onEddRemoveFromCartEvent:function(e){},onPageScroll:function(e){},onTime:function(e){}},r={isEnabled:function(){},disable:function(){},loadPixel:function(){},fireEvent:function(e,t){return!1},onAdSenseEvent:function(){},onClickEvent:function(e){},onWatchVideo:function(e){},onCommentEvent:function(){},onFormEvent:function(e){},onDownloadEvent:function(e){},onWooAddToCartOnButtonEvent:function(e){},onWooAddToCartOnSingleEvent:function(e,t,n,o,a){},onWooRemoveFromCartEvent:function(e){},onWooAffiliateEvent:function(e){},onWooPayPalEvent:function(){},onEddAddToCartOnButtonEvent:function(e,t,n){},onEddRemoveFromCartEvent:function(e){},onPageScroll:function(e){},onTime:function(e){}},s=function(e){var t=i,n=r,a=!1;let l=function(){let t=6e4*e.last_visit_duration;if(void 0===Cookies.get("pys_start_session")||void 0===Cookies.get("pys_session_limit")){var n=new Date;return n.setTime(n.getTime()+t),Cookies.set("pys_session_limit",!0,{expires:n}),Cookies.set("pys_start_session",!0),!0}return!1}(),_=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"],u=["fbadid","gadid","padid","bingid"];function p(){e.gdpr.all_disabled_by_api||(e.gdpr.facebook_disabled_by_api||c.loadPixel(),e.gdpr.analytics_disabled_by_api||d.loadPixel(),e.gdpr.pinterest_disabled_by_api||t.loadPixel(),e.gdpr.bing_disabled_by_api||n.loadPixel())}function f(){try{let n,o=document.referrer.toString(),a=0===o.length,i=!a&&0===o.indexOf(e.siteUrl);return n=!1==(!a&&!i)?"direct":o,"direct"!==n?-1!==(t=(t=n).replace(/(https?:\/\/)?(www.)?/i,"")).indexOf("/")?t.split("/")[0]:t:n}catch(e){return console.error(e),"direct"}var t}function m(e=!1){try{let t="pys_",n=[];return e&&(t="last_pys_"),o.each(u,(function(e,o){Cookies.get(t+o)&&(n[o]=Cookies.get(t+o))})),n}catch(e){return console.error(e),[]}}function v(e=!1){try{let t="pys_";e&&(t="last_pys_");let n=[];return o.each(_,(function(e,o){if(Cookies.get(t+o)){let e=Cookies.get(t+o);n[o]=function(e){return/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)?void 0:e}(e)}})),n}catch(e){return console.error(e),[]}}return{PRODUCT_SIMPLE:0,PRODUCT_VARIABLE:1,PRODUCT_BUNDLE:2,PRODUCT_GROUPED:3,fireEventForAllPixel:function(e,o){o.hasOwnProperty(c.tag())&&c[e](o[c.tag()]),o.hasOwnProperty(d.tag())&&d[e](o[d.tag()]),o.hasOwnProperty(t.tag())&&t[e](o[t.tag()]),o.hasOwnProperty(n.tag())&&n[e](o[n.tag()])},setupPinterestObject:function(){return t=window.pys.Pinterest||t},setupBingObject:function(){return n=window.pys.Bing||n},copyProperties:function(e,t){for(var n in e)"function"!=typeof e[n]&&(t[n]=e[n]);return t},manageCookies:function(){let t=parseInt(e.cookie_duration),n=function(){try{var e={},t=[];return window.location.search.substr(1).split("&").forEach((function(n){(t=n.split("=")).length>1&&(e[t[0]]=t[1])})),e}catch(e){return console.error(e),{}}}(),a=window.location.href.split("?")[0];try{void 0===Cookies.get("pys_first_visit")&&(Cookies.set("pys_first_visit",!0,{expires:t}),Cookies.set("pysTrafficSource",f(),{expires:t}),Cookies.set("pys_landing_page",a,{expires:t}),o.each(_,(function(e,o){n.hasOwnProperty(o)?Cookies.set("pys_"+o,n[o],{expires:t}):Cookies.remove("pys_"+o)})),o.each(u,(function(e,o){n.hasOwnProperty(o)?Cookies.set("pys_"+o,n[o],{expires:t}):Cookies.remove("pys_"+o)}))),l&&(Cookies.set("last_pysTrafficSource",f(),{expires:t}),o.each(_,(function(e,o){n.hasOwnProperty(o)?Cookies.set("last_pys_"+o,n[o],{expires:t}):Cookies.remove("last_pys_"+o)})),o.each(u,(function(e,o){n.hasOwnProperty(o)?Cookies.set("last_pys_"+o,n[o],{expires:t}):Cookies.remove("last_pys_"+o)})),Cookies.set("last_pys_landing_page",a,{expires:t}))}catch(e){console.error(e)}},clone:function(e){var t;if(null==e||"object"!=typeof e)return e;if(e instanceof Date)return(t=new Date).setTime(e.getTime()),t;if(e instanceof Array){t=[];for(var n=0,o=e.length;n<o;n++)"function"!=typeof e[n]&&(t[n]=s.clone(e[n]));return t}if(e instanceof Object){for(var a in t={},e)if(e.hasOwnProperty(a)){if("function"==typeof e[a])continue;t[a]=s.clone(e[a])}return t}return e},getTagsAsArray:function(e){return[].slice.call(document.getElementsByTagName(e))},getRequestParams:function(){return[]},setupMouseOverClickEvents:function(e,t){o(document).onFirst("mouseover",t.join(","),(function(){if(o(this).hasClass("pys-mouse-over-"+e))return!0;o(this).addClass("pys-mouse-over-"+e),s.fireDynamicEvent(e)}))},setupCSSClickEvents:function(e,t){o(document).onFirst("click",t.join(","),(function(){s.fireTriggerEvent(e)}))},setupURLClickEvents:function(){o("a[data-pys-event-id]").onFirst("click",(function(e){o(this).attr("data-pys-event-id").split(",").forEach((function(e){e=parseInt(e),!1===isNaN(e)&&s.fireTriggerEvent(e)}))}))},setupScrollPosEvents:function(e,t){var n={},a=o(document).height()-o(window).height();o.each(t,(function(t,o){o=a*o/100,o=Math.round(o),n[o]=e})),o(document).on("scroll",(function(){var e=o(window).scrollTop();o.each(n,(function(t,o){return e<=t||null===o||(n[t]=null,void s.fireTriggerEvent(o))}))}))},setupCommentEvents:function(e,t){o("form.comment-form").on("submit",(function(){s.fireTriggerEvent(e)}))},fireTriggerEvent:function(o){if(e.triggerEvents.hasOwnProperty(o)){var a={},i=e.triggerEvents[o];i.hasOwnProperty("facebook")&&(a=i.facebook,c.fireEvent(a.name,a)),i.hasOwnProperty("ga")&&(a=i.ga,d.fireEvent(a.name,a)),i.hasOwnProperty("pinterest")&&(a=i.pinterest,t.fireEvent(a.name,a)),i.hasOwnProperty("bing")&&(a=i.bing,n.fireEvent(a.name,a))}},fireStaticEvents:function(a){e.staticEvents.hasOwnProperty(a)&&o.each(e.staticEvents[a],(function(e,i){o.each(i,(function(e,o){if(o.fired=o.fired||!1,!o.fired){var i=!1;"facebook"===a?i=c.fireEvent(o.name,o):"ga"===a?i=d.fireEvent(o.name,o):"pinterest"===a?i=t.fireEvent(o.name,o):"bing"===a&&(i=n.fireEvent(o.name,o)),o.fired=i}}))}))},loadGoogleTag:function(e){a||(function(e,t,n){var o=t.createElement("script"),a=t.getElementsByTagName("script")[0];o.async=1,o.src=n,a.parentNode.insertBefore(o,a)}(window,document,"//www.googletagmanager.com/gtag/js?id="+e),window.dataLayer=window.dataLayer||[],window.gtag=window.gtag||function(){dataLayer.push(arguments)},gtag("js",new Date),a=!0)},loadPixels:function(){e.gdpr.ajax_enabled&&!e.gdpr.consent_magic_integration_enabled?o.get({url:e.ajaxUrl,dataType:"json",data:{action:"pys_get_gdpr_filters_values"},success:function(t){t.success&&(e.gdpr.all_disabled_by_api=t.data.all_disabled_by_api,e.gdpr.facebook_disabled_by_api=t.data.facebook_disabled_by_api,e.gdpr.analytics_disabled_by_api=t.data.analytics_disabled_by_api,e.gdpr.google_ads_disabled_by_api=t.data.google_ads_disabled_by_api,e.gdpr.pinterest_disabled_by_api=t.data.pinterest_disabled_by_api,e.gdpr.bing_disabled_by_api=t.data.bing_disabled_by_api),p()}}):p()},consentGiven:function(t){if(e.gdpr.consent_magic_integration_enabled&&"undefined"!=typeof CS_Data){var n=Cookies.get("cs_viewed_cookie_policy"+test_prefix);if(e.gdpr[t+"_prior_consent_enabled"]){if(void 0===n||"yes"===n)return!0}else if(void 0===n||"yes"===n)return!0;return!1}if(e.gdpr.real_cookie_banner_integration_enabled){var o=window.consentApi;if(o)switch(t){case"analytics":return o.consentSync("http","_ga","*").cookieOptIn;case"facebook":return o.consentSync("http","_fbp","*").cookieOptIn;case"pinterest":return o.consentSync("http","_pinterest_sess",".pinterest.com").cookieOptIn;default:return!0}}if(e.gdpr.cookiebot_integration_enabled&&"undefined"!=typeof Cookiebot){var a=e.gdpr["cookiebot_"+t+"_consent_category"];if(e.gdpr[t+"_prior_consent_enabled"]){if(!1===Cookiebot.consented||Cookiebot.consent[a])return!0}else if(Cookiebot.consent[a])return!0;return!1}if(e.gdpr.cookie_notice_integration_enabled&&"undefined"!=typeof cnArgs){var i=Cookies.get(cnArgs.cookieName);if(e.gdpr[t+"_prior_consent_enabled"]){if(void 0===i||"true"===i)return!0}else if("true"===i)return!0;return!1}if(e.gdpr.cookie_law_info_integration_enabled){var r=Cookies.get("viewed_cookie_policy");if(e.gdpr[t+"_prior_consent_enabled"]){if(void 0===r||"yes"===r)return!0}else if("yes"===r)return!0;return!1}return!0},setupGdprCallbacks:function(){if(e.gdpr.consent_magic_integration_enabled&&"undefined"!=typeof CS_Data){var a=CS_Data.test_prefix,i=!1;if(1==CS_Data.cs_refresh_after_consent&&(i=CS_Data.cs_refresh_after_consent),!i){for(var r=document.cookie.split(";"),s=1;s<=r.length;s++)if(-1!==r[s-1].indexOf("cs_enabled_cookie_term")){var l=r[s-1].replace("cs_enabled_cookie_term"+a+"_","");l=Number(l.replace(/\D+/g,"")),"yes"==Cookies.get("cs_enabled_cookie_term"+a+"_"+l)?(l===CS_Data.cs_script_cat.facebook&&c.loadPixel(),l===CS_Data.cs_script_cat.bing&&n.loadPixel(),l===CS_Data.cs_script_cat.analytics&&d.loadPixel(),l===CS_Data.cs_script_cat.pinterest&&t.loadPixel()):(l===CS_Data.cs_script_cat.facebook&&c.disable(),l===CS_Data.cs_script_cat.bing&&n.disable(),l===CS_Data.cs_script_cat.analytics&&d.disable(),l===CS_Data.cs_script_cat.pinterest&&t.disable()),"yes"==Cookies.get("cs_enabled_advanced_matching")&&c.loadPixel()}o(document).on("click",".cs_action_btn",(function(e){e.preventDefault();var a=o(this).attr("data-cs_action");"allow_all"===a?(c.loadPixel(),n.loadPixel(),d.loadPixel(),t.loadPixel()):"disable_all"===a&&(c.disable(),n.disable(),d.disable(),t.disable())}))}}if(e.gdpr.real_cookie_banner_integration_enabled){var _=window.consentApi;_&&(_.consent("http","_ga","*").then(d.loadPixel.bind(d),d.disable.bind(d)),_.consent("http","_fbp","*").then(c.loadPixel.bind(c),c.disable.bind(c)),_.consent("http","_pinterest_sess",".pinterest.com").then(t.loadPixel.bind(t),t.disable.bind(t)))}e.gdpr.cookiebot_integration_enabled&&"undefined"!=typeof Cookiebot&&window.addEventListener("CookiebotOnConsentReady",(function(){Cookiebot.consent.marketing&&(c.loadPixel(),n.loadPixel(),t.loadPixel()),Cookiebot.consent.statistics&&d.loadPixel(),Cookiebot.consent.marketing||(c.disable(),t.disable(),n.disable()),Cookiebot.consent.statistics||d.disable()})),e.gdpr.cookie_notice_integration_enabled&&(o(document).onFirst("click",".cn-set-cookie",(function(){"accept"===o(this).data("cookie-set")?(c.loadPixel(),d.loadPixel(),t.loadPixel(),n.loadPixel()):(c.disable(),d.disable(),t.disable(),n.disable())})),o(document).onFirst("click",".cn-revoke-cookie",(function(){c.disable(),d.disable(),t.disable(),n.disable()}))),e.gdpr.cookie_law_info_integration_enabled&&(o(document).onFirst("click","#cookie_action_close_header",(function(){c.loadPixel(),d.loadPixel(),t.loadPixel(),n.loadPixel()})),o(document).onFirst("click","#cookie_action_close_header_reject",(function(){c.disable(),d.disable(),t.disable(),n.disable()})))},getLinkExtension:function(e){return(e=(e=(e=e.substring(0,-1===e.indexOf("#")?e.length:e.indexOf("#"))).substring(0,-1===e.indexOf("?")?e.length:e.indexOf("?"))).substring(e.lastIndexOf("/")+1,e.length)).length>0&&-1!==e.indexOf(".")?e=e.substring(e.indexOf(".")+1):""},getLinkFilename:function(e){return(e=(e=(e=e.substring(0,-1===e.indexOf("#")?e.length:e.indexOf("#"))).substring(0,-1===e.indexOf("?")?e.length:e.indexOf("?"))).substring(e.lastIndexOf("/")+1,e.length)).length>0&&-1!==e.indexOf(".")?e:""},isCheckoutPage:function(){return o("body").hasClass("woocommerce-checkout")||o("body").hasClass("edd-checkout")},addCheckoutFields:function(){var e="",t=v();o.each(_,(function(n,o){n>0&&(e+="|"),e+=o+":"+t[o]}));var n="",a=m();o.each(u,(function(e,t){e>0&&(n+="|"),n+=t+":"+a[t]}));var i="",r=m(!0);o.each(u,(function(e,t){e>0&&(i+="|"),i+=t+":"+r[t]}));var s="",c=v(!0);o.each(_,(function(e,t){e>0&&(s+="|"),s+=t+":"+c[t]}));var d=function(){var e=new Array,t=new Date;return e.push(["00-01","01-02","02-03","03-04","04-05","05-06","06-07","07-08","08-09","09-10","10-11","11-12","12-13","13-14","14-15","15-16","16-17","17-18","18-19","19-20","20-21","21-22","22-23","23-24"][t.getHours()]),e.push(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][t.getDay()]),e.push(["January","February","March","April","May","June","July","August","September","October","November","December"][t.getMonth()]),e}(),l=Cookies.get("pys_landing_page"),p=Cookies.get("last_pys_landing_page"),f=Cookies.get("pysTrafficSource"),y=Cookies.get("last_pysTrafficSource"),g=null;g=o("body").hasClass("woocommerce-checkout")?o("form.woocommerce-checkout"):o("#edd_purchase_form");var b={pys_utm:e,pys_utm_id:n,pys_browser_time:d.join("|"),pys_landing:l,pys_source:f,pys_order_type:o(".wcf-optin-form").length>0?"wcf-optin":"normal",last_pys_landing:p,last_pys_source:y,last_pys_utm:s,last_pys_utm_id:i};Object.keys(b).forEach((function(e,t){g.append("<input type='hidden' name='"+e+"' value='"+b[e]+"' /> ")}))}}}(a),c=function(t){var a=["PageView","ViewContent","Search","AddToCart","AddToWishlist","InitiateCheckout","AddPaymentInfo","Purchase","Lead","Subscribe","CustomizeProduct","FindLocation","StartTrial","SubmitApplication","Schedule","Contact","Donate"],i=!1,r=t.gdpr.all_disabled_by_api||t.gdpr.facebook_disabled_by_api||t.gdpr.cookiebot_integration_enabled||t.gdpr.consent_magic_integration_enabled||t.gdpr.cookie_notice_integration_enabled||t.gdpr.cookie_law_info_integration_enabled;function d(o,i){if("function"==typeof window.pys_event_data_filter&&window.pys_disable_event_filter(o,"facebook"))return;var d=a.includes(o)?"track":"trackCustom",l=i.params,_={},u={};s.copyProperties(l,_);let p=function(o,a,i){let s=null;if(t.facebook.serverApiEnabled){if("woo_remove_from_cart"===o.e_id||"woo_add_to_cart_on_button_click"===o.e_id)(t.woo.hasOwnProperty("addToCartCatchMethod")&&"add_cart_js"===t.woo.addToCartCatchMethod||"woo_add_to_cart_on_button_click"!==o.e_id)&&(c.updateEventId(o.name),o.eventID=c.getEventId(o.name));else if(t.facebook.ajaxForServerEvent||r||o.delay>0||"static"!==o.type){o.eventID=e(36);var d={action:"pys_api_event",pixel:"facebook",event:a,data:i,ids:t.facebook.pixelIds,eventID:o.eventID,url:window.location.href};if(o.hasOwnProperty("woo_order")&&(d.woo_order=o.woo_order),o.hasOwnProperty("edd_order")&&(d.edd_order=o.edd_order),"PageView"==a){let e=parseInt(t.cookie_duration);var l=Date.now(),_=Math.floor(1e9+9e9*Math.random());timeoutDelay=0,o.delay>0&&(timeoutDelay=o.delay),Cookies.get("_fbp")||(timeoutDelay=100),n("fbclid")&&!Cookies.get("_fbc")&&(timeoutDelay=100),setTimeout((function(){Cookies.get("_fbp")||Cookies.set("_fbp","fb.1."+l+"."+_,{expires:e}),n("fbclid")&&!Cookies.get("_fbc")&&Cookies.set("_fbc","fb.1."+l+"."+n("fbclid"),{expires:e}),jQuery.ajax({type:"POST",url:t.ajaxUrl,data:d,headers:{"Cache-Control":"no-cache"},success:function(){}})}),timeoutDelay)}else jQuery.ajax({type:"POST",url:t.ajaxUrl,data:d,headers:{"Cache-Control":"no-cache"},success:function(){}})}s=o.eventID}return s}(i,o,_);"hCR"!==o&&(t.debug&&console.log("[Facebook] "+o,_,"eventID",p),null!=p&&(u.eventID=p),fbq(d,o,_,u))}return{tag:function(){return"facebook"},isEnabled:function(){return t.hasOwnProperty("facebook")},disable:function(){i=!1},loadPixel:function(){var e,n,o,a,r,c;!i&&this.isEnabled()&&s.consentGiven("facebook")&&(e=window,n=document,o="script",e.fbq||(a=e.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},e._fbq||(e._fbq=a),a.push=a,a.loaded=!0,a.version="2.0",a.agent="dvpixelyoursite",a.queue=[],(r=n.createElement(o)).async=!0,r.src="https://connect.facebook.net/en_US/fbevents.js",(c=n.getElementsByTagName(o)[0]).parentNode.insertBefore(r,c)),t.facebook.pixelIds.forEach((function(e){if(t.facebook.removeMetadata&&fbq("set","autoConfig",!1,e),t.gdpr.consent_magic_integration_enabled&&"undefined"!=typeof CS_Data)if(0===t.facebook.advancedMatching.length)fbq("init",e);else{var n=Cookies.get("cs_enabled_advanced_matching"+test_prefix);jQuery("#cs_enabled_advanced_matching"+test_prefix).length>0?"yes"==n?fbq("init",e,t.facebook.advancedMatching):fbq("init",e):fbq("init",e,t.facebook.advancedMatching)}else 0===t.facebook.advancedMatching.length?fbq("init",e):fbq("init",e,t.facebook.advancedMatching)})),i=!0,s.fireStaticEvents("facebook"))},fireEvent:function(e,t){return!(!i||!this.isEnabled()||(t.delay=t.delay||0,t.params=t.params||{},0===t.delay?d(e,t):setTimeout((function(e,t){d(e,t)}),1e3*t.delay,e,t),0))},onCommentEvent:function(e){this.fireEvent(e.name,e)},onDownloadEvent:function(e){this.fireEvent(e.name,e)},onFormEvent:function(e){this.fireEvent(e.name,e)},onWooAddToCartOnButtonEvent:function(e){if(t.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())){var n=t.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()];window.pysWooProductData.hasOwnProperty(e)&&window.pysWooProductData[e].hasOwnProperty("facebook")&&(n=s.copyProperties(n,{}),s.copyProperties(window.pysWooProductData[e].facebook.params,n.params),this.fireEvent(n.name,n))}},onWooAddToCartOnSingleEvent:function(e,n,a,i){if(window.pysWooProductData=window.pysWooProductData||[],t.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())){var r=s.clone(t.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);if(a!==s.PRODUCT_VARIABLE||t.facebook.wooVariableAsSimple||(e=parseInt(i.find('input[name="variation_id"]').val())),window.pysWooProductData.hasOwnProperty(e)&&window.pysWooProductData[e].hasOwnProperty("facebook")){s.copyProperties(window.pysWooProductData[e].facebook.params,r.params);var c=0;if(a===s.PRODUCT_GROUPED&&(i.find(".woocommerce-grouped-product-list .qty").each((function(t){var n=o(this).attr("name").replaceAll("quantity[","").replaceAll("]",""),a=parseInt(o(this).val());isNaN(a)&&(a=0);var i=window.pysWooProductData[e].facebook.grouped[n];0==a&&r.params.content_ids.forEach((function(e,t,n){e==i.content_id&&n.splice(t,1)})),r.params.hasOwnProperty("contents")&&r.params.contents.forEach((function(e,t,n){e.id==i.content_id&&(a>0?e.quantity=a:n.splice(t,1))})),c+=i.price*a})),0==c))return;if(t.woo.addToCartOnButtonValueEnabled&&"global"!==t.woo.addToCartOnButtonValueOption)if(a===s.PRODUCT_GROUPED)r.params.value=c;else if(a===s.PRODUCT_BUNDLE){var d=o(".bundle_form .bundle_data").data("bundle_form_data"),l=function(e){var t=0;return jQuery(".bundle_form .bundled_product").each((function(n){var o=jQuery(this).find(".cart").data("bundled_item_id"),a=e.prices[o],i=jQuery(this).find(".bundled_qty").val();jQuery(this).hasClass("bundled_item_optional")&&!jQuery(this).find(".bundled_product_optional_checkbox input").prop("checked")||(t+=a*i)})),t}(d);r.params.value=(parseInt(d.base_price)+l)*n}else r.params.value=r.params.value*n;r.params.hasOwnProperty("contents")&&a!==s.PRODUCT_GROUPED&&(r.params.contents[0].quantity=n),this.fireEvent(r.name,r)}}},onWooRemoveFromCartEvent:function(e){this.fireEvent(e.name,e)},onEddAddToCartOnButtonEvent:function(e,n,o){if(t.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag())){var a,i=s.clone(t.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]);if(window.pysEddProductData.hasOwnProperty(e)&&(a=n?e+"_"+n:e,window.pysEddProductData[e].hasOwnProperty(a)&&window.pysEddProductData[e][a].hasOwnProperty("facebook"))){s.copyProperties(window.pysEddProductData[e][a].facebook.params,i.params),t.edd.addToCartOnButtonValueEnabled&&"global"!==t.edd.addToCartOnButtonValueOption&&(i.params.value=i.params.value*o);var r=i.params.contents;r[0].quantity=o,i.params.contents=r,this.fireEvent(i.name,i)}}},onEddRemoveFromCartEvent:function(e){this.fireEvent(e.name,e)},onPageScroll:function(e){this.fireEvent(e.name,e)},onTime:function(e){this.fireEvent(e.name,e)},initEventIdCookies:function(t){var n={};n[t]=e(36),Cookies.set("pys_fb_event_id",JSON.stringify(n))},updateEventId:function(t){var n=Cookies.get("pys_fb_event_id");if(void 0===n)this.initEventIdCookies(t);else{var o=JSON.parse(n);o[t]=e(36),Cookies.set("pys_fb_event_id",JSON.stringify(o))}},getEventId:function(e){var t=Cookies.get("pys_fb_event_id");return void 0===t&&(this.initEventIdCookies(e),t=Cookies.get("pys_fb_event_id")),JSON.parse(t)[e]}}}(a),d=function(e){var t=!1;function n(t,n){if("function"!=typeof window.pys_event_data_filter||!window.pys_disable_event_filter(t,"ga")){var o=s.copyProperties(n,{});e.ga.trackingIds.forEach((function(n){var i=s.copyProperties(o,{}),r=function(e,t,n){if(delete n.page_title,delete n.event_url,delete n.landing_page,a(e))delete n.traffic_source,delete n.event_category,delete n.event_label,delete n.ecomm_prodid,delete n.ecomm_pagetype,delete n.ecomm_totalvalue,"search"===t&&(n.search=n.search_term,delete n.search_term,delete n.non_interaction,delete n.dynx_itemid,delete n.dynx_pagetype,delete n.dynx_totalvalue);else{switch(t){case"Comment":case"login":case"sign_up":case"EmailClick":case"TelClick":return{event_category:"Key Actions",event_action:t,non_interaction:n.non_interaction};case"Form":{let e={event_category:"Key Actions",event_action:t,non_interaction:n.non_interaction};var o=void 0!==n.form_class?"class: "+n.form_class:"";return""!=o&&(e.event_label=o),e}case"Download":return{event_category:"Key Actions",event_action:t,event_label:n.download_name,non_interaction:n.non_interaction};case"TimeOnPage":case"PageScroll":return{event_category:"Key Actions",event_action:t,event_label:document.title,non_interaction:n.non_interaction};case"search":return{event_category:"Key Actions",event_action:t,event_label:n.search_term,non_interaction:n.non_interaction}}delete n.post_type,delete n.post_id,delete n.plugin,delete n.user_role,delete n.cartlows,delete n.cartflows_flow,delete n.cartflows_step}return n}(n,t,i);!function(t,n,o){o.send_to=t,e.debug&&console.log("[Google Analytics #"+t+"] "+n,o),gtag("event",n,o)}(n,t,r)}))}}function a(e){return 0===e.indexOf("G")}return{tag:function(){return"ga"},isEnabled:function(){return e.hasOwnProperty("ga")},disable:function(){t=!1},loadPixel:function(){if(!t&&this.isEnabled()&&s.consentGiven("analytics")){s.loadGoogleTag(e.ga.trackingIds[0]);var n={link_attribution:e.ga.enhanceLinkAttr,anonymize_ip:e.ga.anonimizeIP};e.ga.crossDomainEnabled&&(n.linker={accept_incoming:e.ga.crossDomainAcceptIncoming,domains:e.ga.crossDomainDomains}),e.ga.trackingIds.forEach((function(t,o){n.debug_mode=e.ga.isDebugEnabled.includes("index_"+o),a(t)&&(e.ga.disableAdvertisingFeatures&&(n.allow_google_signals=!1),e.ga.disableAdvertisingPersonalization&&(n.allow_ad_personalization_signals=!1)),gtag("config",t,n)})),t=!0,s.fireStaticEvents("ga")}},fireEvent:function(e,o){return!(!t||!this.isEnabled()||(o.delay=o.delay||0,o.params=o.params||{},0===o.delay?n(e,o.params):setTimeout((function(e,t){n(e,t)}),1e3*o.delay,e,o.params),0))},onCommentEvent:function(e){this.fireEvent(e.name,e)},onDownloadEvent:function(e){this.fireEvent(e.name,e)},onFormEvent:function(e){this.fireEvent(e.name,e)},onWooAddToCartOnButtonEvent:function(t){if(e.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())){var n=s.clone(e.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);window.pysWooProductData.hasOwnProperty(t)&&window.pysWooProductData[t].hasOwnProperty("ga")&&(s.copyProperties(window.pysWooProductData[t].ga.params,n.params),this.fireEvent(n.name,n))}},onWooAddToCartOnSingleEvent:function(t,n,a,i){if(window.pysWooProductData=window.pysWooProductData||[],e.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())){var r=s.clone(e.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);if(a!==s.PRODUCT_VARIABLE||e.ga.wooVariableAsSimple||(t=parseInt(i.find('input[name="variation_id"]').val())),window.pysWooProductData.hasOwnProperty(t)&&window.pysWooProductData[t].hasOwnProperty("ga")){if(s.copyProperties(window.pysWooProductData[t].ga.params,r.params),a===s.PRODUCT_GROUPED){var c=0;if(i.find(".woocommerce-grouped-product-list .qty").each((function(e){var n=o(this).attr("name").replaceAll("quantity[","").replaceAll("]",""),a=parseInt(o(this).val());isNaN(a)&&(a=0);var i=window.pysWooProductData[t].ga.grouped[n];r.params.items.forEach((function(e,t,n){e.id==i.content_id&&(a>0?e.quantity=a:n.splice(t,1))})),c+=i.price*a})),e.woo.addToCartOnButtonValueEnabled&&"global"!==e.woo.addToCartOnButtonValueOption&&r.params.hasOwnProperty("ecomm_totalvalue")&&(r.params.ecomm_totalvalue=c),0==c)return}else r.params.items[0].quantity=n;e.woo.addToCartOnButtonValueEnabled&&"global"!==e.woo.addToCartOnButtonValueOption&&a!==s.PRODUCT_GROUPED&&r.params.hasOwnProperty("ecomm_totalvalue")&&(r.params.ecomm_totalvalue=r.params.items[0].price*n),this.fireEvent(r.name,r)}}},onWooRemoveFromCartEvent:function(e){this.fireEvent(e.name,e)},onEddAddToCartOnButtonEvent:function(t,n,o){if(e.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag())){var a,i=s.clone(e.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]);window.pysEddProductData.hasOwnProperty(t)&&(a=n?t+"_"+n:t,window.pysEddProductData[t].hasOwnProperty(a)&&window.pysEddProductData[t][a].hasOwnProperty("ga")&&(s.copyProperties(window.pysEddProductData[t][a].ga.params,i.params),i.params.items[0].quantity=o,this.fireEvent(i.name,i)))}},onEddRemoveFromCartEvent:function(e){this.fireEvent(e.name,e)},onPageScroll:function(e){this.fireEvent(e.name,e)},onTime:function(e){this.fireEvent(e.name,e)}}}(a);window.pys=window.pys||{},window.pys.Facebook=c,window.pys.Analytics=d,window.pys.Utils=s,o(document).ready((function(){if(o("#pys_late_event").length>0){var e=JSON.parse(o("#pys_late_event").attr("dir"));for(var n in e){var i={};i[e[n].e_id]=[e[n]],a.staticEvents.hasOwnProperty(n)?Object.assign(a.staticEvents[n],i):a.staticEvents[n]=i}}var r=s.setupPinterestObject(),l=s.setupBingObject();if(s.manageCookies(),s.setupGdprCallbacks(),a.dynamicEvents.hasOwnProperty("automatic_event_scroll")){var _=function(){var e=o(document).height()-o(window).height(),n=!1;if(a.dynamicEvents.hasOwnProperty("automatic_event_scroll"))for(var i=Object.keys(a.dynamicEvents.automatic_event_scroll),r=0;r<i.length;r++){var c=s.clone(a.dynamicEvents.automatic_event_scroll[i[r]]);Math.round(e*c.scroll_percent/100)<o(window).scrollTop()&&(s.copyProperties(s.getRequestParams(),c.params),t(i[r]).onPageScroll(c),n=!0)}n&&o(document).off("scroll",_)};o(document).on("scroll",_)}if(a.dynamicEvents.hasOwnProperty("automatic_event_time_on_page")){var u=Object.keys(a.dynamicEvents.automatic_event_time_on_page),p=a.dynamicEvents.automatic_event_time_on_page[u[0]].time_on_page;setTimeout((function(){for(var e=0;e<u.length;e++){var n=s.clone(a.dynamicEvents.automatic_event_time_on_page[u[e]]);s.copyProperties(s.getRequestParams(),n.params),t(u[e]).onTime(n)}}),1e3*p)}a.dynamicEvents.hasOwnProperty("automatic_event_download")&&o(document).onFirst("click",'a, button, input[type="button"], input[type="submit"]',(function(e){var n=o(this);if(a.dynamicEvents.hasOwnProperty("automatic_event_download")){var i=!1;if(n.is("a")){var r=n.attr("href");if("string"!=typeof r)return;r=r.trim();var c=s.getLinkExtension(r);if(c.length>0&&a.dynamicEvents.hasOwnProperty("automatic_event_download"))for(var d=Object.keys(a.dynamicEvents.automatic_event_download),l=0;l<d.length;l++){var _=s.clone(a.dynamicEvents.automatic_event_download[d[l]]);_.extensions.includes(c)&&("tiktok"==d[l]?t(d[l]).fireEvent(tikEvent.name,_):(a.enable_remove_download_url_param&&(r=r.split("?")[0]),_.params.download_url=r,_.params.download_type=c,_.params.download_name=s.getLinkFilename(r),t(d[l]).onDownloadEvent(_)),i=!0)}}if(i)return}})),o.each(a.triggerEventTypes,(function(e,t){o.each(t,(function(t,n){switch(e){case"url_click":break;case"css_click":s.setupCSSClickEvents(t,n);break;case"css_mouseover":s.setupMouseOverClickEvents(t,n);break;case"scroll_pos":s.setupScrollPosEvents(t,n);break;case"comment":s.setupCommentEvents(t,n)}}))})),a.woo.enabled&&(a.dynamicEvents.hasOwnProperty("woo_add_to_cart_on_button_click")&&a.woo.hasOwnProperty("addToCartCatchMethod")&&"add_cart_js"===a.woo.addToCartCatchMethod&&(o(".add_to_cart_button:not(.product_type_variable,.product_type_bundle,.single_add_to_cart_button)").on("click",(function(e){var t=o(this).data("product_id");void 0!==t&&(c.onWooAddToCartOnButtonEvent(t),d.onWooAddToCartOnButtonEvent(t),r.onWooAddToCartOnButtonEvent(t),l.onWooAddToCartOnButtonEvent(t))})),o("body").onFirst("click","button.single_add_to_cart_button,.single_add_to_cart_button",(function(e){var t=o(this);if(!t.hasClass("disabled")){var n=t.closest("form"),a=s.PRODUCT_SIMPLE;if(0!==n.length){var i,_;if(n.hasClass("variations_form")?a=s.PRODUCT_VARIABLE:n.hasClass("bundle_form")?a=s.PRODUCT_BUNDLE:n.hasClass("grouped_form")&&(a=s.PRODUCT_GROUPED),a===s.PRODUCT_GROUPED)_=1,i=parseInt(n.find('*[name="add-to-cart"]').val());else if(a===s.PRODUCT_VARIABLE)i=parseInt(n.find('*[name="add-to-cart"]').val()),(u=n.find('input[name="quantity"]')).length<=0&&(u=n.find('select[name="quantity"]')),_=parseInt(u.val());else{var u;i=parseInt(n.find('*[name="add-to-cart"]').val()),(u=n.find('input[name="quantity"]')).length<=0&&(u=n.find('select[name="quantity"]')),_=parseInt(u.val())}c.onWooAddToCartOnSingleEvent(i,_,a,n),d.onWooAddToCartOnSingleEvent(i,_,a,n),r.onWooAddToCartOnSingleEvent(i,_,a,!1,n),l.onWooAddToCartOnSingleEvent(i,_,a,!1,n)}}}))),a.dynamicEvents.hasOwnProperty("woo_remove_from_cart")&&o("body").on("click",a.woo.removeFromCartSelector,(function(e){var t=o(e.currentTarget).attr("href"),n=new RegExp("[\\?&]remove_item=([^&#]*)").exec(t);if(null!==n){var i=n[1];if(a.dynamicEvents.woo_remove_from_cart.hasOwnProperty(i)){var r=a.dynamicEvents.woo_remove_from_cart[i];s.fireEventForAllPixel("onWooRemoveFromCartEvent",r)}}}))),a.edd.enabled&&(a.dynamicEvents.hasOwnProperty("edd_add_to_cart_on_button_click")&&o("form.edd_download_purchase_form .edd-add-to-cart").on("click",(function(e){var t,n,a=o(this),i=a.closest("form"),s=a.data("variablePrice"),_=a.data("priceMode"),u=[],p=[];"yes"===s&&"multi"===_?(n=i.find('input[name="download_id"]').val(),o.each(i.find('input[name="edd_options[price_id][]"]:checked'),(function(e,t){u.push(n+"_"+o(t).val())})),o.each(u,(function(e,n){var o=n.split("_",2);void 0!==(t=i.find('input[name="edd_download_quantity_'+o[1]+'"]').val())?p.push(t):p.push(1)}))):"yes"===s&&"single"===_?(n=i.find('input[name="download_id"]').val(),u.push(n+"_"+i.find('input[name="edd_options[price_id][]"]:checked').val()),void 0!==(t=i.find('input[name="edd_download_quantity"]').val())?p.push(t):p.push(1)):(u.push(a.data("downloadId")),void 0!==(t=i.find('input[name="edd_download_quantity"]').val())?p.push(t):p.push(1)),o.each(u,(function(e,t){var n,o=parseInt(p[e]),a=t.toString().split("_",2);2===a.length&&(t=a[0],n=a[1]),c.onEddAddToCartOnButtonEvent(t,n,o),d.onEddAddToCartOnButtonEvent(t,n,o),r.onEddAddToCartOnButtonEvent(t,n,o),l.onEddAddToCartOnButtonEvent(t,n,o)}))})),a.dynamicEvents.hasOwnProperty("edd_remove_from_cart")&&o("form#edd_checkout_cart_form .edd_cart_remove_item_btn").on("click",(function(e){var t=o(this).attr("href");if(t){var n=t.substring(t.indexOf("=")+1).charAt(0);if(a.dynamicEvents.edd_remove_from_cart.hasOwnProperty(n)){var i=a.dynamicEvents.edd_remove_from_cart[n];s.fireEventForAllPixel("onEddRemoveFromCartEvent",i)}}}))),a.dynamicEvents.hasOwnProperty("automatic_event_comment")&&o("form.comment-form").on("submit",(function(){if(a.dynamicEvents.hasOwnProperty("automatic_event_comment"))for(var e=Object.keys(a.dynamicEvents.automatic_event_comment),n=0;n<e.length;n++){var o=s.clone(a.dynamicEvents.automatic_event_comment[e[n]]);s.copyProperties(s.getRequestParams(),o.params),t(e[n]).onCommentEvent(o)}})),a.dynamicEvents.hasOwnProperty("automatic_event_form")&&(o(document).onFirst("submit","form",(function(e){var n=o(this);if(!n.hasClass("comment-form")&&!n.hasClass("search-form")&&"adminbarsearch"!==n.attr("id")&&!(n.hasClass("woocommerce-product-search")||n.hasClass("cart")||n.hasClass("woocommerce-cart-form")||n.hasClass("woocommerce-shipping-calculator")||n.hasClass("checkout")||n.hasClass("checkout_coupon")||n.hasClass("edd_form")||n.hasClass("edd_download_purchase_form"))){var i={form_id:n.attr("id"),form_class:n.attr("class"),text:n.find('[type="submit"]').is("input")?n.find('[type="submit"]').val():n.find('[type="submit"]').text()};if(a.dynamicEvents.hasOwnProperty("automatic_event_form"))for(var r=Object.keys(a.dynamicEvents.automatic_event_form),c=0;c<r.length;c++){var d=s.clone(a.dynamicEvents.automatic_event_form[r[c]]);"tiktok"===r[c]?t(r[c]).fireEvent(d.name,d):(s.copyProperties(i,d.params),s.copyProperties(s.getRequestParams(),d.params),t(r[c]).onFormEvent(d))}}})),o(document).on("forminator:form:submit:success",(function(e){var n={form_id:o(e.target).find('input[name="form_id"]').val(),text:o(e.target).find(".forminator-button-submit").text()};if(a.dynamicEvents.hasOwnProperty("automatic_event_form"))for(var i=Object.keys(a.dynamicEvents.automatic_event_form),r=0;r<i.length;r++){var c=s.clone(a.dynamicEvents.automatic_event_form[i[r]]);s.copyProperties(n,c.params),s.copyProperties(s.getRequestParams(),c.params),t(i[r]).onFormEvent(c)}})),o(document).onFirst("nfFormSubmitResponse",(function(e,n){var o={form_id:n.response.data.form_id,text:n.response.data.settings.title};if(a.dynamicEvents.hasOwnProperty("automatic_event_form"))for(var i=Object.keys(a.dynamicEvents.automatic_event_form),r=0;r<i.length;r++){var c=a.dynamicEvents.automatic_event_form[i[r]];s.copyProperties(o,c.params),s.copyProperties(s.getRequestParams(),c.params),t(i[r]).onFormEvent(c)}}))),s.loadPixels(),s.isCheckoutPage()&&s.addCheckoutFields()}))}(jQuery,pysOptions);var n=function(e){var t,n,o=window.location.search.substring(1).split("&");for(n=0;n<o.length;n++)if((t=o[n].split("="))[0]===e)return void 0===t[1]||decodeURIComponent(t[1]);return!1}})();
dist/scripts/public.js CHANGED
@@ -1231,7 +1231,45 @@ if (!Array.prototype.includes) {
1231
  json['edd_order'] = allData.edd_order;
1232
  }
1233
 
1234
- if(allData.delay > 0) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1235
  jQuery.ajax( {
1236
  type: 'POST',
1237
  url: options.ajaxUrl,
@@ -1241,19 +1279,6 @@ if (!Array.prototype.includes) {
1241
  },
1242
  success: function(){},
1243
  });
1244
- } else {
1245
- setTimeout(function (json) {
1246
- jQuery.ajax({
1247
- type: 'POST',
1248
- url: options.ajaxUrl,
1249
- data: json,
1250
- headers: {
1251
- 'Cache-Control': 'no-cache'
1252
- },
1253
- success: function () {
1254
- },
1255
- });
1256
- }, 500, json);
1257
  }
1258
  }
1259
  }
@@ -2482,3 +2507,18 @@ function getPixelBySlag(slug) {
2482
  case "pinterest": return window.pys.Pinterest;
2483
  }
2484
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1231
  json['edd_order'] = allData.edd_order;
1232
  }
1233
 
1234
+ if(name == 'PageView') {
1235
+ let expires = parseInt(options.cookie_duration);
1236
+ var currentTimeInSeconds=Date.now();
1237
+ var randomNum = Math.floor(1000000000 + Math.random() * 9000000000);
1238
+ timeoutDelay = 0;
1239
+ if(allData.delay > 0)
1240
+ {
1241
+ timeoutDelay = allData.delay;
1242
+ }
1243
+ if(!Cookies.get('_fbp'))
1244
+ {
1245
+ timeoutDelay = 100;
1246
+ }
1247
+ if(getUrlParameter('fbclid') && !Cookies.get('_fbc'))
1248
+ {
1249
+ timeoutDelay = 100;
1250
+ }
1251
+ setTimeout(function(){
1252
+ if(!Cookies.get('_fbp'))
1253
+ {
1254
+ Cookies.set('_fbp','fb.1.'+currentTimeInSeconds+'.'+randomNum, { expires: expires })
1255
+ }
1256
+ if(getUrlParameter('fbclid') && !Cookies.get('_fbc'))
1257
+ {
1258
+ Cookies.set('_fbc', 'fb.1.'+currentTimeInSeconds+'.'+getUrlParameter('fbclid'), { expires: expires })
1259
+ }
1260
+ jQuery.ajax( {
1261
+ type: 'POST',
1262
+ url: options.ajaxUrl,
1263
+ data: json,
1264
+ headers: {
1265
+ 'Cache-Control': 'no-cache'
1266
+ },
1267
+ success: function(){},
1268
+ });
1269
+ },timeoutDelay)
1270
+ }
1271
+ else
1272
+ {
1273
  jQuery.ajax( {
1274
  type: 'POST',
1275
  url: options.ajaxUrl,
1279
  },
1280
  success: function(){},
1281
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
1282
  }
1283
  }
1284
  }
2507
  case "pinterest": return window.pys.Pinterest;
2508
  }
2509
  }
2510
+ var getUrlParameter = function getUrlParameter(sParam) {
2511
+ var sPageURL = window.location.search.substring(1),
2512
+ sURLVariables = sPageURL.split('&'),
2513
+ sParameterName,
2514
+ i;
2515
+
2516
+ for (i = 0; i < sURLVariables.length; i++) {
2517
+ sParameterName = sURLVariables[i].split('=');
2518
+
2519
+ if (sParameterName[0] === sParam) {
2520
+ return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
2521
+ }
2522
+ }
2523
+ return false;
2524
+ };
dist/styles/notice.css ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Notify styles */
2
+ .wp-core-ui .notice.pys-fixed-notice {
3
+ background: #fff;
4
+ border-left: 1px solid #c3c4c7;
5
+ border-left-width: 4px;
6
+ box-shadow: 0 1px 1px rgb(0 0 0 / 4%);
7
+ margin: 10px 0px 10px;
8
+ padding: 1px 12px;
9
+ }
10
+ .wp-core-ui .notice.pys-fixed-notice .notice_content {
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: space-between;
14
+ gap: 30px;
15
+
16
+ }
17
+ .wp-core-ui .notice.pys-fixed-notice:not(.notice-disable-dismiss){
18
+ padding-right: 100px;
19
+ }
20
+ .notice.pys-fixed-notice .notice-item {
21
+ padding-top: 15px;
22
+ }
23
+ .notice.pys-fixed-notice .notice-content .notice-item:last-of-type hr{
24
+ display: none;
25
+ }
26
+ .notice.pys-fixed-notice .notice-title {
27
+ font-weight: bold;
28
+ margin: 5px 0;
29
+ }
30
+ .notice.pys-fixed-notice.notice-color-orange
31
+ {
32
+ border-left-color: #D2714E;
33
+ }
34
+ .notice.pys-fixed-notice.notice-color-blue
35
+ {
36
+ border-left-color: #1B2B9A;
37
+ }
38
+ .notice.pys-fixed-notice.notice-color-green
39
+ {
40
+ border-left-color: #8bc34a;
41
+ }
42
+ .notice.pys-fixed-notice .notice-message p {
43
+ font-size: 1.2em;
44
+ margin: 0;
45
+ padding: 0;
46
+ }
47
+ .notice.pys-fixed-notice .notice-message {
48
+ display: flex;
49
+ justify-content: space-between;
50
+ align-items: center;
51
+ gap: 30px;
52
+ margin-bottom: 25px;
53
+ }
54
+ .pys-fixed-notice .logo-notice img {
55
+ max-width: 100%;
56
+ }
57
+ .pys-fixed-notice .logo-notice {
58
+ width: 100px;
59
+ flex: 0 0 100px;
60
+ }
61
+ .pys-fixed-notice .notice-content {
62
+ flex: 1;
63
+ }
64
+ .notice-disable-dismiss .notice-dismiss
65
+ {
66
+ display: none;
67
+ }
68
+ /*.pys-chain-fixed-notice .custom-dismiss-button
69
+ {
70
+ position: absolute;
71
+ top: 0;
72
+ right: 1px;
73
+ border: none;
74
+ margin: 0;
75
+ padding: 9px;
76
+ background: 0 0;
77
+ color: #787c82;
78
+ cursor: pointer;
79
+ }
80
+ .pys-chain-fixed-notice .custom-dismiss-button:before
81
+ {
82
+ display: none;
83
+ }
84
+ .pys-chain-fixed-notice .custom-dismiss-button .screen-reader-text, .pys-chain-fixed-notice .custom-dismiss-button .screen-reader-text span {
85
+ display: block;
86
+ width: auto;
87
+ height: auto;
88
+ color: #F19E38;
89
+ clip: unset;
90
+ -webkit-clip-path: none;
91
+ position: relative;
92
+ background-color: #F0F2F5;
93
+ border: 1px solid #bbdefb;
94
+ padding: 5px;
95
+ top: 0;
96
+ }*/
97
+ .pys-fixed-notice .bottom-chanel-link {
98
+ font-size: 1.2em;
99
+ margin: 30px 0;
100
+ }
101
+ .pys-fixed-notice a.notice-watch-link
102
+ {
103
+ color: #fff!important;
104
+ background-color: #ef7908!important;
105
+ border-color: #ef7908!important;
106
+ padding: 0.5rem 1rem!important;
107
+ font-size: 1.25rem;
108
+ line-height: 1.5;
109
+ border-radius: 0.3rem;
110
+ display: inline-block;
111
+ cursor: pointer;
112
+ font-weight: 500;
113
+ text-align: center;
114
+ white-space: nowrap;
115
+ vertical-align: middle;
116
+ -webkit-user-select: none;
117
+ -moz-user-select: none;
118
+ -ms-user-select: none;
119
+ user-select: none;
120
+ border: 1px solid transparent;
121
+ padding: 0.375rem 0.75rem;
122
+ font-size: 1rem;
123
+ line-height: 1.2;
124
+ border-radius: 0.25rem;
125
+ text-decoration: none;
126
+ transition: background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
127
+ }
128
+ .pys-fixed-notice a.notice-watch-link:hover {
129
+ color: #fff;
130
+ background-color: #ca6607;
131
+ border-color: #be6006;
132
+ }
133
+ .pys-fixed-notice a.notice-watch-link:focus, .pys-fixed-notice a.notice-watch-link:hover {
134
+ text-decoration: none!important;
135
+ }
136
+ .notice_opt_out_block {
137
+ padding: 30px;
138
+ padding-left: 132px;
139
+ padding-right: 0px;
140
+ display: flex;
141
+ align-items: center;
142
+ justify-content: space-between;
143
+ gap: 30px;
144
+ }
145
+ .opt_out_dismiss_button {
146
+ white-space: nowrap;
147
+ }
148
+ .opt_out_dismiss_button button {
149
+ color: #3c434a!important;
150
+ background-color: #F0F0F2!important;
151
+ border-color: #F0F0F2!important;
152
+ padding: 0.25rem 0.5rem!important;
153
+ display: inline-block;
154
+ cursor: pointer;
155
+ font-weight: 500;
156
+ text-align: center;
157
+ white-space: nowrap;
158
+ vertical-align: middle;
159
+ -webkit-user-select: none;
160
+ -moz-user-select: none;
161
+ -ms-user-select: none;
162
+ user-select: none;
163
+ border: 1px solid transparent;
164
+ font-size: 0.8rem;
165
+ line-height: 1.2;
166
+ border-radius: 0.25rem;
167
+ text-decoration: none;
168
+ transition: background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
169
+ }
170
+ @media (max-width: 600px) {
171
+ .wp-core-ui .notice.pys-fixed-notice:not(.notice-disable-dismiss) {
172
+ padding-right: 25px;
173
+ }
174
+ .pys-fixed-notice .logo-notice {
175
+ width: 35px;
176
+ flex: 0 0 35px;
177
+ }
178
+ .notice.pys-fixed-notice .notice-title {
179
+ font-size: 15px;
180
+ }
181
+ .pys-fixed-notice a.notice-watch-link {
182
+ font-size: 0.85rem;
183
+ }
184
+ .notice.pys-fixed-notice .notice-message {
185
+ flex-direction: column;
186
+ gap: 15px;
187
+ align-items: flex-start;
188
+ }
189
+ .notice.pys-fixed-notice .notice-message p {
190
+ font-size: 1em;
191
+ margin: 0;
192
+ padding: 0;
193
+ }
194
+ .pys-fixed-notice .bottom-chanel-link {
195
+ font-size: 1em;
196
+ margin: 10px 0;
197
+ }
198
+ .pys-optin-notice.pys-notice-wrapper .pys-notice-content {
199
+ flex-direction: column;
200
+ display: flex;
201
+ }
202
+ .pys-optin-notice.pys-notice-wrapper .pys-notice-content form
203
+ {
204
+ display: flex;
205
+ flex-direction: column;
206
+ }
207
+ .pys-notice-form-group:not(:last-child) {
208
+ margin-right: 0px;
209
+ margin-bottom: 10px;
210
+ }
211
+ .notice_opt_out_block {
212
+ padding-left: 15px;
213
+ padding-right: 15px;
214
+ flex-direction: column;
215
+ align-items: flex-start;
216
+ }
217
+ }
facebook-pixel-master.php CHANGED
@@ -4,16 +4,16 @@
4
  * Plugin Name: PixelYourSite
5
  * Plugin URI: http://www.pixelyoursite.com/
6
  * Description: No coding <strong>Meta Pixel (formerly Facebook Pixel), Facebook Converion API,</strong> and <strong>Google Analytics</strong> install. Track key actions with our Automated 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 paid add-on. The PRO version adds support for the Google Ads tag plus a lot of extra stuff. Full support for <strong>ConsentMagic.com</strong>.
7
- * Version: 9.2.0
8
  * Author: PixelYourSite
9
  * Author URI: http://www.pixelyoursite.com
10
  * License: GPLv3
11
  *
12
  * Requires at least: 4.4
13
- * Tested up to: 6.1
14
  *
15
  * WC requires at least: 2.6.0
16
- * WC tested up to: 6.8
17
  *
18
  * Text Domain: pys
19
  */
4
  * Plugin Name: PixelYourSite
5
  * Plugin URI: http://www.pixelyoursite.com/
6
  * Description: No coding <strong>Meta Pixel (formerly Facebook Pixel), Facebook Converion API,</strong> and <strong>Google Analytics</strong> install. Track key actions with our Automated 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 paid add-on. The PRO version adds support for the Google Ads tag plus a lot of extra stuff. Full support for <strong>ConsentMagic.com</strong>.
7
+ * Version: 9.2.1
8
  * Author: PixelYourSite
9
  * Author URI: http://www.pixelyoursite.com
10
  * License: GPLv3
11
  *
12
  * Requires at least: 4.4
13
+ * Tested up to: 6.3
14
  *
15
  * WC requires at least: 2.6.0
16
+ * WC tested up to: 7.0
17
  *
18
  * Text Domain: pys
19
  */
includes/class-events-manager.php CHANGED
@@ -34,9 +34,16 @@ class EventsManager {
34
 
35
  wp_register_script( 'js-cookie', PYS_FREE_URL . '/dist/scripts/js.cookie-2.1.3.min.js', array(), '2.1.3' );
36
  wp_enqueue_script( 'js-cookie' );
37
-
38
- wp_enqueue_script( 'pys', PYS_FREE_URL . '/dist/scripts/public.js',
39
- array( 'jquery', 'js-cookie', 'jquery-bind-first' ), PYS_FREE_VERSION );
 
 
 
 
 
 
 
40
 
41
  }
42
 
@@ -293,6 +300,9 @@ class EventsManager {
293
  if(!PYS()->getOption('enable_page_title_param')) {
294
  unset($data['params']['page_title']);
295
  }
 
 
 
296
 
297
  if($slug == EventsWoo::getSlug()) {
298
  if(!PYS()->getOption("enable_woo_category_name_param")) {
34
 
35
  wp_register_script( 'js-cookie', PYS_FREE_URL . '/dist/scripts/js.cookie-2.1.3.min.js', array(), '2.1.3' );
36
  wp_enqueue_script( 'js-cookie' );
37
+ if ( PYS()->getOption( 'сompress_front_js' )){
38
+ wp_enqueue_script( 'pys', PYS_FREE_URL . '/dist/scripts/public.bundle.js',
39
+ array( 'jquery', 'js-cookie', 'jquery-bind-first' ), PYS_FREE_VERSION );
40
+ }
41
+ else
42
+ {
43
+ wp_enqueue_script( 'pys', PYS_FREE_URL . '/dist/scripts/public.js',
44
+ array( 'jquery', 'js-cookie', 'jquery-bind-first' ), PYS_FREE_VERSION );
45
+ }
46
+
47
 
48
  }
49
 
300
  if(!PYS()->getOption('enable_page_title_param')) {
301
  unset($data['params']['page_title']);
302
  }
303
+ if(!PYS()->getOption('enable_post_category_param')) {
304
+ unset($data['params']['post_category']);
305
+ }
306
 
307
  if($slug == EventsWoo::getSlug()) {
308
  if(!PYS()->getOption("enable_woo_category_name_param")) {
includes/class-fixed-notices.php CHANGED
@@ -32,6 +32,7 @@ class NoticesFixed {
32
 
33
  add_action( 'admin_notices', [$this,'showNotices'] );
34
  add_action( 'wp_ajax_pys_fixed_notice_dismiss', [$this,'catchOnCloseNotice'] );
 
35
 
36
  }
37
 
@@ -43,22 +44,45 @@ class NoticesFixed {
43
  $this->isNeedToShow(adminGetFixedNotices(),(array)get_user_meta( $user_id, $this->dismissedKey,true ));
44
  }
45
 
46
-
47
- function catchOnCloseNotice() {
48
-
49
- if ( empty( $_REQUEST['nonce'] ) || ! wp_verify_nonce( $_REQUEST['nonce'], 'pys_fixed_notice_dismiss' ) ) {
50
  return;
51
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
- if ( empty( $_REQUEST['user_id'] ) || empty( $_REQUEST['addon_slug'] ) || empty( $_REQUEST['meta_key'] ) ) {
 
 
 
54
  return;
55
  }
56
- $userId = sanitize_text_field( $_REQUEST['user_id'] );
57
  $dismissedSlugs = (array)get_user_meta( $userId, $this->dismissedKey,true);
58
- $dismissedSlugs[] = sanitize_text_field( $_REQUEST['meta_key'] );
 
 
 
 
59
 
60
  // save dismissed notice
61
  update_user_meta($userId, $this->dismissedKey, $dismissedSlugs );
 
 
62
  }
63
 
64
  private function renderNotice($notice) {
@@ -74,29 +98,189 @@ class NoticesFixed {
74
  $user_id = get_current_user_id();
75
 
76
  ?>
77
- <div class="notice notice-info is-dismissible pys-fixed-notice" data-slug="<?=$notice['slug']?>">
78
- <p><?php echo $notice['message']; ?></p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  </div>
80
  <script type='application/javascript'>
81
- jQuery(document).on('click', '.pys-fixed-notice .notice-dismiss', function () {
 
82
  jQuery.ajax({
83
  url: ajaxurl,
 
 
84
  data: {
85
  action: 'pys_fixed_notice_dismiss',
86
- nonce: '<?php esc_attr_e( wp_create_nonce( 'pys_fixed_notice_dismiss' ) ); ?>',
87
  user_id: '<?php esc_attr_e( $user_id ); ?>',
88
  addon_slug: 'free',
89
- meta_key: jQuery(this).parents('.pys-fixed-notice').data('slug')
 
 
 
 
 
90
  }
91
  });
92
  });
93
  </script>
94
  <?php
95
  }
 
 
 
 
 
96
 
97
- private function isNeedToShow($notices,$showedNoticesSlug) {
98
- $activePlugins = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  if(isWooCommerceActive()) {
101
  $activePlugins[]='woo';
102
  }
@@ -106,21 +290,87 @@ class NoticesFixed {
106
  if(isEddActive()) {
107
  $activePlugins[]='edd';
108
  }
109
- foreach ($notices as $notice) {
 
 
110
  // check is notice has some plugin dependencies
111
- if( count($notice['plugins']) == 0
112
- || (count(array_intersect($notice['plugins'], $activePlugins)) == count($activePlugins)
113
- && count($notice['plugins']) == count($activePlugins))
114
  ) {
115
-
116
- // check is this notice was showed
117
- if(!in_array($notice['slug'],$showedNoticesSlug)) {
118
- $this->renderNotice($notice);
119
  }
 
120
  }
121
  }
 
 
 
 
122
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  }
125
 
126
  /**
32
 
33
  add_action( 'admin_notices', [$this,'showNotices'] );
34
  add_action( 'wp_ajax_pys_fixed_notice_dismiss', [$this,'catchOnCloseNotice'] );
35
+ add_action('wp_ajax_pys_fixed_notice_opt_dismiss', [$this,'allCloseNotice']);
36
 
37
  }
38
 
44
  $this->isNeedToShow(adminGetFixedNotices(),(array)get_user_meta( $user_id, $this->dismissedKey,true ));
45
  }
46
 
47
+ function allCloseNotice(){
48
+ require_once PYS_FREE_PATH . '/notices/fixed.php';
49
+ $notices = adminGetFixedNotices();
50
+ if ( empty( $_POST['user_id'] )) {
51
  return;
52
  }
53
+ $userId = sanitize_text_field( $_POST['user_id'] );
54
+ $dismissedSlugs = (array)get_user_meta( $userId, $this->dismissedKey,true);
55
+ foreach ($notices as $noticesGroup)
56
+ {
57
+ foreach ($noticesGroup['multiMessage'] as $noticesMessage) {
58
+ $dismissedSlugs[] = sanitize_text_field( $noticesMessage['slug'] );
59
+ }
60
+
61
+ }
62
+ $dismissedSlugs = array_unique($dismissedSlugs);
63
+ update_user_meta($userId, $this->dismissedKey, $dismissedSlugs );
64
+ echo json_encode($dismissedSlugs);
65
+ die();
66
+ }
67
 
68
+ function catchOnCloseNotice() {
69
+ require_once PYS_FREE_PATH . '/notices/fixed.php';
70
+ $notices = adminGetFixedNotices();
71
+ if ( empty( $_POST['user_id'] ) || empty( $_POST['addon_slug'] ) || empty( $_POST['meta_key'] ) ) {
72
  return;
73
  }
74
+ $userId = sanitize_text_field( $_POST['user_id'] );
75
  $dismissedSlugs = (array)get_user_meta( $userId, $this->dismissedKey,true);
76
+ foreach ($_POST['meta_key'] as $meta_key)
77
+ {
78
+ $dismissedSlugs[] = sanitize_text_field( $meta_key );
79
+ }
80
+
81
 
82
  // save dismissed notice
83
  update_user_meta($userId, $this->dismissedKey, $dismissedSlugs );
84
+ echo json_encode($this->whoIsNext($notices));
85
+ die();
86
  }
87
 
88
  private function renderNotice($notice) {
98
  $user_id = get_current_user_id();
99
 
100
  ?>
101
+ <div class="notice notice-info is-dismissible pys-promo-fixed-notice pys-fixed-notice <?php echo (isset($notice['enabelDismiss']) && $notice['enabelDismiss']==false)? 'notice-disable-dismiss' : '';?>" data-slug="<?=$notice['slug']?>">
102
+ <div class="logo-notice">
103
+ <img src="<?php echo PYS_FREE_URL; ?>/dist/images/logo-original.png" alt="plugin logo"/>
104
+ </div>
105
+ <div class="notice-content">
106
+ <div class="notice-item">
107
+ <?php if(isset($notice['title'])) : ?>
108
+ <div class="notice-title">
109
+ <span>
110
+ <?php echo $notice['title'];?>
111
+ </span>
112
+ </div>
113
+ <?php endif;?>
114
+ <?php if($notice['message']) : ?>
115
+ <div class="notice-message">
116
+ <p><?php echo $notice['message']; ?></p>
117
+ </div>
118
+ <?php endif;?>
119
+ </div>
120
+ </div>
121
+ <button type="button" class="notice-dismiss custom-dismiss-button"><span class="screen-reader-text">Dismiss</span></button>
122
  </div>
123
  <script type='application/javascript'>
124
+ jQuery(document).on('click', '.pys-promo-fixed-notice .notice-dismiss', function () {
125
+ _this = jQuery(this);
126
  jQuery.ajax({
127
  url: ajaxurl,
128
+ type: 'POST',
129
+ dataType: 'json',
130
  data: {
131
  action: 'pys_fixed_notice_dismiss',
 
132
  user_id: '<?php esc_attr_e( $user_id ); ?>',
133
  addon_slug: 'free',
134
+ meta_key: [jQuery(this).parents('.pys-promo-fixed-notice').data('slug')]
135
+ },
136
+ success: function (response)
137
+ {
138
+ console.log(response);
139
+ _this.closest('.pys-promo-fixed-notice').slideUp();
140
  }
141
  });
142
  });
143
  </script>
144
  <?php
145
  }
146
+ private function renderNoticeGroped($group)
147
+ {
148
+ if ( ! current_user_can( 'manage_pys' ) ) {
149
+ return;
150
+ }
151
 
152
+ $user_id = get_current_user_id();
153
+ if(isset($group['multiMessage'])):
154
+ ?>
155
+ <div class="notice notice-info is-dismissible pys-chain-fixed-notice pys-fixed-notice <?php echo isset($group['color'])? 'notice-color-'.$group['color']:'';?> <?php echo (isset($group['enabelDismiss']) && $group['enabelDismiss']==false)? 'notice-disable-dismiss' : '';?>" >
156
+ <div class="notice_content">
157
+ <?php if(isset($group['enabelLogo']) && $group['enabelLogo']!=false) :?>
158
+ <div class="logo-notice">
159
+ <img src="<?php echo PYS_FREE_URL; ?>/dist/images/logo-original.png" alt="plugin logo"/>
160
+ </div>
161
+ <?php endif;?>
162
+ <div class="notice-content">
163
+ <?php foreach ($group['multiMessage'] as $notice) :
164
+ if ( ! $notice ) {
165
+ return;
166
+ }
167
+ ?>
168
+
169
+ <div class="notice-item" data-slug="<?=$notice['slug']?>">
170
+ <?php if(isset($notice['title']) && $notice['title'] != '') : ?>
171
+ <div class="notice-title">
172
+ <span>
173
+ <?php echo $notice['title'];?>
174
+ </span>
175
+ </div>
176
+ <?php endif;?>
177
+ <?php if(isset($notice['message']) && $notice['message'] != '') : ?>
178
+ <div class="notice-message">
179
+ <p><?php echo $notice['message']; ?></p>
180
+ <?php if((isset($notice['button_text']) && isset($notice['button_url'])) && ($notice['button_text'] != '' && $notice['button_url'] != '')) : ?>
181
+ <a class="notice-watch-link" href="<?= $notice['button_url']?>" target="_blank"><?= $notice['button_text']?></a>
182
+ <?php endif;?>
183
+ </div>
184
+ <?php endif;?>
185
+ <hr>
186
+ </div>
187
+
188
+ <?php endforeach;?>
189
+ <?php if(isset($group['enabelYoutubeLink']) && $group['enabelYoutubeLink']!=false) :?>
190
+ <div class="bottom-chanel-link">
191
+ <span>Improve your tracking with our video tips: <a href="https://www.youtube.com/channel/UCnie2zvwAjTLz9B4rqvAlFQ?sub_confirmation=1" target="_blank">Subscribe to our YouTube channel</a></span>
192
+ </div>
193
+ <?php endif;?>
194
+ </div>
195
+
196
+ <button type="button" class="notice-dismiss custom-dismiss-button"><span class="screen-reader-text">Dismiss</span></button>
197
+ </div>
198
+ <?php if(isset($group['optoutEnabel']) && $group['optoutEnabel']!=false) : ?>
199
+ <div class="notice_opt_out_block">
200
+ <div class="opt_out_message">
201
+ <span><?php echo $group['optoutMessage'];?></span>
202
+ </div>
203
+ <div class="opt_out_dismiss_button"><button><?php echo $group['optoutButtonText'];?></button></div>
204
+ </div>
205
+ <?php endif;?>
206
+ </div>
207
 
208
+ <?php endif;?>
209
+ <script type='application/javascript'>
210
+ jQuery(document).on('click','.opt_out_dismiss_button button', function (e){
211
+ e.preventDefault();
212
+ _this = jQuery(this);
213
+ jQuery.ajax({
214
+ url: ajaxurl,
215
+ type: 'POST',
216
+ dataType: 'json',
217
+ data: {
218
+ action: 'pys_fixed_notice_opt_dismiss',
219
+ user_id: '<?php esc_attr_e( $user_id ); ?>',
220
+ addon_slug: 'pro'
221
+ },
222
+ success: function (response)
223
+ {
224
+ _this.closest('.pys-chain-fixed-notice').slideUp();
225
+ }
226
+ });
227
+ });
228
+ jQuery(document).on('click', '.pys-chain-fixed-notice .notice-watch-link', function (e) {
229
+ _this = jQuery(this);
230
+ jQuery.ajax({
231
+ url: ajaxurl,
232
+ type: 'POST',
233
+ dataType: 'json',
234
+ data: {
235
+ action: 'pys_fixed_notice_dismiss',
236
+ user_id: '<?php esc_attr_e( $user_id ); ?>',
237
+ addon_slug: 'free',
238
+ meta_key: [_this.closest('.notice-item').data('slug')]
239
+ },
240
+ success: function (response)
241
+ {
242
+ console.log(response);
243
+ _this.closest('.notice-item').addClass('closed-notice');
244
+ _this.closest('.notice-item').slideUp();
245
+ if(_this.closest('.pys-chain-fixed-notice').find('.notice-item').length == _this.closest('.pys-chain-fixed-notice').find('.notice-item.closed-notice').length)
246
+ {
247
+ _this.closest('.pys-chain-fixed-notice').slideUp();
248
+ }
249
+ }
250
+ });
251
+ });
252
+ </script>
253
+ <script type='application/javascript'>
254
+ jQuery(document).on('click', '.pys-chain-fixed-notice .notice-dismiss', function () {
255
+ var array_notice = [];
256
+ jQuery(this).closest('.pys-chain-fixed-notice').find('.notice-item').each(function (){
257
+ array_notice.push(jQuery(this).data('slug'));
258
+ })
259
+ _this = jQuery(this);
260
+ jQuery.ajax({
261
+ url: ajaxurl,
262
+ type: 'POST',
263
+ dataType: 'json',
264
+ data: {
265
+ action: 'pys_fixed_notice_dismiss',
266
+ user_id: '<?php esc_attr_e( $user_id ); ?>',
267
+ addon_slug: 'free',
268
+ meta_key: array_notice
269
+ },
270
+ success: function (response)
271
+ {
272
+ console.log(response);
273
+ console.log(_this.closest('.pys-chain-fixed-notice'));
274
+ _this.closest('.pys-chain-fixed-notice').slideUp();
275
+ },
276
+ });
277
+ });
278
+ </script>
279
+ <?php
280
+ }
281
+ private function isNeedToShow($noticeGroups,$showedNoticesSlug) {
282
+ $activePlugins = [];
283
+ $grouped_notice_by_multimessage = array();
284
  if(isWooCommerceActive()) {
285
  $activePlugins[]='woo';
286
  }
290
  if(isEddActive()) {
291
  $activePlugins[]='edd';
292
  }
293
+
294
+ foreach ($noticeGroups as $keyGroup => $noticeGroup) {
295
+
296
  // check is notice has some plugin dependencies
297
+ if( isset($noticeGroup['plugins']) && (count($noticeGroup['plugins']) == 0
298
+ || (count(array_intersect($noticeGroup['plugins'], $activePlugins)) == count($activePlugins)
299
+ && count($noticeGroup['plugins']) == count($activePlugins)))
300
  ) {
301
+ if(isset($noticeGroup['type']) && $noticeGroup['type'] == 'promo'){
302
+ if(!in_array($noticeGroup['slug'],$showedNoticesSlug)) {
303
+ $this->renderNotice($noticeGroup);
304
+ }
305
  }
306
+
307
  }
308
  }
309
+
310
+ $this->renderNoticeGroped($this->whoIsNext($noticeGroups));
311
+
312
+
313
  }
314
+ private function whoIsNext($noticeGroups) {
315
+ $minOrderBlock = 999999;
316
+ $user_id = get_current_user_id();
317
+ $noticeBlock = array();
318
+ foreach ($noticeGroups as $keyGroup => $noticeGroup) {
319
+ if(isset($noticeGroup['type']) && $noticeGroup['type'] == 'event chain')
320
+ {
321
+ $paramGroup = $noticeGroup;
322
+ unset($paramGroup['multiMessage']);
323
+ $noticeBlock[$noticeGroup['order']] = $paramGroup;
324
+ foreach ($noticeGroup['multiMessage'] as $notice){
325
+ if(!in_array($notice['slug'], (array)get_user_meta( $user_id, $this->dismissedKey,true ))) {
326
+ $noticeBlock[$noticeGroup['order']]['multiMessage'][] = $notice;
327
+ }
328
+ }
329
+ }
330
+ }
331
 
332
+ foreach ($noticeBlock as $block)
333
+ {
334
+ if(($block['order'] <= $minOrderBlock) && isset($block['multiMessage'])){
335
+ $minOrderBlock = $block['order'];
336
+ }
337
+ }
338
+ if(get_user_meta($user_id, 'free_next_chain_notice', true) != $minOrderBlock)
339
+ {
340
+
341
+ if(get_user_meta($user_id, 'free_next_chain_notice', true) < $minOrderBlock && $minOrderBlock != 999999)
342
+ {
343
+ update_user_meta($user_id, 'free_expiration_chain_notice_dismissed_at', time() + $this->convertTimeToSeconds(isset($noticeBlock[$minOrderBlock]['wait']) ? $noticeBlock[$minOrderBlock]['wait'] : 24, 'hours'));
344
+ }
345
+ else if(get_user_meta($user_id, 'free_next_chain_notice', true) > $minOrderBlock && $minOrderBlock != 999999)
346
+ {
347
+ update_user_meta($user_id, 'free_expiration_chain_notice_dismissed_at', time() + $this->convertTimeToSeconds(0, 'seconds'));
348
+ }
349
+ update_user_meta($user_id, 'free_next_chain_notice', $minOrderBlock);
350
+
351
+ }
352
+ if(isset($noticeBlock[$minOrderBlock]) && (get_user_meta($user_id, 'free_next_chain_notice', true) == $minOrderBlock && time() >= get_user_meta($user_id, 'free_expiration_chain_notice_dismissed_at', true)))
353
+ {
354
+
355
+ return $noticeBlock[$minOrderBlock];
356
+ }
357
+
358
+ }
359
+ private function convertTimeToSeconds($timeValue = 24, $type = 'hours')
360
+ {
361
+ switch ($type){
362
+ case 'hours':
363
+ $time = $timeValue * 60 * 60;
364
+ break;
365
+ case 'minute':
366
+ $time = $timeValue * 60;
367
+ break;
368
+ case 'seconds':
369
+ $time = $timeValue;
370
+ break;
371
+ }
372
+ return $time;
373
+ }
374
  }
375
 
376
  /**
includes/class-pys.php CHANGED
@@ -62,7 +62,6 @@ final class PYS extends Settings implements Plugin {
62
  add_action( 'admin_menu', array( $this, 'adminMenu' ) );
63
  add_action( 'admin_enqueue_scripts', array( $this, 'adminEnqueueScripts' ) );
64
  add_action( 'admin_notices', 'PixelYourSite\adminRenderNotices' );
65
- add_action( 'admin_notices', 'PixelYourSite\adminRenderPromoNotice' );
66
  add_action( 'admin_init', array( $this, 'adminProcessRequest' ), 11 );
67
 
68
  // run Events Manager
@@ -178,7 +177,7 @@ final class PYS extends Settings implements Plugin {
178
  * @param \WP_User $user
179
  */
180
  function userLogin($user_login, $user) {
181
- add_user_meta($user->ID,'pys_just_login',true);
182
  }
183
 
184
  public function userRegisterHandler( $user_id ) {
@@ -337,7 +336,7 @@ final class PYS extends Settings implements Plugin {
337
  }
338
 
339
  public function adminEnqueueScripts() {
340
-
341
  if ( in_array( getCurrentAdminPage(), $this->adminPagesSlugs ) ) {
342
 
343
 
62
  add_action( 'admin_menu', array( $this, 'adminMenu' ) );
63
  add_action( 'admin_enqueue_scripts', array( $this, 'adminEnqueueScripts' ) );
64
  add_action( 'admin_notices', 'PixelYourSite\adminRenderNotices' );
 
65
  add_action( 'admin_init', array( $this, 'adminProcessRequest' ), 11 );
66
 
67
  // run Events Manager
177
  * @param \WP_User $user
178
  */
179
  function userLogin($user_login, $user) {
180
+ update_user_meta($user->ID,'pys_just_login',true);
181
  }
182
 
183
  public function userRegisterHandler( $user_id ) {
336
  }
337
 
338
  public function adminEnqueueScripts() {
339
+ wp_enqueue_style( 'pys_notice', PYS_FREE_URL . '/dist/styles/notice.css', array(), PYS_FREE_VERSION );
340
  if ( in_array( getCurrentAdminPage(), $this->adminPagesSlugs ) ) {
341
 
342
 
includes/functions-promo-notices.php CHANGED
@@ -62,19 +62,13 @@ function adminGetCurrentPromoNotice() {
62
  // clean installation
63
 
64
  /** @noinspection PhpIncludeInspection */
65
- require_once PYS_FREE_PATH . '/notices/0_clean.php';
66
-
67
- // remember set name
68
- update_user_meta( $user_id, 'pys_free_current_promo_notices_set', '0_clean' );
69
 
70
  } else {
71
  // update from pre 7.x
72
 
73
  /** @noinspection PhpIncludeInspection */
74
- require_once PYS_FREE_PATH . '/notices/1_from_pre_7x.php';
75
-
76
- // remember set name
77
- update_user_meta( $user_id, 'pys_free_current_promo_notices_set', '1_from_pre_7x' );
78
 
79
  }
80
 
62
  // clean installation
63
 
64
  /** @noinspection PhpIncludeInspection */
65
+
 
 
 
66
 
67
  } else {
68
  // update from pre 7.x
69
 
70
  /** @noinspection PhpIncludeInspection */
71
+
 
 
 
72
 
73
  }
74
 
includes/logger/class-pys-logger.php CHANGED
@@ -86,6 +86,9 @@ class PYS_Logger
86
 
87
  if ( $file ) {
88
  if ( ! file_exists( $file ) ) {
 
 
 
89
  $temphandle = @fopen( $file, 'w+' ); // @codingStandardsIgnoreLine.
90
  if ( is_resource( $temphandle ) ) {
91
  @fclose( $temphandle ); // @codingStandardsIgnoreLine.
86
 
87
  if ( $file ) {
88
  if ( ! file_exists( $file ) ) {
89
+ if(!is_dir(trailingslashit( PYS_FREE_PATH ).'logs/')) {
90
+ mkdir(trailingslashit( PYS_FREE_PATH ).'logs/', 0777, true);
91
+ }
92
  $temphandle = @fopen( $file, 'w+' ); // @codingStandardsIgnoreLine.
93
  if ( is_resource( $temphandle ) ) {
94
  @fclose( $temphandle ); // @codingStandardsIgnoreLine.
includes/options_defaults.json CHANGED
@@ -97,7 +97,7 @@
97
  "enable_user_role_param":true,
98
  "enable_page_title_param":true,
99
  "enable_post_type_param": true,
100
-
101
  "enable_woo_category_name_param": true,
102
  "enable_woo_num_items_param": true,
103
  "enable_woo_tags_param":true,
97
  "enable_user_role_param":true,
98
  "enable_page_title_param":true,
99
  "enable_post_type_param": true,
100
+ "enable_post_category_param": true,
101
  "enable_woo_category_name_param": true,
102
  "enable_woo_num_items_param": true,
103
  "enable_woo_tags_param":true,
includes/options_fields.json CHANGED
@@ -92,6 +92,9 @@
92
  "enable_user_role_param":"checkbox",
93
  "enable_page_title_param":"checkbox",
94
  "enable_post_type_param": "checkbox",
 
 
 
95
 
96
  "enable_woo_category_name_param": "checkbox",
97
  "enable_woo_num_items_param": "checkbox",
92
  "enable_user_role_param":"checkbox",
93
  "enable_page_title_param":"checkbox",
94
  "enable_post_type_param": "checkbox",
95
+ "enable_post_category_param": "checkbox",
96
+ "сompress_front_js": "checkbox",
97
+
98
 
99
  "enable_woo_category_name_param": "checkbox",
100
  "enable_woo_num_items_param": "checkbox",
includes/views/html-main-general.php CHANGED
@@ -243,10 +243,7 @@ if ( ! defined( 'ABSPATH' ) ) {
243
  <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>
244
  <p><a href="https://www.youtube.com/watch?v=kEp5BDg7dP0" target="_blank">How to fire EVENTS with PixelYourSite (22:28) - watch now</a></p>
245
  <p><a href="https://www.youtube.com/watch?v=zkb67djRnd0" target="_blank">FIX IT: PixelYourSite high number of admin-ajax requests (9:04) - watch now</a></p>
246
- <p><a href="https://www.youtube.com/watch?v=EvzGMAvBnbs" target="_blank">
247
- How to create Meta (Facebook) Custom Audiences & Lookalikes based on Events & Parameters (21:53) - watch now
248
- </a>
249
- </p>
250
  <p>
251
  <a href="https://www.youtube.com/watch?v=w97FATUy7ok" target="_blank">
252
  How to configure Custom Conversions on Meta (Facebook) based on Events & Parameters (11:03) - watch now
@@ -257,6 +254,8 @@ if ( ! defined( 'ABSPATH' ) ) {
257
  How to run A/B tests with Google Optimize and GA4 (6:07)
258
  </a>
259
  </p>
 
 
260
  </div>
261
  </div>
262
  <div class="row">
@@ -736,6 +735,13 @@ if ( ! defined( 'ABSPATH' ) ) {
736
  <hr>
737
  </div>
738
  </div>
 
 
 
 
 
 
 
739
  <div class="row mt-3">
740
  <div class="col-12">
741
  <?php PYS()->render_switcher_input("enable_post_id_param");?>
@@ -863,11 +869,32 @@ if ( ! defined( 'ABSPATH' ) ) {
863
  </div>
864
  </div>
865
 
866
- <div class="row">
867
  <div class="col">
868
  <?php PYS()->render_switcher_input( 'enable_remove_download_url_param' ); ?>
869
  <h4 class="switcher-label">Remove download_url parameters.</h4>
870
- <hr/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
871
  </div>
872
  </div>
873
 
243
  <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>
244
  <p><a href="https://www.youtube.com/watch?v=kEp5BDg7dP0" target="_blank">How to fire EVENTS with PixelYourSite (22:28) - watch now</a></p>
245
  <p><a href="https://www.youtube.com/watch?v=zkb67djRnd0" target="_blank">FIX IT: PixelYourSite high number of admin-ajax requests (9:04) - watch now</a></p>
246
+ <p><a href="https://www.youtube.com/watch?v=EvzGMAvBnbs" target="_blank">How to create Meta (Facebook) Custom Audiences & Lookalikes based on Events & Parameters (21:53) - watch now</a></p>
 
 
 
247
  <p>
248
  <a href="https://www.youtube.com/watch?v=w97FATUy7ok" target="_blank">
249
  How to configure Custom Conversions on Meta (Facebook) based on Events & Parameters (11:03) - watch now
254
  How to run A/B tests with Google Optimize and GA4 (6:07)
255
  </a>
256
  </p>
257
+ <p><a href="https://www.youtube.com/watch?v=snUKcsTbvCk" target="_blank">Improve META (Facebook) EMQ score
258
+ with form automatic data detection (11:48) - watch now</a></p>
259
  </div>
260
  </div>
261
  <div class="row">
735
  <hr>
736
  </div>
737
  </div>
738
+ <div class="row">
739
+ <div class="col">
740
+ <?php PYS()->render_switcher_input('enable_post_category_param'); ?>
741
+ <h4 class="switcher-label">post_category</h4>
742
+ <hr>
743
+ </div>
744
+ </div>
745
  <div class="row mt-3">
746
  <div class="col-12">
747
  <?php PYS()->render_switcher_input("enable_post_id_param");?>
869
  </div>
870
  </div>
871
 
872
+ <div class="row mb-3">
873
  <div class="col">
874
  <?php PYS()->render_switcher_input( 'enable_remove_download_url_param' ); ?>
875
  <h4 class="switcher-label">Remove download_url parameters.</h4>
876
+
877
+ </div>
878
+ </div>
879
+ <div class="row mb-3">
880
+ <div class="col">
881
+ <div class="form-inline">
882
+ <?php PYS()->render_switcher_input('сompress_front_js'); ?>
883
+ <h4 class="switcher-label">Compress frontend js</h4>
884
+ </div>
885
+
886
+ <small class="mt-1">Compress JS files (please test all your events if you enable this option because it can create conflicts with various caches).</small>
887
+ </div>
888
+ </div>
889
+ <div class="row">
890
+ <div class="col">
891
+ <?php renderDummySwitcher(false); ?>
892
+ <h4 class="switcher-label">Advanced user-data detection <a href="https://www.youtube.com/watch?v=snUKcsTbvCk" target="_blank">Watch video</a></h4>
893
+ <?php renderProBadge(); ?>
894
+ <small class="mt-1 d-block">
895
+ The plugin will try to detect user-related data like email, phone, first name, or last name and use it for subsequent Meta CAPI events personal parameters, and Meta browser events Advanced Matching. It works with most WordPress forms (email, phone number) and WooCommerce orders.
896
+ </small>
897
+ <hr>
898
  </div>
899
  </div>
900
 
modules/facebook/PYSServerEventHelper.php CHANGED
@@ -178,13 +178,32 @@ class ServerEventHelper {
178
  if($order->get_billing_postcode()) {
179
  $userData->setZipCode($order->get_billing_postcode());
180
  }
181
- $userData->setCountryCode(strtolower($order->get_billing_country()));
182
- $userData->setEmail($order->get_billing_email());
183
- $userData->setPhone($order->get_billing_phone());
184
- $userData->setFirstName($order->get_billing_first_name());
185
- $userData->setLastName($order->get_billing_last_name());
186
- $userData->setCity($order->get_billing_city());
187
- $userData->setState($order->get_billing_state());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
  } else {
190
  if($order->billing_postcode) {
@@ -214,8 +233,11 @@ class ServerEventHelper {
214
  $payment_id = (int) edd_get_purchase_id_by_key( $payment_key );
215
  }
216
  $user_info = edd_get_payment_meta_user_info($payment_id);
 
 
 
 
217
 
218
- $userData->setEmail(edd_get_payment_user_email($payment_id));
219
 
220
  if(isset($user_info['first_name']))
221
  $userData->setFirstName($user_info['first_name']);
178
  if($order->get_billing_postcode()) {
179
  $userData->setZipCode($order->get_billing_postcode());
180
  }
181
+ if($order->get_billing_country()) {
182
+ $userData->setCountryCode(strtolower($order->get_billing_country()));
183
+ }
184
+ if($order->get_billing_email()) {
185
+ $userData->setEmail($order->get_billing_email());
186
+ }
187
+
188
+ if($order->get_billing_phone()) {
189
+ $userData->setPhone($order->get_billing_phone());
190
+ }
191
+
192
+ if($order->get_billing_first_name()) {
193
+ $userData->setFirstName($order->get_billing_first_name());
194
+ }
195
+
196
+ if($order->get_billing_last_name()) {
197
+ $userData->setLastName($order->get_billing_last_name());
198
+ }
199
+
200
+ if($order->get_billing_city()) {
201
+ $userData->setCity($order->get_billing_city());
202
+ }
203
+
204
+ if($order->get_billing_state()) {
205
+ $userData->setState($order->get_billing_state());
206
+ }
207
 
208
  } else {
209
  if($order->billing_postcode) {
233
  $payment_id = (int) edd_get_purchase_id_by_key( $payment_key );
234
  }
235
  $user_info = edd_get_payment_meta_user_info($payment_id);
236
+ $email = edd_get_payment_user_email($payment_id);
237
+ if($email) {
238
+ $userData->setEmail($email);
239
+ }
240
 
 
241
 
242
  if(isset($user_info['first_name']))
243
  $userData->setFirstName($user_info['first_name']);
notices/0_clean.php DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
-
3
- namespace PixelYourSite;
4
-
5
- if ( ! defined( 'ABSPATH' ) ) {
6
- exit; // Exit if accessed directly.
7
- }
8
-
9
- function adminGetPromoNoticesContent() {
10
- return [
11
- 'woo' => [
12
-
13
- ],
14
- 'edd' => [
15
-
16
-
17
-
18
- ],
19
- 'no_woo_no_edd' => [
20
-
21
-
22
- ],
23
-
24
- 'next' => '8_0_3'
25
-
26
- ];
27
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
notices/1_from_pre_7x.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
-
3
- namespace PixelYourSite;
4
-
5
- if ( ! defined( 'ABSPATH' ) ) {
6
- exit; // Exit if accessed directly.
7
- }
8
-
9
- function adminGetPromoNoticesContent() {
10
- return [
11
- 'woo' => [
12
-
13
- ],
14
- 'edd' => [
15
-
16
- ],
17
- 'no_woo_no_edd' => [
18
-
19
- ],
20
-
21
- 'next' => '8_0_3'
22
-
23
- ];
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
notices/7_1_0.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
-
3
- namespace PixelYourSite;
4
-
5
- if ( ! defined( 'ABSPATH' ) ) {
6
- exit; // Exit if accessed directly.
7
- }
8
-
9
- function adminGetPromoNoticesContent() {
10
- return [
11
- 'woo' => [
12
-
13
- ],
14
- 'edd' => [
15
-
16
- ],
17
- 'no_woo_no_edd' => [
18
-
19
- ],
20
-
21
- 'next' => '8_0_3'
22
-
23
- ];
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
notices/7_1_8.php DELETED
@@ -1,59 +0,0 @@
1
- <?php
2
-
3
- namespace PixelYourSite;
4
-
5
- if ( ! defined( 'ABSPATH' ) ) {
6
- exit; // Exit if accessed directly.
7
- }
8
-
9
- function adminGetPromoNoticesContent() {
10
- return [
11
- 'woo' => [
12
-
13
- [
14
- 'disabled' => false,
15
- // 'from' => 1,
16
- // 'to' => 2,
17
- 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
18
- </br></br>
19
- How to verify your domain on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
20
- </br></br>
21
- Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a>
22
- </br></br>
23
- Add the TikTok Tag with <a href="https://www.pixelyoursite.com/tiktok-tag-pixelyoursite" target="_blank">PixelYourSite Professional</a>.'
24
- ],
25
-
26
-
27
- ],
28
- 'edd' => [
29
-
30
- [
31
- 'disabled' => false,
32
- // 'from' => 0,
33
- // 'to' => 1,
34
- 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
35
- </br></br>
36
- How to verify your domain on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
37
- </br></br>
38
- Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a>
39
- </br></br>
40
- Add the TikTok Tag with <a href="https://www.pixelyoursite.com/tiktok-tag-pixelyoursite" target="_blank">PixelYourSite Professional</a>.'
41
- ],
42
-
43
- ],
44
- 'no_woo_no_edd' => [
45
-
46
- [
47
- 'disabled' => false,
48
- // 'from' => 0,
49
- // 'to' => 1,
50
- 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
51
- </br></br>
52
- How to verify your domain on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
53
- </br></br>
54
- Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a></br></br>'
55
- ],
56
-
57
- ],
58
- ];
59
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
notices/8_0_3.php DELETED
@@ -1,56 +0,0 @@
1
- <?php
2
-
3
- namespace PixelYourSite;
4
-
5
- if ( ! defined( 'ABSPATH' ) ) {
6
- exit; // Exit if accessed directly.
7
- }
8
-
9
- function adminGetPromoNoticesContent() {
10
- return [
11
- 'woo' => [
12
-
13
- [
14
- 'disabled' => false,
15
- // 'from' => 1,
16
- // 'to' => 2,
17
- 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>How to find what WooCommerce products your Meta campaigns sold: <a href="https://www.youtube.com/watch?v=b-eYdx9QK0Q" target="_blank">Watch Video</a>
18
- </br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem?utm_source=free-plugin-notice-aem-link-woo&utm_medium=free-plugin-notice-aem-link-woo&utm_campaign=free-plugin-notice-aem-link-woo&utm_content=free-plugin-notice-aem-link-woo&utm_term=free-plugin-notice-aem-link-woo" target="_blank">Click here</a>
19
- </br></br>How to verify your domain on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook?utm_source=free-plugin-notice-verifydomain-woo&utm_medium=free-plugin-notice-verifydomain-woo&utm_campaign=free-plugin-notice-verifydomain-woo&utm_content=free-plugin-notice-verifydomain-woo&utm_term=free-plugin-notice-verifydomain-woo" target="_blank">Click here</a>
20
- </br></br>Track KEY actions on your WordPress site with Automated Events: <a href="https://www.pixelyoursite.com/global-events?utm_source=free-plugin-notice-globalevents-woo&utm_medium=free-plugin-notice-globalevents-woo&utm_campaign=free-plugin-notice-globalevents-woo&utm_content=free-plugin-notice-globalevents-woo&utm_term=free-plugin-notice-globalevents-woo" target="_blank">Click here</a>
21
- </br></br>Add the TikTok Tag with <a href="https://www.pixelyoursite.com/tiktok-tag-pixelyoursite?utm_source=free-plugin-notice-tt-woo&utm_medium=free-plugin-notice-tt-woo&utm_campaign=free-plugin-notice-tt-woo&utm_content=free-plugin-notice-tt-woo&utm_term=free-plugin-notice-tt-woo" target="_blank">PixelYourSite Professional</a>.'
22
- ],
23
-
24
-
25
- ],
26
- 'edd' => [
27
-
28
- [
29
- 'disabled' => false,
30
- // 'from' => 0,
31
- // 'to' => 1,
32
- 'content' => '</br>PIXELYOURSITE KEY INFO:
33
- </br></br>How to find what Easy Digital Downloads products your Meta campaigns sold: <a href="https://www.youtube.com/watch?v=-27E2bBEJGw" target="_blank">Watch Video</a>
34
- </br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem?utm_source=free-plugin-notice-aem-link-edd&utm_medium=free-plugin-notice-aem-link-edd&utm_campaign=free-plugin-notice-aem-link-edd&utm_content=free-plugin-notice-aem-link-edd&utm_term=free-plugin-notice-aem-link-edd" target="_blank">Click here</a>
35
- </br></br>How to verify your domain on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook?utm_source=free-plugin-notice-verifydomain-edd&utm_medium=free-plugin-notice-verifydomain-edd&utm_campaign=free-plugin-notice-verifydomain-edd&utm_content=free-plugin-notice-verifydomain-edd&utm_term=free-plugin-notice-verifydomain-edd" target="_blank">Click here</a>
36
- </br></br>Track KEY actions on your WordPress site with Automated Events: <a href="https://www.pixelyoursite.com/global-events?utm_source=free-plugin-notice-globalevents-edd&utm_medium=free-plugin-notice-globalevents-edd&utm_campaign=free-plugin-notice-globalevents-edd&utm_content=free-plugin-notice-globalevents-edd&utm_term=free-plugin-notice-globalevents-edd" target="_blank">Click here</a>
37
- </br></br>Add the TikTok Tag with <a href="https://www.pixelyoursite.com/tiktok-tag-pixelyoursite?utm_source=free-plugin-notice-tt-edd&utm_medium=free-plugin-notice-tt-edd&utm_campaign=free-plugin-notice-tt-edd&utm_content=free-plugin-notice-tt-edd&utm_term=free-plugin-notice-tt-edd" target="_blank">PixelYourSite Professional</a>.'
38
-
39
- ],
40
-
41
- ],
42
- 'no_woo_no_edd' => [
43
-
44
- [
45
- 'disabled' => false,
46
- // 'from' => 0,
47
- // 'to' => 1,
48
- 'content' => '</br>PIXELYOURSITE KEY INFO:
49
- </br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem?utm_source=free-plugin-notice-aem-link-nowoo&utm_medium=free-plugin-notice-aem-link-nowoo&utm_campaign=free-plugin-notice-aem-link-nowoo&utm_content=free-plugin-notice-aem-link-nowoo&utm_term=free-plugin-notice-aem-link-nowoo" target="_blank">Click here</a>
50
- </br></br>How to verify your domain on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook?utm_source=free-plugin-notice-verifydomain&utm_medium=free-plugin-notice-verifydomain&utm_campaign=free-plugin-notice-verifydomain&utm_content=free-plugin-notice-verifydomain&utm_term=free-plugin-notice-verifydomain" target="_blank">Click here</a>
51
- </br></br>Track KEY actions on your WordPress site with Automated Events: <a href="https://www.pixelyoursite.com/global-events?utm_source=free-plugin-notice-globalevents&utm_medium=free-plugin-notice-globalevents&utm_campaign=free-plugin-notice-globalevents&utm_content=free-plugin-notice-globalevents&utm_term=free-plugin-notice-globalevents" target="_blank">Click here</a>.'
52
- ],
53
-
54
- ],
55
- ];
56
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
notices/fixed.php CHANGED
@@ -9,18 +9,269 @@ if ( ! defined( 'ABSPATH' ) ) {
9
  /*
10
  * Notice structure
11
  [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  'plugins' =>[], // can be "woo","wcf","edd" or empty array
13
  'slug' => '',// unique id
14
- 'message' => '' // message with html tags
15
  ]
16
  * */
17
 
18
  function adminGetFixedNotices() {
19
  return [
20
  [
21
- 'plugins' =>["woo","wcf"],
22
- 'slug' => 'wcf_and_woo_promo',
23
- 'message' => 'HOT: Improve CartFlows tracking with PixelYourSite Professional: <a target="_blank" href="https://www.pixelyoursite.com/cartflows-and-pixelyoursite">CLICK TO LEARN MORE</a>'
24
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  ];
26
- }
9
  /*
10
  * Notice structure
11
  [
12
+ 'order' => '1', // message display order
13
+ 'wait' => 0, // timeout after closing the previous message
14
+ 'type' => 'event chain', // Message type, if included in the message sequence then type MUST be 'event chain'
15
+ 'enabelYoutubeLink' => false, // enables or disables the link to the channel at the bottom of the block
16
+ 'enabelLogo' => false, // enable or disable the logo on the left in the block
17
+ 'enabelDismiss' => false, // enable or disable dismiss button, default enable
18
+ 'color' => 'orange', // color can be 'orange', 'green', 'blue'
19
+ 'multiMessage' => [
20
+ [
21
+ 'slug' => 'new_message_1_v1', // unique slug for message "new_message_1" - unique title, '_v1' - version message
22
+ 'message' => 'Hello I message 1 V 1',
23
+ 'title' => 'Title V1',
24
+ 'button_text' => 'Watch',
25
+ 'button_url' => 'https://www.youtube.com/watch?v=snUKcsTbvCk'
26
+ ],
27
+ [
28
+ 'slug' => 'new_message_2_v1',
29
+ 'message' => 'Hello I message 2 V 1',
30
+ 'button_text' => 'Watch',
31
+ 'button_url' => 'https://www.youtube.com/watch?v=snUKcsTbvCk',
32
+ ],
33
+ [
34
+ 'slug' => 'new_message_3_v1',
35
+ 'title' => 'Title V1',
36
+ 'message' => 'Hello I message 3 V 1',
37
+ 'button_text' => 'Watch',
38
+ 'button_url' => 'https://www.youtube.com/watch?v=snUKcsTbvCk',
39
+ ]
40
+ ]
41
+ ],
42
+
43
+ If need fixed message
44
+ [
45
+ 'type' => 'promo',
46
+ 'enabelDismiss' => false, // enable or disable dismiss button, default enable
47
  'plugins' =>[], // can be "woo","wcf","edd" or empty array
48
  'slug' => '',// unique id
49
+ 'message' => '', // message with html tags
50
  ]
51
  * */
52
 
53
  function adminGetFixedNotices() {
54
  return [
55
  [
56
+ 'order' => '1',
57
+ 'wait' => 0,
58
+ 'type' => 'event chain',
59
+ 'enabelYoutubeLink' => true,
60
+ 'enabelLogo' => true,
61
+ 'enabelDismiss' => true,
62
+ 'color' => 'orange',
63
+ 'multiMessage' => [
64
+ [
65
+ 'slug' => 'free_block_1_message_1_v1',
66
+ 'message' => 'Learn how to configure Meta Conversion API with your PixelYourSite plugin.',
67
+ 'title' => 'Meta Conversion API',
68
+ 'button_text' => 'Watch video',
69
+ 'button_url' => 'https://www.youtube.com/watch?v=uXTpgFu2V-E'
70
+ ],
71
+ [
72
+ 'slug' => 'free_block_1_message_2_v1',
73
+ 'title' => 'Verify your domain on Meta',
74
+ 'message' => 'Learn how you can verify your domain on Meta (Facebook)',
75
+ 'button_text' => 'Watch video',
76
+ 'button_url' => 'https://www.youtube.com/watch?v=lLXZW5eZt4o',
77
+ ],
78
+ [
79
+ 'slug' => 'free_block_1_message_3_v1',
80
+ 'title' => 'Google Analytics 4 (GA4)',
81
+ 'message' => 'How to install GA4 on WordPress and WooCommerce and how to test your tag',
82
+ 'button_text' => 'Watch video',
83
+ 'button_url' => 'https://www.youtube.com/watch?v=fwegcsO-yrc',
84
+ ]
85
+ ],
86
+ 'optoutEnabel' => true,
87
+ 'optoutMessage' => "This is message 1 of a series of 8 notifications containing tips and tricks about how to use our plugin.",
88
+ 'optoutButtonText' => "Don't show me more tips"
89
+ ],
90
+ [
91
+ 'order' => '2',
92
+ 'wait' => 12,
93
+ 'type' => 'event chain',
94
+ 'enabelYoutubeLink' => true,
95
+ 'enabelLogo' => true,
96
+ 'color' => 'green',
97
+ 'multiMessage' => [
98
+ [
99
+ 'slug' => 'free_block_2_message_1_v1',
100
+ 'message' => 'Learn how to create Custom Conversions on Meta using your pixel events. Use them to optimize your ads and track your ads results.',
101
+ 'title' => 'Meta Custom Conversions using Events',
102
+ 'button_text' => 'Watch video',
103
+ 'button_url' => 'https://www.youtube.com/watch?v=w97FATUy7ok'
104
+ ],
105
+ [
106
+ 'slug' => 'free_block_2_message_2_v1',
107
+ 'message' => 'Build Meta Custom Audiences with events and parameters. Retarget key segments of your audience, or find new potential customers with Lookalikes.',
108
+ 'title' => 'Meta Custom Audiences using Events',
109
+ 'button_text' => 'Watch video',
110
+ 'button_url' => 'https://www.youtube.com/watch?v=EvzGMAvBnbs',
111
+ ],
112
+ ],
113
+ 'optoutEnabel' => true,
114
+ 'optoutMessage' => "This is message 2 of a series of 8 notifications containing tips and tricks about how to use our plugin.",
115
+ 'optoutButtonText' => "Don't show me more tips"
116
+ ],
117
+ [
118
+ 'order' => '3',
119
+ 'wait' => 24,
120
+ 'type' => 'event chain',
121
+ 'enabelYoutubeLink' => true,
122
+ 'enabelLogo' => true,
123
+ 'color' => 'blue',
124
+ 'multiMessage' => [
125
+ [
126
+ 'slug' => 'free_block_3_message_1_v1',
127
+ 'message' => 'Improve META (Facebook) Event Match Quality (EMQ) score with form automatic data detection.',
128
+ 'title' => 'Improve your Meta EMQ score',
129
+ 'button_text' => 'Watch video',
130
+ 'button_url' => 'https://www.youtube.com/watch?v=snUKcsTbvCk',
131
+ ],
132
+
133
+ ],
134
+ 'optoutEnabel' => true,
135
+ 'optoutMessage' => "This is message 3 of a series of 8 notifications containing tips and tricks about how to use our plugin.",
136
+ 'optoutButtonText' => "Don't show me more tips"
137
+
138
+ ],
139
+ [
140
+ 'order' => '4',
141
+ 'wait' => 24,
142
+ 'type' => 'event chain',
143
+ 'enabelYoutubeLink' => true,
144
+ 'enabelLogo' => true,
145
+ 'multiMessage' => [
146
+ [
147
+ 'slug' => 'free_block_4_message_1_v1',
148
+ 'title' => 'What WooCommerce products your ads sold',
149
+ 'message' => 'Meta (Facebook) doesn"t show you what products your ads sold, but there is an easy way to find out.',
150
+ 'button_text' => 'Watch this video',
151
+ 'button_url' => 'https://www.youtube.com/watch?v=b-eYdx9QK0Q',
152
+ ],
153
+ ],
154
+ 'optoutEnabel' => true,
155
+ 'optoutMessage' => "This is message 4 of a series of 8 notifications containing tips and tricks about how to use our plugin.",
156
+ 'optoutButtonText' => "Don't show me more tips"
157
+
158
+ ],
159
+
160
+
161
+ [
162
+ 'order' => '5',
163
+ 'wait' => 12,
164
+ 'type' => 'event chain',
165
+ 'enabelYoutubeLink' => true,
166
+ 'enabelLogo' => true,
167
+ 'multiMessage' => [
168
+ [
169
+ 'slug' => 'free_block_5_message_1_v1',
170
+ 'title' => 'WooCommerce First-Party Reports',
171
+ 'message' => 'Discover what generates your WooCommerce orders with PixelYourSite Professional first-party reports. You can track Meta, Google, TikTok or any other campaigns with UTMs.',
172
+ 'button_text' => 'Watch this video',
173
+ 'button_url' => 'https://www.youtube.com/watch?v=4VpVf9llfkU',
174
+ ],
175
+ ],
176
+ 'optoutEnabel' => true,
177
+ 'optoutMessage' => "This is message 5 of a series of 8 notifications containing tips and tricks about how to use our plugin.",
178
+ 'optoutButtonText' => "Don't show me more tips"
179
+
180
+ ],
181
+
182
+
183
+ [
184
+ 'order' => '6',
185
+ 'wait' => 24,
186
+ 'type' => 'event chain',
187
+ 'enabelYoutubeLink' => true,
188
+ 'enabelLogo' => true,
189
+ 'multiMessage' => [
190
+ [
191
+ 'slug' => 'free_block_6_message_1_v1',
192
+ 'title' => 'Install the TikTok Tag',
193
+ 'message' => 'Learn how you can install the TikTok Tag with PixelYourSite Professional. WooCommerce and Easy Digital Downloads support with e-commerce events tracking.',
194
+ 'button_text' => 'Watch video',
195
+ 'button_url' => 'https://www.youtube.com/watch?v=zkb67djRnd0',
196
+ ],
197
+ [
198
+ 'slug' => 'free_block_6_message_2_v1',
199
+ 'title' => 'Test your TikTok Tag',
200
+ 'message' => 'Learn how you can test your TikTok tag.',
201
+ 'button_text' => 'Watch video',
202
+ 'button_url' => 'https://www.youtube.com/watch?v=WRFRsjXuyMY',
203
+ ],
204
+ ],
205
+ 'optoutEnabel' => true,
206
+ 'optoutMessage' => "This is message 6 of a series of 8 notifications containing tips and tricks about how to use our plugin.",
207
+ 'optoutButtonText' => "Don't show me more tips"
208
+
209
+ ],
210
+
211
+
212
+
213
+ [
214
+ 'order' => '7',
215
+ 'wait' => 24,
216
+ 'type' => 'event chain',
217
+ 'enabelYoutubeLink' => true,
218
+ 'enabelLogo' => true,
219
+ 'multiMessage' => [
220
+ [
221
+ 'slug' => 'free_block_7_message_1_v1',
222
+ 'title' => 'Multiple Meta tags with CAPI support',
223
+ 'message' => 'Learn how you can add multiple Meta (Facebook) tags with Conversion API support.',
224
+ 'button_text' => 'Watch video',
225
+ 'button_url' => 'https://www.youtube.com/watch?v=HM98mGZshvc',
226
+ ],
227
+ [
228
+ 'slug' => 'free_block_7_message_2_v1',
229
+ 'title' => 'Multiple GA4 tags',
230
+ 'message' => 'Learn how you can implement multiple Google Analytics 4 (GA4) tags on your site.',
231
+ 'button_text' => 'Watch video',
232
+ 'button_url' => 'https://www.youtube.com/watch?v=JUuss5sewxg',
233
+ ],
234
+ ],
235
+ 'optoutEnabel' => true,
236
+ 'optoutMessage' => "This is message 7 of a series of 8 notifications containing tips and tricks about how to use our plugin.",
237
+ 'optoutButtonText' => "Don't show me more tips"
238
+
239
+ ],
240
+
241
+
242
+ [
243
+ 'order' => '8',
244
+ 'wait' => 24,
245
+ 'type' => 'event chain',
246
+ 'enabelYoutubeLink' => true,
247
+ 'enabelLogo' => true,
248
+ 'multiMessage' => [
249
+ [
250
+ 'slug' => 'free_block_8_message_1_v1',
251
+ 'title' => 'Don"t make this mistake when
252
+ using a consent plugin!',
253
+ 'message' => 'Most sites have a consent plugin as required by GDPR, CCPA, or other regulations. But there is a common mistake that can ruin your tracking. Find out what it is and how to fix it.',
254
+ 'button_text' => 'Watch this video',
255
+ 'button_url' => 'https://www.youtube.com/watch?v=eo-dpuAqZNg',
256
+ ],
257
+ ],
258
+ 'optoutEnabel' => true,
259
+ 'optoutMessage' => "This is message 8 of a series of 8 notifications containing tips and tricks about how to use our plugin.",
260
+ 'optoutButtonText' => "Don't show me more tips"
261
+ ],
262
+
263
+
264
+
265
+ /*
266
+ [
267
+ 'type' => 'promo',
268
+ 'plugins' => [],
269
+ 'slug' => 'wcf_and_woo_promo_v1',
270
+ 'enabelDismiss' => true,
271
+ 'message' => 'HOT: Improve CartFlows tracking with PixelYourSite Professional: <a target="_blank" href="https://www.youtube.com/watch?v=-rA3rxq812g">CLICK TO LEARN MORE</a>'
272
+ ]
273
+
274
+ */
275
+
276
  ];
277
+ }
pixelyoursite.php CHANGED
@@ -4,7 +4,7 @@ if ( ! defined( 'ABSPATH' ) ) {
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
- define( 'PYS_FREE_VERSION', '9.2.0' );
8
  define( 'PYS_FREE_PINTEREST_MIN_VERSION', '3.2.5' );
9
  define( 'PYS_FREE_BING_MIN_VERSION', '2.2.2' );
10
  define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
@@ -41,7 +41,6 @@ require_once PYS_FREE_PATH.'/includes/functions-update-plugin.php';
41
  require_once PYS_FREE_PATH.'/includes/functions-gdpr.php';
42
  require_once PYS_FREE_PATH.'/includes/functions-migrate.php';
43
  require_once PYS_FREE_PATH.'/includes/functions-optin.php';
44
- require_once PYS_FREE_PATH.'/includes/functions-promo-notices.php';
45
  require_once PYS_FREE_PATH.'/includes/class-fixed-notices.php';
46
  require_once PYS_FREE_PATH.'/includes/class-pixel.php';
47
  require_once PYS_FREE_PATH.'/includes/class-settings.php';
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
+ define( 'PYS_FREE_VERSION', '9.2.1' );
8
  define( 'PYS_FREE_PINTEREST_MIN_VERSION', '3.2.5' );
9
  define( 'PYS_FREE_BING_MIN_VERSION', '2.2.2' );
10
  define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
41
  require_once PYS_FREE_PATH.'/includes/functions-gdpr.php';
42
  require_once PYS_FREE_PATH.'/includes/functions-migrate.php';
43
  require_once PYS_FREE_PATH.'/includes/functions-optin.php';
 
44
  require_once PYS_FREE_PATH.'/includes/class-fixed-notices.php';
45
  require_once PYS_FREE_PATH.'/includes/class-pixel.php';
46
  require_once PYS_FREE_PATH.'/includes/class-settings.php';
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: Meta Pixel, Facebook Pixel, Facebook Conversion API, CAPI, Facebook Pixel
4
  Requires at least: 3.0.1
5
  Requires PHP: 5.4
6
  Tested up to: 6.0
7
- Stable tag: 9.2.0
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -468,6 +468,19 @@ NO, absolutely not! We don't track any type of data about your website. We simpl
468
  == Changelog ==
469
 
470
 
 
 
 
 
 
 
 
 
 
 
 
 
 
471
  = PixelYourSite 9.2.0 =
472
 
473
  * New: track and store the traffic source, landing page, UTMs for WooCommerce orders. This helps you identify what generates your sales. [Watch this video for more info](https://www.youtube.com/watch?v=4VpVf9llfkU)
4
  Requires at least: 3.0.1
5
  Requires PHP: 5.4
6
  Tested up to: 6.0
7
+ Stable tag: 9.2.1
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
468
  == Changelog ==
469
 
470
 
471
+ = PixelYourSite 9.2.1 =
472
+
473
+ * Improvements on how the plugins tracks and sends fbp and fbc for Meta CAPI events. In time, this will lead to an improved EMQ score and overall better ads attribution.
474
+
475
+ * New option to remove the post_category parameter, as required by some users.
476
+
477
+ * UI changes to reflect new features in the PRO version of the plugin: Advanced user-data detection for forms.
478
+
479
+ * Updates to our notifications. We now show a number of notifications with tips about the plugin and tracking in general. These notifications can be close individually. Each notification has a button that will turn OFF all notifications at once.
480
+
481
+ * WooCommerce 7.0 compatibility.
482
+
483
+
484
  = PixelYourSite 9.2.0 =
485
 
486
  * New: track and store the traffic source, landing page, UTMs for WooCommerce orders. This helps you identify what generates your sales. [Watch this video for more info](https://www.youtube.com/watch?v=4VpVf9llfkU)