1if(!Array.prototype.includes){ 2Object.defineProperty(Array.prototype, 'includes', { 3value: function (searchElement, fromIndex){ 4if(this==null){ 5throw new TypeError('"this" is null or not defined'); 6} 7var o=Object(this); 8var len=o.length >>> 0; 9if(len===0){ 10return false; 11} 12var n=fromIndex | 0; 13var k=Math.max(n >=0 ? n:len - Math.abs(n), 0); 14function sameValueZero(x, y){ 15return x===y||(typeof x==='number'&&typeof y==='number'&&isNaN(x)&&isNaN(y)); 16} 17while (k < len){ 18if(sameValueZero(o[k], searchElement)){ 19return true; 20} 21k++; 22} 23return false; 24}}); 25} 26if(!String.prototype.startsWith){ 27Object.defineProperty(String.prototype, 'startsWith', { 28enumerable: false, 29configurable: false, 30writable: false, 31value: function (searchString, position){ 32position=position||0; 33return this.indexOf(searchString, position)===position; 34}}); 35} 36if(!String.prototype.trim){ 37(function (){ 38String.prototype.trim=function (){ 39return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); 40};})(); 41} 42! function ($, options){ 43if(options.debug){ 44console.log('PYS:', options); 45} 46var dummyPinterest=function (){ 47return { 48tag: function(){ 49return "pinterest"; 50}, 51isEnabled: function (){}, 52disable: function (){}, 53loadPixel: function (){}, 54fireEvent: function (name, data){ 55return false; 56}, 57onAdSenseEvent: function (event){}, 58onClickEvent: function (params){}, 59onWatchVideo: function (params){}, 60onCommentEvent: function (event){}, 61onFormEvent: function (params){}, 62onDownloadEvent: function (params){}, 63onWooAddToCartOnButtonEvent: function (product_id){}, 64onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, is_external, $form){}, 65onWooRemoveFromCartEvent: function (cart_item_hash){}, 66onWooAffiliateEvent: function (product_id){}, 67onWooPayPalEvent: function (event){}, 68onEddAddToCartOnButtonEvent: function (download_id, price_index, qty){}, 69onEddRemoveFromCartEvent: function (item){}, 70onPageScroll: function (event){}, 71onTime: function (event){ 72}, 73}}(); 74var dummyBing=function (){ 75return { 76tag: function(){ 77return "bing"; 78}, 79isEnabled: function (){}, 80disable: function (){}, 81loadPixel: function (){}, 82fireEvent: function (name, data){ 83return false; 84}, 85onAdSenseEvent: function (event){}, 86onClickEvent: function (params){}, 87onWatchVideo: function (params){}, 88onCommentEvent: function (event){}, 89onFormEvent: function (params){}, 90onDownloadEvent: function (params){}, 91onWooAddToCartOnButtonEvent: function (product_id){}, 92onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, is_external, $form){}, 93onWooRemoveFromCartEvent: function (cart_item_hash){}, 94onWooAffiliateEvent: function (product_id){}, 95onWooPayPalEvent: function (event){}, 96onEddAddToCartOnButtonEvent: function (download_id, price_index, qty){}, 97onEddRemoveFromCartEvent: function (item){}, 98onPageScroll: function (event){}, 99onTime: function (event){ 100}, 101}}(); 102var Utils=function (options){ 103var Pinterest=dummyPinterest; 104var Bing=dummyBing; 105var gtag_loaded=false; 106let isNewSession=checkSession(); 107function loadPixels(){ 108if(!options.gdpr.all_disabled_by_api){ 109if(!options.gdpr.tiktok_disabled_by_api){ 110TikTok.loadPixel(); 111} 112if(!options.gdpr.facebook_disabled_by_api){ 113Facebook.loadPixel(); 114} 115if(!options.gdpr.analytics_disabled_by_api){ 116Analytics.loadPixel(); 117} 118if(!options.gdpr.google_ads_disabled_by_api){ 119GAds.loadPixel(); 120} 121if(!options.gdpr.pinterest_disabled_by_api){ 122Pinterest.loadPixel(); 123} 124if(!options.gdpr.bing_disabled_by_api){ 125Bing.loadPixel(); 126}} 127if(options.gdpr.consent_magic_integration_enabled&&typeof CS_Data!=="undefined"){ 128if(typeof CS_Data.cs_google_analytics_consent_mode!=="undefined"&&CS_Data.cs_google_analytics_consent_mode==1){ 129Analytics.loadPixel(); 130} 131if(typeof CS_Data.cs_google_ads_consent_mode!=="undefined"&&CS_Data.cs_google_ads_consent_mode==1){ 132GAds.loadPixel(); 133}} 134} 135function isJSApiAttrEnabled(url){ 136return url.indexOf('enablejsapi') > -1; 137} 138function isOriginAttrEnabled(url){ 139return url.indexOf('origin') > -1; 140} 141function getVideoCompletionMarks(duration){ 142var marks={}; 143var points=[0, 10, 50, 90, 100]; 144for (var i=0; i < points.length; i++){ 145var _point=points[i]; 146var _mark=_point + '%'; 147var _time=duration * _point / 100; 148if(_point===100){ 149_time=_time - 1; 150} 151marks[_mark]=Math.floor(_time); 152} 153return marks; 154} 155function tagIsYouTubeVideo(tag){ 156var src=tag.src||''; 157return src.indexOf('youtube.com/embed/') > -1||src.indexOf('youtube.com/v/') > -1; 158} 159function tagIsYouTubeAsyncVideo(tag){ 160if(tag.src&&tag.src.indexOf("data:image")!==-1) return false;
161var keys=Object.keys(tag.dataset); 162for(var i=0;i<keys.length;i++){ 163if(keys[i].toLowerCase().indexOf("src") > -1){ 164var src=tag.dataset[keys[i]]; 165return src.indexOf('youtube.com/embed/') > -1||src.indexOf('youtube.com/v/') > -1; 166}} 167return false; 168} 169function normalizeYouTubeIframe(tag){ 170var loc=window.location; 171var a=document.createElement('a'); 172a.href=tag.src; 173a.hostname='www.youtube.com'; 174a.protocol=loc.protocol; 175var tmpPathname=a.pathname.charAt(0)==='/' ? a.pathname:'/' + a.pathname; 176if(!isJSApiAttrEnabled(a.search)){ 177a.search=(a.search.length > 0 ? a.search + '&':'') + 'enablejsapi=1'; 178} 179if(!isOriginAttrEnabled(a.search)&&loc.hostname.indexOf('localhost')===-1){ 180var port=loc.port ? ':' + loc.port:''; 181var origin=loc.protocol + '%2F%2F' + loc.hostname + port; 182a.search=a.search + '&origin=' + origin; 183} 184if(tag.type==='application/x-shockwave-flash'){ 185var newIframe=document.createElement('iframe'); 186newIframe.height=tag.height; 187newIframe.width=tag.width; 188tmpPathname=tmpPathname.replace('/v/', '/embed/'); 189tag.parentNode.parentNode.replaceChild(newIframe, tag.parentNode); 190tag=newIframe; 191} 192a.pathname=tmpPathname; 193if(tag.src!==a.href + a.hash){ 194tag.src=a.href + a.hash; 195} 196return tag; 197} 198function addYouTubeEvents(iframe){ 199var player=YT.get(iframe.id); 200if(!player){ 201player=new YT.Player(iframe, {}); 202} 203if(typeof iframe.pauseFlag==='undefined'){ 204iframe.pauseFlag=false; 205player.addEventListener('onStateChange', function (evt){ 206onYouTubePlayerStateChange(evt, iframe); 207}); 208}} 209function addDynYouTubeVideos(el){ 210if(el.tagName==='IFRAME' 211&& tagIsYouTubeVideo(el) 212&& isJSApiAttrEnabled(el.src) 213&& isOriginAttrEnabled(el.src)){ 214addYouTubeEvents(el); 215}} 216function onYouTubePlayerStateChange(evt, iframe){ 217var stateIndex=evt.data; 218var player=evt.target; 219var targetVideoUrl=player.getVideoUrl(); 220var targetVideoId=targetVideoUrl.match(/[?&]v=([^&#]*)/)[1]; 221var playerState=player.getPlayerState(); 222var marks=getVideoCompletionMarks(player.getDuration()); 223iframe.playTracker=iframe.playTracker||{}; 224if(playerState===YT.PlayerState.PLAYING&&!iframe.timer){ 225clearInterval(iframe.timer); 226iframe.timer=setInterval(function (){ 227checkYouTubeCompletion(player, marks, iframe.videoId); 228}, 1000); 229}else{ 230clearInterval(iframe.timer); 231iframe.timer=false; 232} 233if(stateIndex===YT.PlayerState.PLAYING){ 234iframe.playTracker[targetVideoId]=true; 235iframe.videoId=targetVideoId; 236iframe.pauseFlag=false; 237} 238if(!iframe.playTracker[iframe.videoId]){ 239return false; 240} 241if(stateIndex===YT.PlayerState.PAUSED){ 242if(!iframe.pauseFlag){ 243iframe.pauseFlag=true; 244}else{ 245return false; 246}} 247} 248function checkYouTubeCompletion(player, marks, videoId){ 249var currentTime=player.getCurrentTime(); 250player[videoId]=player[videoId]||{}; 251for (var key in marks){ 252if(marks[key] <=currentTime&&!player[videoId][key]){ 253player[videoId][key]=true; 254var data=player.getVideoData(); 255if(key==='0%'){ 256key='play'; 257} 258var params={ 259video_type: 'youtube', 260video_id: videoId, 261video_title: data.title, 262}; 263if(options.automatic.enable_video 264&& options.automatic.enable_youtube 265&& options.dynamicEvents.hasOwnProperty("automatic_event_video") 266){ 267var pixels=Object.keys(options.dynamicEvents.automatic_event_video); 268for (var i=0; i < pixels.length; i++){ 269var event=Utils.clone(options.dynamicEvents.automatic_event_video[pixels[i]]); 270event.params["progress"]=key 271Utils.copyProperties(params, event.params)
272Utils.copyProperties(Utils.getRequestParams(), event.params); 273getPixelBySlag(pixels[i]).onWatchVideo(event); 274}} 275if(key=="play"){ 276$.each(options.triggerEventTypes, function (triggerType, events){ 277$.each(events, function (eventId, triggers){ 278switch (triggerType){ 279case 'video_play': 280Utils.fireTriggerEvent(eventId); 281break; 282}}); 283}); 284}} 285}} 286function tagIsVimeoVideo(tag){ 287var src=tag.src||''; 288return src.indexOf('player.vimeo.com/video/') > -1; 289} 290function tagIsAsincVimeoVideo(tag){ 291if(tag.src) return false; 292var keys=Object.keys(tag.dataset); 293for(var i=0;i<keys.length;i++){ 294if(keys[i].toLowerCase().indexOf("src") > -1){ 295var src=tag.dataset[keys[i]]; 296return src.indexOf('player.vimeo.com/video/') > -1; 297}} 298return false; 299} 300function attachVimeoPlayerToTag(tag){ 301var player=new Vimeo.Player(tag); 302player.getDuration().then(function (pl,seconds){ 303pl.pysMarks=getVideoCompletionMarks(seconds); 304}.bind(null,player)); 305player.getVideoTitle().then(function (pl,title){ 306pl.pysVideoTitle=title; 307}.bind(null,player)); 308player.getVideoId().then(function (pl,id){ 309pl.pysVideoId=id; 310}.bind(null,player)); 311player.pysCompletedMarks={}; 312player.on('play', function (){ 313if(this.pysTimer){ 314return; 315} 316clearInterval(this.pysTimer); 317var player=this; 318this.pysTimer=setInterval(function (){ 319checkVimeoCompletion(player); 320}, 1000); 321}); 322player.on('pause', function (){ 323clearInterval(this.pysTimer); 324this.pysTimer=false; 325}); 326player.on('ended', function (){ 327clearInterval(this.pysTimer); 328this.pysTimer=false; 329}); 330} 331function checkVimeoCompletion(player){ 332player.getCurrentTime().then(function (seconds){ 333for (var key in player.pysMarks){ 334if(player.pysMarks[key] <=seconds&&!player.pysCompletedMarks[key]){ 335player.pysCompletedMarks[key]=true; 336if(key==='0%'){ 337key='play'; 338} 339var params={ 340video_type: 'vimeo', 341video_id: player.pysVideoId, 342video_title: player.pysVideoTitle, 343}; 344if(options.automatic.enable_video 345&& options.automatic.enable_vimeo 346&& options.dynamicEvents.hasOwnProperty("automatic_event_video") 347){ 348var pixels=Object.keys(options.dynamicEvents.automatic_event_video); 349for (var i=0; i < pixels.length; i++){ 350var event=Utils.clone(options.dynamicEvents.automatic_event_video[pixels[i]]); 351event.params["progress"]=key 352Utils.copyProperties(params, event.params,);
353Utils.copyProperties(Utils.getRequestParams(), event.params); 354getPixelBySlag(pixels[i]).onWatchVideo(event); 355}} 356if(key=="play"){ 357$.each(options.triggerEventTypes, function (triggerType, events){ 358$.each(events, function (eventId, triggers){ 359switch (triggerType){ 360case 'video_play': 361Utils.fireTriggerEvent(eventId); 362break; 363}}); 364}); 365}} 366}}); 367} 368var utmTerms=['utm_source', 'utm_medium', 'utm_campaign', 'utm_content' ,'utm_term']; 369var utmId=['fbadid', 'gadid', 'padid', 'bingid']; 370var requestParams=[]; 371function getDomain(url){ 372url=url.replace(/(https?:\/\/)?(www.)?/i, ''); 373if(url.indexOf('/')!==-1){ 374return url.split('/')[0]; 375} 376return url; 377} 378function checkSession(){ 379let duration=options.last_visit_duration * 60000 380if(Cookies.get('pys_start_session')===undefined || 381Cookies.get('pys_session_limit')===undefined){ 382var now=new Date(); 383now.setTime(now.getTime() + duration); 384Cookies.set('pys_session_limit', true,{ expires: now }) 385Cookies.set('pys_start_session', true) 386return true 387} 388return false 389} 390function getTrafficSource(){ 391try { 392let referrer=document.referrer.toString(), 393source; 394let direct=referrer.length===0; 395let internal=direct ? false:referrer.indexOf(options.siteUrl)===0; 396let external = !direct&&!internal; 397if(external===false){ 398source='direct'; 399}else{ 400source=referrer; 401} 402if(source!=='direct'){ 403return getDomain(source); 404}else{ 405return source; 406}} catch (e){ 407console.error(e); 408return 'direct'; 409}} 410function getQueryVars(){ 411try { 412var result={}, 413tmp=[]; 414window.location.search 415.substr(1) 416.split("&") 417.forEach(function (item){ 418tmp=item.split('='); 419if(tmp.length > 1){ 420result[tmp[0]]=tmp[1]; 421}}); 422return result; 423} catch (e){ 424console.error(e); 425return {};}} 426function getLandingPageValue(){ 427let name="pys_landing_page" 428if(options.visit_data_model==="last_visit"){ 429name="last_pys_landing_page" 430} 431if(Cookies.get(name)==='undefined'){ 432return ""; 433}else{ 434return Cookies.get(name); 435}} 436function getTrafficSourceValue(){ 437let name="pysTrafficSource" 438if(options.visit_data_model==="last_visit"){ 439name="last_pysTrafficSource" 440} 441if(Cookies.get(name)==='undefined'){ 442return ""; 443}else{ 444return Cookies.get(name); 445}} 446function getUTMId(useLast=false){ 447try { 448let cookiePrefix='pys_' 449let terms=[]; 450if(useLast){ 451cookiePrefix='last_pys_' 452} 453$.each(utmId, function (index, name){ 454if(Cookies.get(cookiePrefix + name)){ 455terms[name]=Cookies.get(cookiePrefix + name) 456}}); 457return terms; 458} catch (e){ 459console.error(e); 460return []; 461}} 462function getUTMs(useLast=false){ 463try { 464let cookiePrefix='pys_' 465if(useLast){ 466cookiePrefix='last_pys_' 467} 468let terms=[]; 469$.each(utmTerms, function (index, name){ 470if(Cookies.get(cookiePrefix + name)){ 471let value=Cookies.get(cookiePrefix + name); 472terms[name]=filterEmails(value); 473}}); 474return terms; 475} catch (e){ 476console.error(e); 477return []; 478}} 479function getDateTime(){ 480var dateTime=new Array(); 481var date=new Date(), 482days=['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], 483months=['January', 'February', 'March', 'April', 'May', 'June', 484'July', 'August', 'September', 'October', 'November', 'December' 485], 486hours=['00-01', '01-02', '02-03', '03-04', '04-05', '05-06', '06-07', '07-08', 487'08-09', '09-10', '10-11', '11-12', '12-13', '13-14', '14-15', '15-16', '16-17', 488'17-18', '18-19', '19-20', '20-21', '21-22', '22-23', '23-24' 489]; 490dateTime.push(hours[date.getHours()]); 491dateTime.push(days[date.getDay()]); 492dateTime.push(months[date.getMonth()]); 493return dateTime; 494} 495function filterEmails(value){ 496return Utils.validateEmail(value) ? undefined:value; 497} 498return { 499PRODUCT_SIMPLE:0, 500PRODUCT_VARIABLE:1, 501PRODUCT_BUNDLE:2, 502PRODUCT_GROUPED:3, 503validateEmail: function (email){ 504var re=/^(([^<>()[\]\\.,;:\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,}))$/; 505return re.test(email); 506}, 507fireEventForAllPixel:function(functionName,events){ 508if(events.hasOwnProperty(Facebook.tag())) 509Facebook[functionName](events[Facebook.tag()]); 510if(events.hasOwnProperty(Analytics.tag())) 511Analytics[functionName](events[Analytics.tag()]); 512if(events.hasOwnProperty(GAds.tag())) 513GAds[functionName](events[GAds.tag()]); 514if(events.hasOwnProperty(Pinterest.tag())) 515Pinterest[functionName](events[Pinterest.tag()]); 516if(events.hasOwnProperty(Bing.tag())) 517Bing[functionName](events[Bing.tag()]); 518if(events.hasOwnProperty(TikTok.tag())) 519TikTok[functionName](events[TikTok.tag()]); 520}, 521getQueryValue:function (name){ 522return getQueryVars()[name]; 523}, 524filterEmails: function (value){ 525return filterEmails(value); 526}, 527setupPinterestObject: function (){ 528Pinterest=window.pys.Pinterest||Pinterest; 529return Pinterest; 530}, 531setupBingObject: function (){ 532Bing=window.pys.Bing||Bing; 533return Bing; 534}, 535copyProperties: function (from, to){ 536for (var key in from){ 537if("function"==typeof from[key]){ 538continue; 539} 540to[key]=from[key]; 541} 542return to; 543}, 544clone: function(obj){ 545var copy; 546if(null==obj||"object"!=typeof obj) return obj; 547if(obj instanceof Date){ 548copy=new Date(); 549copy.setTime(obj.getTime()); 550return copy; 551} 552if(obj instanceof Array){ 553copy=[]; 554for (var i=0, len=obj.length; i < len; i++){ 555if("function"==typeof obj[i]){ 556continue; 557} 558copy[i]=Utils.clone(obj[i]); 559} 560return copy; 561} 562if(obj instanceof Object){ 563copy={}; 564for (var attr in obj){ 565if(obj.hasOwnProperty(attr)){ 566if("function"==typeof obj[attr]){ 567continue; 568} 569copy[attr]=Utils.clone(obj[attr]); 570}} 571return copy; 572} 573return obj; 574}, 575getTagsAsArray: function (tag){ 576return [].slice.call(document.getElementsByTagName(tag)); 577}, 578initYouTubeAPI: function (){ 579if(typeof window.YT==='undefined'){ 580var tag=document.createElement('script'); 581tag.src='//www.youtube.com/iframe_api'; 582var firstScriptTag=document.getElementsByTagName('script')[0]; 583firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 584} 585window.onYouTubeIframeAPIReady=function (){ 586var potentialVideos=Utils.getTagsAsArray('iframe').concat(Utils.getTagsAsArray('embed')); 587for (var i=0; i < potentialVideos.length; i++){ 588var video=potentialVideos[i]; 589if(tagIsYouTubeVideo(video)){ 590var iframe=normalizeYouTubeIframe(video); 591addYouTubeEvents(iframe); 592}else{ 593if(tagIsYouTubeAsyncVideo(video)){ 594video.addEventListener("load", function(evt){ 595var iframe=normalizeYouTubeIframe(evt.currentTarget); 596addYouTubeEvents(iframe); 597}); 598}} 599} 600var targets=document.querySelectorAll('.elementor-widget-video .elementor-wrapper'); 601const config={ 602attributes: false, 603childList: true, 604subtree: true 605}; 606const callback=function(mutationsList, observer){ 607for (let mutation of mutationsList){ 608if(mutation.type==='childList'){ 609for(var m=0;m<mutation.addedNodes.length;m++){ 610addDynYouTubeVideos(mutation.addedNodes[m]); 611}} 612}}; 613for(var i=0;i<targets.length;i++){ 614const observer=new MutationObserver(callback); 615observer.observe(targets[i], config); 616}};}, 617initVimeoAPI: function (){ 618$(document).ready(function (){ 619var potentialVideos=Utils.getTagsAsArray('iframe').concat(Utils.getTagsAsArray('embed')); 620for (var i=0; i < potentialVideos.length; i++){ 621var tag=potentialVideos[i]; 622if(tagIsVimeoVideo(tag)){ 623attachVimeoPlayerToTag(tag); 624}else{ 625if(tagIsAsincVimeoVideo(tag)){ 626tag.addEventListener("load", function(evt){ 627attachVimeoPlayerToTag(evt.currentTarget); 628}); 629}} 630}}); 631}, 632manageCookies: function (){ 633let expires=parseInt(options.cookie_duration); 634let queryVars=getQueryVars(); 635let landing=window.location.href.split('?')[0]; 636try { 637if(Cookies.get('pys_first_visit')===undefined){
638Cookies.set('pys_first_visit', true, { expires: expires }); 639Cookies.set('pysTrafficSource', getTrafficSource(), { expires: expires }); 640Cookies.set('pys_landing_page',landing,{ expires: expires }); 641$.each(utmTerms, function (index, name){ 642if(queryVars.hasOwnProperty(name)){ 643Cookies.set('pys_' + name, queryVars[name], { expires: expires }); 644}else{ 645Cookies.remove('pys_' + name) 646}}); 647$.each(utmId,function(index,name){ 648if(queryVars.hasOwnProperty(name)){ 649Cookies.set('pys_' + name, queryVars[name], { expires: expires }); 650}else{ 651Cookies.remove('pys_' + name) 652}}) 653} 654if(isNewSession){ 655Cookies.set('last_pysTrafficSource', getTrafficSource(), { expires: expires }); 656$.each(utmTerms, function (index, name){ 657if(queryVars.hasOwnProperty(name)){ 658Cookies.set('last_pys_' + name, queryVars[name], { expires: expires }); 659}else{ 660Cookies.remove('last_pys_' + name) 661}}); 662$.each(utmId,function(index,name){ 663if(queryVars.hasOwnProperty(name)){ 664Cookies.set('last_pys_' + name, queryVars[name], { expires: expires }); 665}else{ 666Cookies.remove('last_pys_' + name) 667}}) 668Cookies.set('last_pys_landing_page',landing,{ expires: expires }); 669}} catch (e){ 670console.error(e); 671}},
672initializeRequestParams: function (){ 673if(options.trackTrafficSource){ 674requestParams.traffic_source=getTrafficSourceValue(); 675} 676if(options.trackUTMs){ 677var utms=getUTMs(options.visit_data_model==="last_visit"); 678$.each(utmTerms, function (index, term){ 679if(term in utms){ 680requestParams[term]=utms[term]; 681}}); 682} 683var dateTime=getDateTime(); 684if(options.enable_event_time_param){ 685requestParams.event_time=dateTime[0]; 686} 687if(options.enable_event_day_param){ 688requestParams.event_day=dateTime[1]; 689} 690if(options.enable_event_month_param){ 691requestParams.event_month=dateTime[2]; 692} 693if(options.enable_lading_page_param){ 694requestParams.landing_page=getLandingPageValue(); 695}}, 696getRequestParams: function (){ 697return requestParams; 698}, 699getLinkExtension: function (link){ 700link=link.substring(0, (link.indexOf("#")===-1) ? link.length:link.indexOf("#")); 701link=link.substring(0, (link.indexOf("?")===-1) ? link.length:link.indexOf("?")); 702link=link.substring(link.lastIndexOf("/") + 1, link.length); 703if(link.length > 0&&link.indexOf('.')!==-1){ 704link=link.substring(link.lastIndexOf(".") + 1); 705return link; 706}else{ 707return ""; 708}}, 709getLinkFilename: function (link){ 710link=link.substring(0, (link.indexOf("#")===-1) ? link.length:link.indexOf("#")); 711link=link.substring(0, (link.indexOf("?")===-1) ? link.length:link.indexOf("?")); 712link=link.substring(link.lastIndexOf("/") + 1, link.length); 713if(link.length > 0&&link.indexOf('.')!==-1){ 714return link; 715}else{ 716return ""; 717}}, 718setupMouseOverClickEvents: function (eventId, triggers){ 719document.addEventListener('mouseover', function(event){ 720var matchedElements=Array.from(document.querySelectorAll(triggers)); 721if(matchedElements.includes(event.target)){ 722if(event.target.classList.contains('pys-mouse-over-' + eventId)){ 723return true; 724}else{ 725event.target.classList.add('pys-mouse-over-' + eventId); 726} 727Utils.fireTriggerEvent(eventId); 728}}); 729}, 730setupCSSClickEvents: function (eventId, triggers){ 731document.addEventListener('click', function(event){ 732var matchedElements=Array.from(document.querySelectorAll(triggers)); 733if(matchedElements.includes(event.target)){ 734console.log(event.target) 735Utils.fireTriggerEvent(eventId); 736}}, true); 737}, 738setupURLClickEvents: function (){ 739if(!options.triggerEventTypes.hasOwnProperty('url_click')){ 740return; 741} 742document.addEventListener('click', function(event){ 743if(event.target.matches('a')){ 744var url=event.target.getAttribute('href'); 745if(url){ 746Object.entries(options.triggerEventTypes.url_click).forEach(function ([eventId, triggers]){ 747triggers.forEach(function (trigger){ 748if(Utils.compareUrl(url, trigger.value, trigger.rule)){ 749Utils.fireTriggerEvent(eventId); 750}}); 751}); 752}} 753}, true); 754}, 755removeUrlDomain(url){ 756if(url.indexOf("/#") > -1){ 757url=url.substring(0, url.indexOf("/#")); 758} 759return url.replace('http://','') 760.replace('https://','') 761.replace('www.','') 762.trim() 763.replace(/^\/+/g, '') 764}, 765compareUrl: function(base,url,rule){ 766if(url=="*"||url=='') return true; 767base=Utils.removeUrlDomain(base) 768url=Utils.removeUrlDomain(url) 769if(rule=='match'){ 770return url==base; 771}else{ 772return base.indexOf(url) > -1 773}}, 774setupScrollPosEvents: function (eventId, triggers){ 775var scrollPosThresholds={}, 776docHeight=$(document).height() - $(window).height(); 777$.each(triggers, function (index, scrollPos){ 778scrollPos=docHeight * scrollPos / 100; 779scrollPos=Math.round(scrollPos); 780scrollPosThresholds[scrollPos]=eventId; 781}); 782$(document).on("scroll",function (){ 783var scrollPos=$(window).scrollTop(); 784$.each(scrollPosThresholds, function (threshold, eventId){ 785if(scrollPos <=threshold){ 786return true; 787} 788if(eventId===null){ 789return true; 790}else{ 791scrollPosThresholds[threshold]=null; 792} 793Utils.fireTriggerEvent(eventId); 794}); 795}); 796}, 797setupCommentEvents:function (eventId,triggers){ 798$('form.comment-form').on("submit",function (){ 799Utils.fireTriggerEvent(eventId); 800}); 801}, 802isEventInTimeWindow: function (eventName, event, prefix){ 803if(event.hasOwnProperty("hasTimeWindow")&&event.hasTimeWindow){ 804var cookieName=prefix+"_"+eventName; 805var now=new Date().getTime(); 806if(Cookies.get(cookieName)!==undefined){ 807var lastTimeFire=Cookies.get(cookieName); 808var fireTime=event.timeWindow * 60*60*1000; 809if(now - lastTimeFire > fireTime){
810Cookies.set(cookieName,now, { expires: event.timeWindow / 24.0}); 811}else{ 812return false; 813}}else{ 814Cookies.set(cookieName,now, { expires: event.timeWindow / 24.0}); 815}} 816return true 817}, 818fireTriggerEvent: function (eventId){ 819if(!options.triggerEvents.hasOwnProperty(eventId)){ 820return; 821} 822var event={}; 823var events=options.triggerEvents[eventId]; 824if(events.hasOwnProperty('facebook')){ 825event=events.facebook; 826if(Utils.isEventInTimeWindow(event.name,event,"dyn_facebook_"+eventId)){ 827Facebook.fireEvent(event.name, event); 828}} 829if(events.hasOwnProperty('ga')){ 830event=events.ga; 831if(Utils.isEventInTimeWindow(event.name,event,"dyn_ga_"+eventId)){ 832Analytics.fireEvent(event.name, event); 833}} 834if(events.hasOwnProperty('google_ads')){ 835event=events.google_ads; 836if(Utils.isEventInTimeWindow(event.name,event,"dyn_google_ads_"+eventId)){ 837GAds.fireEvent(event.name, event); 838}} 839if(events.hasOwnProperty('pinterest')){ 840event=events.pinterest; 841if(Utils.isEventInTimeWindow(event.name,event,"dyn_pinterest_"+eventId)){ 842Pinterest.fireEvent(event.name, event);; 843}} 844if(events.hasOwnProperty('bing')){ 845event=events.bing; 846if(Utils.isEventInTimeWindow(event.name,event,"dyn_bing_"+eventId)){ 847Bing.fireEvent(event.name, event);; 848}} 849if(events.hasOwnProperty('tiktok')){ 850event=events.tiktok; 851if(Utils.isEventInTimeWindow(event.name,event,"dyn_bing_"+eventId)){ 852TikTok.fireEvent(event.name, event); 853}} 854}, 855isFirstPurchaseFire: function ($eventName,orderId,pixel){ 856if(Cookies.get("pys_"+$eventName+"_order_id_"+pixel)==orderId){ 857return false; 858}else{ 859Cookies.set("pys_"+$eventName+"_order_id_"+pixel, orderId, { expires: 1 }); 860} 861return true; 862}, 863fireStaticEvents: function (pixel){ 864if(options.staticEvents.hasOwnProperty(pixel)){ 865$.each(options.staticEvents[pixel], function (eventId, events){ 866if(options.woo.hasOwnProperty('woo_purchase_on_transaction') && 867options.woo.woo_purchase_on_transaction && 868(eventId==="woo_purchase"||eventId==="woo_purchase_category")){ 869if(!Utils.isFirstPurchaseFire(eventId,events[0].woo_order,pixel)){ 870return; 871}} 872if(options.edd.hasOwnProperty('edd_purchase_on_transaction') && 873options.edd.edd_purchase_on_transaction && 874(eventId==="edd_purchase"||eventId==="edd_purchase_category")){ 875if(!Utils.isFirstPurchaseFire(eventId,events[0].edd_order,pixel)){ 876return; 877}} 878$.each(events, function (index, event){ 879event.fired=event.fired||false; 880if(!event.fired&&Utils.isEventInTimeWindow(event.name,event,'static_' + pixel+"_")){ 881var fired=false; 882getPixelBySlag(pixel).fireEvent(event.name, event); 883event.fired=fired; 884}}); 885}); 886}}, 887loadGoogleTag: function (id){ 888if(!gtag_loaded){ 889(function (window, document, src){ 890var a=document.createElement('script'), 891m=document.getElementsByTagName('script')[0]; 892a.async=1; 893a.src=src; 894m.parentNode.insertBefore(a, m); 895})(window, document, '//www.googletagmanager.com/gtag/js?id=' + id); 896window.dataLayer=window.dataLayer||[]; 897window.gtag=window.gtag||function gtag(){ 898dataLayer.push(arguments); 899}; 900gtag('js', new Date()); 901gtag_loaded=true; 902}}, 903loadPixels: function (){ 904if(options.gdpr.ajax_enabled&&!options.gdpr.consent_magic_integration_enabled){ 905$.get({ 906url: options.ajaxUrl, 907dataType: 'json', 908data: { 909action: 'pys_get_gdpr_filters_values' 910}, 911success: function (res){ 912if(res.success){ 913options.gdpr.all_disabled_by_api=res.data.all_disabled_by_api; 914options.gdpr.facebook_disabled_by_api=res.data.facebook_disabled_by_api; 915options.gdpr.tiktok_disabled_by_api=res.data.tiktok_disabled_by_api; 916options.gdpr.analytics_disabled_by_api=res.data.analytics_disabled_by_api; 917options.gdpr.google_ads_disabled_by_api=res.data.google_ads_disabled_by_api; 918options.gdpr.pinterest_disabled_by_api=res.data.pinterest_disabled_by_api; 919options.gdpr.bing_disabled_by_api=res.data.bing_disabled_by_api; 920} 921loadPixels(); 922}}); 923}else{ 924loadPixels(); 925}}, 926consentGiven: function (pixel){ 927if(options.gdpr.cookiebot_integration_enabled&&typeof Cookiebot!=='undefined'){ 928var cookiebot_consent_category=options.gdpr['cookiebot_' + pixel + '_consent_category']; 929if(options.gdpr[pixel + '_prior_consent_enabled']){ 930if(Cookiebot.consented===false||Cookiebot.consent[cookiebot_consent_category]){ 931return true; 932}}else{ 933if(Cookiebot.consent[cookiebot_consent_category]){ 934return true; 935}} 936return false;
937} 938if(options.gdpr.cookie_notice_integration_enabled&&typeof cnArgs!=='undefined'){ 939var cn_cookie=Cookies.get(cnArgs.cookieName); 940if(options.gdpr[pixel + '_prior_consent_enabled']){ 941if(typeof cn_cookie==='undefined'||cn_cookie==='true'){ 942return true; 943}}else{ 944if(cn_cookie==='true'){ 945return true; 946}} 947return false; 948} 949if(options.gdpr.cookie_law_info_integration_enabled){ 950var cli_cookie=Cookies.get('viewed_cookie_policy'); 951if(options.gdpr[pixel + '_prior_consent_enabled']){ 952if(typeof cli_cookie==='undefined'||cli_cookie==='yes'){ 953return true; 954}}else{ 955if(cli_cookie==='yes'){ 956return true; 957}} 958return false; 959} 960if(options.gdpr.consent_magic_integration_enabled&&typeof CS_Data!=="undefined"){ 961var test_prefix=CS_Data.test_prefix; 962if((typeof CS_Data.cs_google_analytics_consent_mode!=="undefined"&&CS_Data.cs_google_analytics_consent_mode==1)&&pixel=='analytics'){ 963return true; 964} 965if((typeof CS_Data.cs_google_ads_consent_mode!=="undefined"&&CS_Data.cs_google_ads_consent_mode==1)&&pixel=='google_ads'){ 966return true; 967} 968if(CS_Data.cs_cache_enabled==1){ 969var substring="cs_enabled_cookie_term"; 970var theCookies=document.cookie.split(';'); 971for (var i=1 ; i <=theCookies.length; i++){ 972if(theCookies[ i - 1 ].indexOf(substring)!==-1){ 973var categoryCookie=theCookies[ i - 1 ].replace('cs_enabled_cookie_term' + test_prefix + '_', ''); 974categoryCookie=Number(categoryCookie.replace(/\D+/g, "") ); 975var cs_cookie_val=Cookies.get('cs_enabled_cookie_term' + test_prefix + '_' + categoryCookie); 976if(categoryCookie===CS_Data.cs_script_cat.facebook&&pixel=='facebook'){ 977if(cs_cookie_val=='yes'){ 978return true; 979}else{ 980return false; 981}}else if(categoryCookie===CS_Data.cs_script_cat.bing&&pixel=='bing'){ 982if(cs_cookie_val=='yes'){ 983return true; 984}else{ 985return false; 986}}else if(categoryCookie===CS_Data.cs_script_cat.analytics&&pixel=='analytics'){ 987if(cs_cookie_val=='yes'){ 988return true; 989}else{ 990return false; 991}}else if(categoryCookie===CS_Data.cs_script_cat.gads&&pixel=='google_ads'){ 992if(cs_cookie_val=='yes'){ 993return true; 994}else{ 995return false; 996}}else if(categoryCookie===CS_Data.cs_script_cat.pinterest&&pixel=='pinterest'){ 997if(cs_cookie_val=='yes'){ 998return true; 999}else{ 1000return false; 1001}}else if(categoryCookie===CS_Data.cs_script_cat.tiktok&&pixel=='tiktok'){ 1002if(cs_cookie_val=='yes'){ 1003return true; 1004}else{ 1005return false; 1006}} 1007}} 1008}else{ 1009var cs_cookie=Cookies.get('cs_viewed_cookie_policy'+test_prefix); 1010if(typeof cs_cookie==='undefined'||cs_cookie==='yes'){ 1011return true; 1012}} 1013return false; 1014} 1015if(options.gdpr.real_cookie_banner_integration_enabled){ 1016var consentApi=window.consentApi; 1017if(consentApi){ 1018switch (pixel){ 1019case "analytics": 1020return consentApi.consentSync("http", "_ga", "*").cookieOptIn; 1021case "facebook": 1022return consentApi.consentSync("http", "_fbp", "*").cookieOptIn; 1023case "pinterest": 1024return consentApi.consentSync("http", "_pinterest_sess", ".pinterest.com").cookieOptIn; 1025case "bing": 1026return consentApi.consentSync("http", "_uetsid", "*").cookieOptIn; 1027case "google_ads": 1028return consentApi.consentSync("http", "1P_JAR", ".google.com").cookieOptIn; 1029case 'tiktok': 1030return consentApi.consentSync("http", "tt_webid_v2", ".tiktok.com").cookieOptIn; 1031default: 1032return true; 1033}} 1034} 1035return true; 1036}, 1037setupGdprCallbacks: function (){ 1038if(options.gdpr.cookiebot_integration_enabled&&typeof Cookiebot!=='undefined'){ 1039window.addEventListener("CookiebotOnConsentReady", function(){ 1040if(Cookiebot.consent.marketing){ 1041Facebook.loadPixel(); 1042Bing.loadPixel(); 1043Pinterest.loadPixel(); 1044GAds.loadPixel(); 1045TikTok.loadPixel(); 1046} 1047if(Cookiebot.consent.statistics){ 1048Analytics.loadPixel(); 1049} 1050if(!Cookiebot.consent.marketing){ 1051Facebook.disable(); 1052Pinterest.disable(); 1053Bing.disable() 1054GAds.disable(); 1055TikTok.disable(); 1056} 1057if(!Cookiebot.consent.statistics){ 1058Analytics.disable(); 1059}}); 1060} 1061if(options.gdpr.cookie_notice_integration_enabled){ 1062$(document).onFirst('click', '.cn-set-cookie', function (){ 1063if($(this).data('cookie-set')==='accept'){ 1064Facebook.loadPixel(); 1065Analytics.loadPixel(); 1066GAds.loadPixel(); 1067Pinterest.loadPixel(); 1068Bing.loadPixel(); 1069TikTok.loadPixel(); 1070}else{ 1071Facebook.disable(); 1072Analytics.disable(); 1073GAds.disable(); 1074Pinterest.disable(); 1075Bing.disable(); 1076TikTok.disable(); 1077}}); 1078$(document).onFirst('click', '.cn-revoke-cookie', function (){ 1079Facebook.disable(); 1080Analytics.disable(); 1081GAds.disable(); 1082Pinterest.disable(); 1083Bing.disable(); 1084TikTok.disable(); 1085}); 1086}
1087if(options.gdpr.cookie_law_info_integration_enabled){ 1088$(document).onFirst('click', '#cookie_action_close_header', function (){ 1089Facebook.loadPixel(); 1090Analytics.loadPixel(); 1091GAds.loadPixel(); 1092Pinterest.loadPixel(); 1093Bing.loadPixel(); 1094TikTok.loadPixel(); 1095}); 1096$(document).onFirst('click', '#cookie_action_close_header_reject', function (){ 1097Facebook.disable(); 1098Analytics.disable(); 1099GAds.disable(); 1100Pinterest.disable(); 1101Bing.disable(); 1102TikTok.disable(); 1103}); 1104} 1105if(options.gdpr.consent_magic_integration_enabled&&typeof CS_Data!=="undefined"){ 1106var test_prefix=CS_Data.test_prefix, 1107cs_refresh_after_consent=false, 1108substring="cs_enabled_cookie_term"; 1109if(CS_Data.cs_refresh_after_consent==1){ 1110cs_refresh_after_consent=CS_Data.cs_refresh_after_consent; 1111} 1112if(!cs_refresh_after_consent){ 1113var theCookies=document.cookie.split(';'); 1114for (var i=1 ; i <=theCookies.length; i++){ 1115if(theCookies[i-1].indexOf(substring)!==-1){ 1116var categoryCookie=theCookies[i-1].replace('cs_enabled_cookie_term'+test_prefix+'_',''); 1117categoryCookie=Number(categoryCookie.replace(/\D+/g,"")); 1118var cs_cookie_val=Cookies.get('cs_enabled_cookie_term'+test_prefix+'_'+categoryCookie); 1119if(cs_cookie_val=='yes'){ 1120if(categoryCookie===CS_Data.cs_script_cat.facebook){ 1121Facebook.loadPixel(); 1122} 1123if(categoryCookie===CS_Data.cs_script_cat.bing){ 1124Bing.loadPixel(); 1125} 1126if(categoryCookie===CS_Data.cs_script_cat.analytics||(typeof CS_Data.cs_google_analytics_consent_mode!=="undefined"&&CS_Data.cs_google_analytics_consent_mode==1)){ 1127Analytics.loadPixel(); 1128} 1129if(categoryCookie===CS_Data.cs_script_cat.gads||(typeof CS_Data.cs_google_ads_consent_mode!=="undefined"&&CS_Data.cs_google_ads_consent_mode==1)){ 1130GAds.loadPixel(); 1131} 1132if(categoryCookie===CS_Data.cs_script_cat.pinterest){ 1133Pinterest.loadPixel(); 1134} 1135if(categoryCookie===CS_Data.cs_script_cat.tiktok){ 1136TikTok.loadPixel(); 1137}}else{ 1138if(categoryCookie===CS_Data.cs_script_cat.facebook){ 1139Facebook.disable(); 1140} 1141if(categoryCookie===CS_Data.cs_script_cat.bing){ 1142Bing.disable(); 1143} 1144if(categoryCookie===CS_Data.cs_script_cat.analytics&&(typeof CS_Data.cs_google_analytics_consent_mode=="undefined"||CS_Data.cs_google_analytics_consent_mode==0)){ 1145Analytics.disable(); 1146} 1147if(categoryCookie===CS_Data.cs_script_cat.gads&&(typeof CS_Data.cs_google_ads_consent_mode=="undefined"||CS_Data.cs_google_ads_consent_mode==0)){ 1148GAds.disable(); 1149} 1150if(categoryCookie===CS_Data.cs_script_cat.pinterest){ 1151Pinterest.disable(); 1152} 1153if(categoryCookie===CS_Data.cs_script_cat.tiktok){ 1154TikTok.disable(); 1155}} 1156if(Cookies.get('cs_enabled_advanced_matching')=='yes'){ 1157Facebook.loadPixel(); 1158}} 1159} 1160$(document).on('click','.cs_action_btn',function(e){ 1161e.preventDefault(); 1162var elm=$(this), 1163button_action=elm.attr('data-cs_action'); 1164if(button_action==='allow_all'){ 1165Facebook.loadPixel(); 1166Bing.loadPixel(); 1167Analytics.loadPixel(); 1168GAds.loadPixel(); 1169Pinterest.loadPixel(); 1170TikTok.loadPixel(); 1171}else if(button_action==='disable_all'){ 1172Facebook.disable(); 1173Bing.disable(); 1174if(CS_Data.cs_google_analytics_consent_mode==0||typeof CS_Data.cs_google_analytics_consent_mode=="undefined"){ 1175Analytics.disable(); 1176} 1177if(CS_Data.cs_google_ads_consent_mode==0||typeof CS_Data.cs_google_ads_consent_mode=="undefined"){ 1178GAds.disable(); 1179} 1180Pinterest.disable(); 1181TikTok.disable(); 1182}}); 1183}}
1184if(options.gdpr.real_cookie_banner_integration_enabled){ 1185var consentApi=window.consentApi; 1186if(consentApi){ 1187consentApi.consent("http", "_ga", "*") 1188.then(Analytics.loadPixel.bind(Analytics), Analytics.disable.bind(Analytics)); 1189consentApi.consent("http", "_fbp", "*") 1190.then(Facebook.loadPixel.bind(Facebook), Facebook.disable.bind(Facebook)); 1191consentApi.consent("http", "_pinterest_sess", ".pinterest.com") 1192.then(Pinterest.loadPixel.bind(Pinterest), Pinterest.disable.bind(Pinterest)); 1193consentApi.consent("http", "_uetsid", "*") 1194.then(Bing.loadPixel.bind(Bing), Bing.disable.bind(Bing)); 1195consentApi.consent("http", "1P_JAR", ".google.com") 1196.then(GAds.loadPixel.bind(GAds), GAds.disable.bind(GAds)); 1197consentApi.consent("http", "tt_webid_v2", ".tiktok.com") 1198.then(TikTok.loadPixel.bind(GAds), TikTok.disable.bind(GAds)); 1199}} 1200}, 1201isCheckoutPage: function (){ 1202return $('body').hasClass('woocommerce-checkout')||document.querySelector('.woocommerce-checkout') || 1203$('body').hasClass('edd-checkout'); 1204}, 1205addCheckoutFields:function(){ 1206var utm=""; 1207var utms=getUTMs() 1208$.each(utmTerms, function (index, name){ 1209if(index > 0){ 1210utm+="|"; 1211} 1212utm+=name+":"+utms[name]; 1213}); 1214var utmIdList=""; 1215var utmsIds=getUTMId() 1216$.each(utmId, function (index, name){ 1217if(index > 0){ 1218utmIdList+="|"; 1219} 1220utmIdList+=name+":"+utmsIds[name]; 1221}); 1222var utmIdListLast=""; 1223var utmsIdsLast=getUTMId(true) 1224$.each(utmId, function (index, name){ 1225if(index > 0){ 1226utmIdListLast+="|"; 1227} 1228utmIdListLast+=name+":"+utmsIdsLast[name]; 1229}); 1230var utmLast=""; 1231var utmsLast=getUTMs(true) 1232$.each(utmTerms, function (index, name){ 1233if(index > 0){ 1234utmLast+="|"; 1235} 1236utmLast+=name+":"+utmsLast[name]; 1237}); 1238var dateTime=getDateTime(); 1239var landing=Cookies.get('pys_landing_page'); 1240var lastLanding=Cookies.get('last_pys_landing_page'); 1241var trafic=Cookies.get('pysTrafficSource'); 1242var lastTrafic=Cookies.get('last_pysTrafficSource'); 1243var $form=null; 1244if($('body').hasClass('woocommerce-checkout')){ 1245$form=$("form.woocommerce-checkout"); 1246}else{ 1247$form=$("#edd_purchase_form"); 1248} 1249var inputs={'pys_utm':utm, 1250'pys_utm_id':utmIdList, 1251'pys_browser_time':dateTime.join("|"), 1252'pys_landing':landing, 1253'pys_source':trafic, 1254'pys_order_type': $(".wcf-optin-form").length > 0 ? "wcf-optin":"normal", 1255'last_pys_landing':lastLanding, 1256'last_pys_source':lastTrafic, 1257'last_pys_utm':utmLast, 1258'last_pys_utm_id':utmIdListLast, 1259} 1260Object.keys(inputs).forEach(function(key,index){ 1261$form.append("<input type='hidden' name='"+key+"' value='"+inputs[key]+"' /> "); 1262}); 1263}, 1264saveAdvancedFormData: function (email,phone,firstName,lastName){ 1265let data=Utils.getAdvancedFormData(); 1266if(email!=null){ 1267data["email"]=email; 1268} 1269if(phone!=null){ 1270data["phone"]=phone; 1271} 1272if(firstName!=null){ 1273data["first_name"]=firstName; 1274} 1275if(lastName!=null){ 1276data["last_name"]=lastName; 1277} 1278Cookies.set('pys_advanced_form_data', JSON.stringify(data),{ expires: 300 }); 1279GAds.updateEnhancedConversionData() 1280}, 1281getAdvancedFormData: function (){ 1282let dataStr=Cookies.get("pys_advanced_form_data"); 1283if(dataStr===undefined){ 1284return {'first_name':"",'last_name':"",'email':"",'phone':""};}else{ 1285return JSON.parse(dataStr); 1286}} 1287};}(options); 1288var TikTok=function (options){ 1289var initialized=false; 1290function fireEvent(name, event){ 1291if(typeof window.pys_event_data_filter==="function"&&window.pys_disable_event_filter(name,'tiktok')){ 1292return; 1293} 1294var params=Utils.copyProperties(event.params, {}); 1295event.pixelIds.forEach(function(pixelId){ 1296if(options.debug){ 1297console.log('[TikTok] ' + name, params,"pixel_id",pixelId); 1298} 1299if(options.tiktok.hasOwnProperty('advanced_matching') 1300&& Object.keys(options.tiktok.advanced_matching).length > 0){ 1301ttq.instance(pixelId).identify(options.tiktok.advanced_matching) 1302} 1303ttq.instance(pixelId).track(name,params) 1304}); 1305} 1306return { 1307tag: function(){ 1308return "tiktok"; 1309}, 1310isEnabled: function (){ 1311return options.hasOwnProperty('tiktok'); 1312}, 1313disable: function (){ 1314initialized=false; 1315}, 1316loadPixel:function (){ 1317if(initialized||!this.isEnabled()||!Utils.consentGiven('tiktok')){ 1318return; 1319} 1320!function (w, d, t){ 1321w.TiktokAnalyticsObject=t; 1322var ttq=w[t]=w[t]||[]; 1323ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"]; 1324ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}; 1325for(var i=0;i<ttq.methods.length;i++) 1326ttq.setAndDefer(ttq,ttq.methods[i]); 1327ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e}; 1328ttq.load=function(e,n){var i="https://analytics.tiktok.com/i18n/pixel/events.js";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};var o=document.createElement("script");o.type="text/javascript",o.async=!0,o.src=i+"?sdkid="+e+"&lib="+t;var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a)};}(window, document, 'ttq'); 1329options.tiktok.pixelIds.forEach(function (pixelId){ 1330ttq.load(pixelId); 1331ttq.page(); 1332}); 1333initialized=true; 1334if(options.staticEvents.hasOwnProperty('tiktok')){ 1335setTimeout(function (){ 1336Utils.fireStaticEvents('tiktok'); 1337}, 1500) 1338}}, 1339fireEvent: function (name, data){ 1340if(!initialized||!this.isEnabled()){ 1341return false;
1342} 1343data.delay=data.delay||0; 1344if(data.delay===0){ 1345fireEvent(name, data); 1346}else{ 1347setTimeout(function (name, params){ 1348fireEvent(name, params); 1349}, data.delay * 1000, name, data); 1350} 1351return true; 1352}, 1353onClickEvent: function (event){ 1354this.fireEvent(event.name, event); 1355}, 1356onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, is_external, $form){ 1357window.pysWooProductData=window.pysWooProductData||[]; 1358if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 1359return; 1360if(window.pysWooProductData.hasOwnProperty(product_id)){ 1361if(window.pysWooProductData[product_id].hasOwnProperty(this.tag())){ 1362var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]); 1363Utils.copyProperties(window.pysWooProductData[product_id][this.tag()]['params'], event.params); 1364if(options.woo.addToCartOnButtonValueEnabled&&options.woo.addToCartOnButtonValueOption!=='global'){ 1365if(product_type===Utils.PRODUCT_BUNDLE){ 1366var data=$(".bundle_form .bundle_data").data("bundle_form_data"); 1367var items_sum=getBundlePriceOnSingleProduct(data); 1368event.params.value=(parseFloat(data.base_price) + items_sum) * qty; 1369}else{ 1370event.params.value=event.params.value * qty; 1371}} 1372event.params.quantity=qty; 1373this.fireEvent(event.name, event); 1374}} 1375}, 1376onWooAddToCartOnButtonEvent: function (product_id){ 1377if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 1378return; 1379if(window.pysWooProductData.hasOwnProperty(product_id)){ 1380if(window.pysWooProductData[product_id].hasOwnProperty(this.tag())){ 1381var productData=window.pysWooProductData[product_id][this.tag()] 1382var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]) 1383Utils.copyProperties(productData['params'], event.params) 1384event.pixelIds=productData['pixelIds']; 1385this.fireEvent(event.name, event); 1386}} 1387}, 1388onEddAddToCartOnButtonEvent:function (download_id, price_index, qty){ 1389if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 1390return; 1391var event=Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]); 1392if(window.pysEddProductData.hasOwnProperty(download_id)){ 1393var index; 1394if(price_index){ 1395index=download_id + '_' + price_index; 1396}else{ 1397index=download_id; 1398} 1399if(window.pysEddProductData[download_id].hasOwnProperty(index)){ 1400if(window.pysEddProductData[download_id][index].hasOwnProperty(this.tag())){ 1401Utils.copyProperties(window.pysEddProductData[download_id][index][this.tag()].params, event.params); 1402this.fireEvent(event.name,event); 1403}} 1404}} 1405}}(options); 1406var Facebook=function (options){ 1407var defaultEventTypes=[ 1408'PageView', 1409'ViewContent', 1410'Search', 1411'AddToCart', 1412'AddToWishlist', 1413'InitiateCheckout', 1414'AddPaymentInfo', 1415'Purchase', 1416'Lead', 1417'Subscribe', 1418'CustomizeProduct', 1419'FindLocation', 1420'StartTrial', 1421'SubmitApplication', 1422'Schedule', 1423'Contact', 1424'Donate' 1425]; 1426var notCachedEventsIds=new Array(); 1427var isAddToCartFromJs=options.woo.hasOwnProperty("addToCartCatchMethod") 1428&& options.woo.addToCartCatchMethod==="add_cart_js"; 1429if(!isAddToCartFromJs){ 1430notCachedEventsIds.push('woo_add_to_cart_on_button_click') 1431} 1432var initialized=false; 1433var configuredPixels=new Array(); 1434function fireEvent(name, event){ 1435if(typeof window.pys_event_data_filter==="function"&&window.pys_disable_event_filter(name,'facebook')){ 1436return; 1437} 1438var data=event.params; 1439var ids=event.pixelIds; 1440var actionType=defaultEventTypes.includes(name) ? 'trackSingle':'trackSingleCustom'; 1441var params={}; 1442Utils.copyProperties(data, params);
1443Utils.copyProperties(Utils.getRequestParams(), params); 1444if(options.facebook.serverApiEnabled){ 1445if(event.e_id==="woo_remove_from_cart"){ 1446Facebook.updateEventId(event.name); 1447event.eventID=Facebook.getEventId(event.name); 1448}else if(isAddToCartFromJs&&event.e_id==="woo_add_to_cart_on_button_click"){ 1449Facebook.updateEventId(event.name); 1450event.eventID=Facebook.getEventId(event.name); 1451}else if(!notCachedEventsIds.includes(event.e_id)){ 1452var isApiDisabled=options.gdpr.all_disabled_by_api || 1453options.gdpr.facebook_disabled_by_api || 1454options.gdpr.tiktok_disabled_by_api || 1455options.gdpr.cookiebot_integration_enabled || 1456options.gdpr.cookie_notice_integration_enabled || 1457options.gdpr.consent_magic_integration_enabled || 1458options.gdpr.cookie_law_info_integration_enabled; 1459if(options.facebook.ajaxForServerEvent||event.type!=="static"){ 1460event.eventID=pys_generate_token(36); 1461} 1462if(options.facebook.ajaxForServerEvent||isApiDisabled||event.delay > 0||event.type!=="static"){ 1463var json={ 1464action: 'pys_api_event', 1465pixel: 'facebook', 1466event: name, 1467ids: ids, 1468data:params, 1469url:window.location.href, 1470eventID:event.eventID, 1471ajax_event:options.ajax_event 1472}; 1473if(event.hasOwnProperty('woo_order')){ 1474json['woo_order']=event.woo_order; 1475} 1476if(event.hasOwnProperty('edd_order')){ 1477json['edd_order']=event.edd_order; 1478} 1479if(event.e_id==="automatic_event_internal_link" 1480|| event.e_id==="automatic_event_outbound_link" 1481){ 1482setTimeout(function(){ 1483jQuery.ajax({ 1484type: 'POST', 1485url: options.ajaxUrl, 1486data: json, 1487headers: { 1488'Cache-Control': 'no-cache' 1489}, 1490success: function(){}, 1491}); 1492},500) 1493}else if(name=='PageView'){ 1494let expires=parseInt(options.cookie_duration); 1495var currentTimeInSeconds=Date.now(); 1496var randomNum=Math.floor(1000000000 + Math.random() * 9000000000); 1497timeoutDelay=0; 1498if(!Cookies.get('_fbp')){ 1499timeoutDelay=100; 1500} 1501if(getUrlParameter('fbclid')&&!Cookies.get('_fbc')){ 1502timeoutDelay=100; 1503} 1504setTimeout(function(){ 1505if(!Cookies.get('_fbp')){ 1506Cookies.set('_fbp','fb.1.'+currentTimeInSeconds+'.'+randomNum, { expires: expires }) 1507} 1508if(getUrlParameter('fbclid')&&!Cookies.get('_fbc')){ 1509Cookies.set('_fbc', 'fb.1.'+currentTimeInSeconds+'.'+getUrlParameter('fbclid'), { expires: expires }) 1510} 1511jQuery.ajax({ 1512type: 'POST', 1513url: options.ajaxUrl, 1514data: json, 1515headers: { 1516'Cache-Control': 'no-cache' 1517}, 1518success: function(){}, 1519}); 1520},timeoutDelay) 1521}else{ 1522jQuery.ajax({ 1523type: 'POST', 1524url: options.ajaxUrl, 1525data: json, 1526headers: { 1527'Cache-Control': 'no-cache' 1528}, 1529success: function(){}, 1530}); 1531}} 1532if(event.e_id!=="automatic_event_signup"&&name=="CompleteRegistration"&&options.facebook.wooCRSendFromServer){ 1533return; 1534}} 1535} 1536if(options.debug){ 1537console.log('[Facebook] ' + name, params,"pixel_ids",ids,"eventID",event.eventID); 1538} 1539ids.forEach(function (pixelId){ 1540var args={}; 1541if(options.facebook.serverApiEnabled&&event.hasOwnProperty('eventID')){ 1542args.eventID=pixelId+event.eventID; 1543}
1544Facebook.maybeInitPixel(pixelId); 1545fbq(actionType,pixelId, name, params,args); 1546}); 1547} 1548return { 1549tag: function(){ 1550return "facebook"; 1551}, 1552isEnabled: function (){ 1553return options.hasOwnProperty('facebook'); 1554}, 1555initEventIdCookies: function (key){ 1556var ids={}; 1557ids[key]=pys_generate_token(36) 1558Cookies.set('pys_fb_event_id', JSON.stringify(ids)); 1559}, 1560updateEventId:function(key){ 1561var cooData=Cookies.get("pys_fb_event_id") 1562if(cooData===undefined){ 1563this.initEventIdCookies(key); 1564}else{ 1565var data=JSON.parse(cooData); 1566data[key]=pys_generate_token(36); 1567Cookies.set('pys_fb_event_id', JSON.stringify(data)); 1568}}, 1569getEventId:function (key){ 1570var data=Cookies.get("pys_fb_event_id"); 1571if(data===undefined){ 1572this.initEventIdCookies(key); 1573data=Cookies.get("pys_fb_event_id"); 1574} 1575return JSON.parse(data)[key]; 1576}, 1577disable: function (){ 1578initialized=false; 1579}, 1580loadPixel: function (){ 1581if(initialized||!this.isEnabled()||!Utils.consentGiven('facebook')){ 1582return; 1583} 1584! function (f, b, e, v, n, t, s){ 1585if(f.fbq) return; 1586n=f.fbq=function (){ 1587n.callMethod ? 1588n.callMethod.apply(n, arguments):n.queue.push(arguments) 1589}; 1590if(!f._fbq) f._fbq=n; 1591n.push=n; 1592n.loaded = !0; 1593n.version='2.0'; 1594n.agent='dvpixelyoursite'; 1595n.queue=[]; 1596t=b.createElement(e); 1597t.async = !0; 1598t.src=v; 1599s=b.getElementsByTagName(e)[0]; 1600s.parentNode.insertBefore(t, s) 1601}(window, 1602document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); 1603options.facebook.pixelIds.forEach(function (pixelId){ 1604Facebook.maybeInitPixel(pixelId); 1605}); 1606initialized=true; 1607Utils.fireStaticEvents('facebook'); 1608}, 1609advancedMatching: function (){ 1610if(options.facebook.advancedMatchingEnabled){ 1611let advancedMatchingForm=Utils.getAdvancedFormData(); 1612let advancedMatching={}; 1613if(Object.keys(options.facebook.advancedMatching).length > 0){ 1614advancedMatching=options.facebook.advancedMatching; 1615} 1616if(!advancedMatching.hasOwnProperty("em") 1617&& advancedMatchingForm.hasOwnProperty("email")&&advancedMatchingForm["email"].length > 0){ 1618advancedMatching["em"]=advancedMatchingForm["email"]; 1619} 1620if(!advancedMatching.hasOwnProperty("ph") 1621&& advancedMatchingForm.hasOwnProperty("phone")&&advancedMatchingForm["phone"].length > 0){ 1622advancedMatching["ph"]=advancedMatchingForm["phone"]; 1623} 1624if(!advancedMatching.hasOwnProperty("fn") 1625&& advancedMatchingForm.hasOwnProperty("first_name")&&advancedMatchingForm["first_name"].length > 0){ 1626advancedMatching["fn"]=advancedMatchingForm["first_name"]; 1627} 1628if(!advancedMatching.hasOwnProperty("ln") 1629&& advancedMatchingForm.hasOwnProperty("last_name")&&advancedMatchingForm["last_name"].length > 0){ 1630advancedMatching["ln"]=advancedMatchingForm["last_name"]; 1631} 1632if(Object.keys(advancedMatching).length > 0){ 1633return advancedMatching; 1634}} 1635return false 1636}, 1637maybeInitPixel: function(pixelId){ 1638if(configuredPixels.includes(pixelId)) return; 1639if(options.facebook.removeMetadata){ 1640fbq('set', 'autoConfig', false, pixelId); 1641} 1642let advancedMatching=Facebook.advancedMatching(); 1643if(options.gdpr.consent_magic_integration_enabled&&typeof CS_Data!=="undefined"){ 1644if(!advancedMatching){ 1645fbq('init', pixelId); 1646}else{ 1647var cs_advanced_matching=Cookies.get('cs_enabled_advanced_matching'+test_prefix); 1648if(jQuery('#cs_enabled_advanced_matching'+test_prefix).length > 0){ 1649if(cs_advanced_matching=='yes'){ 1650fbq('init', pixelId, advancedMatching); 1651}else{ 1652fbq('init', pixelId); 1653}}else{ 1654fbq('init', pixelId, advancedMatching); 1655}} 1656}else{ 1657if(!advancedMatching){ 1658fbq('init', pixelId); 1659}else{ 1660fbq('init', pixelId, advancedMatching); 1661}} 1662configuredPixels.push(pixelId); 1663}, 1664fireEvent: function (name, data){ 1665if(!initialized||!this.isEnabled()){ 1666return false; 1667} 1668data.delay=data.delay||0; 1669data.params=data.params||{}; 1670if(data.delay===0){ 1671fireEvent(name, data); 1672}else{ 1673setTimeout(function (name, params){ 1674fireEvent(name, params); 1675}, data.delay * 1000, name, data); 1676} 1677return true; 1678}, 1679onAdSenseEvent: function (event){ 1680this.fireEvent(event.name, event); 1681}, 1682onClickEvent: function (event){ 1683this.fireEvent(event.name, event); 1684}, 1685onWatchVideo: function (event){ 1686this.fireEvent(event.name, event); 1687}, 1688onCommentEvent: function (event){ 1689this.fireEvent(event.name, event); 1690}, 1691onFormEvent: function (event){ 1692this.fireEvent(event.name, event); 1693}, 1694onDownloadEvent: function (event){ 1695this.fireEvent(event.name, event); 1696}, 1697onWooAddToCartOnButtonEvent: function (product_id){ 1698if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 1699return; 1700if(window.pysWooProductData.hasOwnProperty(product_id)){ 1701if(window.pysWooProductData[product_id].hasOwnProperty('facebook')){ 1702var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]) 1703Utils.copyProperties(window.pysWooProductData[product_id]['facebook']['params'], event.params) 1704event.pixelIds=window.pysWooProductData[product_id]['facebook']['pixelIds']; 1705this.fireEvent(event.name, event); 1706}} 1707},
1708onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, is_external, $form){ 1709window.pysWooProductData=window.pysWooProductData||[]; 1710if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 1711return; 1712if(product_type===Utils.PRODUCT_VARIABLE&&!options.facebook.wooVariableAsSimple){ 1713product_id=parseInt($form.find('input[name="variation_id"]').val()); 1714} 1715if(window.pysWooProductData.hasOwnProperty(product_id)){ 1716if(window.pysWooProductData[product_id].hasOwnProperty('facebook')){ 1717var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click.facebook); 1718Utils.copyProperties(window.pysWooProductData[product_id]['facebook']['params'], event.params); 1719var groupValue=0; 1720if(product_type===Utils.PRODUCT_GROUPED){ 1721$form.find(".woocommerce-grouped-product-list .qty").each(function(index){ 1722var childId=$(this).attr('name').replaceAll("quantity[","").replaceAll("]",""); 1723var quantity=parseInt($(this).val()); 1724if(isNaN(quantity)){ 1725quantity=0; 1726} 1727var childItem=window.pysWooProductData[product_id]['facebook'].grouped[childId]; 1728if(quantity==0){ 1729event.params.content_ids.forEach(function(el,index,array){ 1730if(el==childItem.content_id){ 1731array.splice(index, 1); 1732}}); 1733} 1734if(event.params.hasOwnProperty('contents')){ 1735event.params.contents.forEach(function(el,index,array){ 1736if(el.id==childItem.content_id){ 1737if(quantity > 0){ 1738el.quantity=quantity; 1739}else{ 1740array.splice(index, 1); 1741}} 1742}); 1743} 1744groupValue +=childItem.price * quantity; 1745}); 1746if(groupValue==0) return; 1747} 1748if(options.woo.addToCartOnButtonValueEnabled&&options.woo.addToCartOnButtonValueOption!=='global'){ 1749if(product_type===Utils.PRODUCT_GROUPED){ 1750event.params.value=groupValue; 1751}else if(product_type===Utils.PRODUCT_BUNDLE){ 1752var data=$(".bundle_form .bundle_data").data("bundle_form_data"); 1753var items_sum=getBundlePriceOnSingleProduct(data); 1754event.params.value=(parseFloat(data.base_price) + items_sum)* qty; 1755}else{ 1756event.params.value=event.params.value * qty; 1757}} 1758if(event.params.hasOwnProperty('contents')&&product_type!==Utils.PRODUCT_GROUPED){ 1759event.params.contents[0].quantity=qty; 1760} 1761var event_name=is_external ? options.woo.affiliateEventName:event.name; 1762this.fireEvent(event_name, event); 1763}} 1764}, 1765onWooRemoveFromCartEvent: function (event){ 1766this.fireEvent(event.name, event); 1767}, 1768onWooAffiliateEvent: function (product_id){ 1769if(!options.dynamicEvents.woo_affiliate.hasOwnProperty(this.tag())) 1770return; 1771var event=Utils.clone(options.dynamicEvents.woo_affiliate[this.tag()]); 1772if(window.pysWooProductData.hasOwnProperty(product_id)){ 1773if(window.pysWooProductData[product_id].hasOwnProperty('facebook')){ 1774Utils.copyProperties(window.pysWooProductData[product_id][this.tag()].params, event.params) 1775this.fireEvent(options.woo.affiliateEventName, event); 1776}} 1777}, 1778onWooPayPalEvent: function (event){ 1779this.fireEvent(event.name, event); 1780}, 1781onEddAddToCartOnButtonEvent: function (download_id, price_index, qty){ 1782if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 1783return; 1784var event=Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]); 1785if(window.pysEddProductData.hasOwnProperty(download_id)){ 1786var index; 1787if(price_index){ 1788index=download_id + '_' + price_index; 1789}else{ 1790index=download_id; 1791} 1792if(window.pysEddProductData[download_id].hasOwnProperty(index)){ 1793if(window.pysEddProductData[download_id][index].hasOwnProperty('facebook')){ 1794Utils.copyProperties(window.pysEddProductData[download_id][index]['facebook']["params"], event.params) 1795if(options.edd.addToCartOnButtonValueEnabled&&options.edd.addToCartOnButtonValueOption!=='global'){ 1796event.params.value=event.params.value * qty; 1797} 1798var contents=event.params.contents; 1799contents[0].quantity=qty; 1800event.params.contents=JSON.stringify(contents); 1801this.fireEvent(event.name,event); 1802}} 1803}}, 1804onEddRemoveFromCartEvent: function (event){ 1805this.fireEvent(event.name, event); 1806}, 1807onPageScroll: function (event){ 1808this.fireEvent(event.name, event); 1809}, 1810onTime: function (event){ 1811this.fireEvent(event.name, event); 1812}, 1813};}(options); 1814var Analytics=function (options){ 1815var initialized=false; 1816function fireEvent(name, data){ 1817if(typeof window.pys_event_data_filter==="function"&&window.pys_disable_event_filter(name,'ga')){ 1818return; 1819}
1820var eventParams=Utils.copyProperties(data.params, {}); 1821Utils.copyProperties(Utils.getRequestParams(), eventParams); 1822var _fireEvent=function (tracking_id,name,params){ 1823params['send_to']=tracking_id; 1824if(options.debug){ 1825console.log('[Google Analytics #' + tracking_id + '] ' + name, params); 1826} 1827gtag('event', name, params); 1828}; 1829data.trackingIds.forEach(function (tracking_id){ 1830var copyParams=Utils.copyProperties(eventParams, {}); 1831var params=mapParamsTov4(tracking_id,name,copyParams) 1832_fireEvent(tracking_id, name, params); 1833}); 1834} 1835function normalizeEventName(eventName){ 1836var matches={ 1837ViewContent: 'view_item', 1838AddToCart: 'add_to_cart', 1839AddToWishList: 'add_to_wishlist', 1840InitiateCheckout: 'begin_checkout', 1841Purchase: 'purchase', 1842Lead: 'generate_lead', 1843CompleteRegistration: 'sign_up', 1844AddPaymentInfo: 'set_checkout_option' 1845}; 1846return matches.hasOwnProperty(eventName) ? matches[eventName]:eventName; 1847} 1848function mapParamsTov4(tag,name,param){ 1849delete param.page_title; 1850delete param.event_url; 1851delete param.landing_page; 1852if(isv4(tag)){ 1853delete param.traffic_source; 1854delete param.event_category; 1855delete param.event_label; 1856delete param.ecomm_prodid; 1857delete param.ecomm_pagetype; 1858delete param.ecomm_totalvalue; 1859if(name==='search'){ 1860param['search']=param.search_term; 1861delete param.search_term; 1862delete param.non_interaction; 1863delete param.dynx_itemid; 1864delete param.dynx_pagetype; 1865delete param.dynx_totalvalue; 1866}}else{ 1867switch (name){ 1868case 'OutboundClick': 1869case 'InternalClick': { 1870let params={ 1871event_category: "Key Actions", 1872event_action: name, 1873non_interaction: param.non_interaction, 1874} 1875if(param.hasOwnProperty("target_url")){ 1876params['event_label']=param.target_url 1877} 1878if(options.trackTrafficSource){ 1879params['traffic_source']=param.traffic_source 1880} 1881return params; 1882} 1883case 'AdSense' : 1884case 'Comment' : 1885case 'login' : 1886case 'sign_up' : 1887case 'EmailClick' : 1888case 'TelClick':{ 1889let params={ 1890event_category: "Key Actions", 1891event_action: name, 1892non_interaction: param.non_interaction, 1893} 1894return params; 1895} 1896case 'Form':{ 1897let params={ 1898event_category: "Key Actions", 1899event_action: name, 1900non_interaction: param.non_interaction, 1901} 1902var formClass=(typeof param.form_class!='undefined') ? 'class: ' + param.form_class:''; 1903if(formClass!=""){ 1904params["event_label"]=formClass; 1905} 1906return params; 1907} 1908case 'Download':{ 1909let params={ 1910event_category: "Key Actions", 1911event_action: name, 1912event_label: param.download_name, 1913non_interaction: param.non_interaction, 1914} 1915return params; 1916} 1917case 'TimeOnPage' : 1918case 'PageScroll':{ 1919let params={ 1920event_category: "Key Actions", 1921event_action: name, 1922event_label: document.title, 1923non_interaction: param.non_interaction, 1924} 1925return params; 1926} 1927case 'search':{ 1928let params={ 1929event_category: "Key Actions", 1930event_action: name, 1931event_label: param.search_term, 1932non_interaction: param.non_interaction, 1933} 1934return params; 1935}} 1936delete param.post_type; 1937delete param.post_id; 1938delete param.plugin; 1939delete param.user_role; 1940delete param.cartlows; 1941delete param.cartflows_flow; 1942delete param.cartflows_step; 1943} 1944return param; 1945} 1946function isv4(tag){ 1947return tag.indexOf('G')===0; 1948} 1949return { 1950tag: function(){ 1951return "ga"; 1952}, 1953isEnabled: function (){ 1954return options.hasOwnProperty('ga'); 1955}, 1956disable: function (){ 1957initialized=false; 1958}, 1959loadPixel: function (){ 1960if(initialized||!this.isEnabled()||!Utils.consentGiven('analytics')){ 1961return; 1962} 1963Utils.loadGoogleTag(options.ga.trackingIds[0]); 1964var cd={ 1965'dimension1': 'event_hour', 1966'dimension2': 'event_day', 1967'dimension3': 'event_month' 1968}; 1969if(options.ga.retargetingLogic==='ecomm'){ 1970cd.dimension4='ecomm_prodid'; 1971cd.dimension5='ecomm_pagetype'; 1972cd.dimension6='ecomm_totalvalue'; 1973}else{ 1974cd.dimension4='dynx_itemid'; 1975cd.dimension5='dynx_pagetype'; 1976cd.dimension6='dynx_totalvalue'; 1977} 1978var config={ 1979'link_attribution': options.ga.enhanceLinkAttr, 1980'anonymize_ip': options.ga.anonimizeIP, 1981'custom_map': cd 1982}; 1983if(options.user_id&&options.user_id!=0){ 1984config.user_id=options.user_id; 1985} 1986if(options.ga.crossDomainEnabled){ 1987config.linker={ 1988accept_incoming: options.ga.crossDomainAcceptIncoming, 1989domains: options.ga.crossDomainDomains 1990};} 1991options.ga.trackingIds.forEach(function (trackingId,index){ 1992if(options.ga.isDebugEnabled.includes("index_"+index)){ 1993config.debug_mode=true; 1994}else{ 1995config.debug_mode=false; 1996} 1997if(isv4(trackingId)){ 1998if(options.ga.disableAdvertisingFeatures){ 1999config.allow_google_signals=false 2000}
2001if(options.ga.disableAdvertisingPersonalization){ 2002config.allow_ad_personalization_signals=false 2003}} 2004if(options.gdpr.cookiebot_integration_enabled&&typeof Cookiebot!=='undefined'){ 2005var cookiebot_consent_category=options.gdpr['cookiebot_analytics_consent_category']; 2006if(options.gdpr['analytics_prior_consent_enabled']){ 2007if(Cookiebot.consented===true&&Cookiebot.consent[cookiebot_consent_category]){ 2008gtag('config', trackingId, config); 2009}}else{ 2010if(Cookiebot.consent[cookiebot_consent_category]){ 2011gtag('config', trackingId, config); 2012}} 2013}else{ 2014gtag('config', trackingId, config); 2015}}); 2016initialized=true; 2017Utils.fireStaticEvents('ga'); 2018$(document).trigger("analytics_initialized") 2019}, 2020fireEvent: function (name, data){ 2021if(!initialized||!this.isEnabled()){ 2022return false; 2023} 2024data.delay=data.delay||0; 2025data.params=data.params||{}; 2026if(data.delay===0){ 2027fireEvent(name, data); 2028}else{ 2029setTimeout(function (name, params){ 2030fireEvent(name, params); 2031}, data.delay * 1000, name, data); 2032} 2033return true; 2034}, 2035onAdSenseEvent: function (event){ 2036this.fireEvent(event.name, event); 2037}, 2038onClickEvent: function (event){ 2039this.fireEvent(event.name, event); 2040}, 2041onWatchVideo: function (event){ 2042if(!event.hasOwnProperty("youtube_disabled") 2043|| !event.youtube_disabled 2044|| event.params.video_type!=="youtube"){ 2045this.fireEvent(event.name, event); 2046}}, 2047onCommentEvent: function (event){ 2048this.fireEvent(event.name, event); 2049}, 2050onFormEvent: function (event){ 2051this.fireEvent(event.name, event); 2052}, 2053onDownloadEvent: function (event){ 2054this.fireEvent(event.name, event); 2055}, 2056onWooAddToCartOnButtonEvent: function (product_id){ 2057if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 2058return; 2059if(window.pysWooProductData.hasOwnProperty(product_id)){ 2060if(window.pysWooProductData[product_id].hasOwnProperty('ga')){ 2061var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]); 2062Utils.copyProperties(window.pysWooProductData[product_id]['ga'].params, event.params) 2063event.trackingIds=window.pysWooProductData[product_id]['ga']['trackingIds']; 2064this.fireEvent(event.name, event); 2065}} 2066}, 2067onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, is_external, $form){ 2068window.pysWooProductData=window.pysWooProductData||[]; 2069if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 2070return; 2071var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]); 2072if(product_type===Utils.PRODUCT_VARIABLE&&!options.ga.wooVariableAsSimple){ 2073product_id=parseInt($form.find('input[name="variation_id"]').val()); 2074} 2075if(window.pysWooProductData.hasOwnProperty(product_id)){ 2076if(window.pysWooProductData[product_id].hasOwnProperty('ga')){ 2077Utils.copyProperties(window.pysWooProductData[product_id]['ga'].params, event.params); 2078if(product_type===Utils.PRODUCT_GROUPED){ 2079var groupValue=0; 2080$form.find(".woocommerce-grouped-product-list .qty").each(function(index){ 2081var childId=$(this).attr('name').replaceAll("quantity[","").replaceAll("]",""); 2082var quantity=parseInt($(this).val()); 2083if(isNaN(quantity)){ 2084quantity=0; 2085} 2086var childItem=window.pysWooProductData[product_id]['ga'].grouped[childId]; 2087event.params.items.forEach(function(el,index,array){ 2088if(el.id==childItem.content_id){ 2089if(quantity > 0){ 2090el.quantity=quantity; 2091el.price=childItem.price; 2092}else{ 2093array.splice(index, 1); 2094}} 2095}); 2096groupValue +=childItem.price * quantity; 2097}); 2098if(options.woo.addToCartOnButtonValueEnabled && 2099options.woo.addToCartOnButtonValueOption!=='global' && 2100event.params.hasOwnProperty('ecomm_totalvalue')){ 2101event.params.ecomm_totalvalue=groupValue; 2102} 2103if(groupValue==0) return; 2104}else{ 2105event.params.items[0].quantity=qty; 2106} 2107if(options.woo.addToCartOnButtonValueEnabled && 2108options.woo.addToCartOnButtonValueOption!=='global' && 2109product_type!==Utils.PRODUCT_GROUPED){ 2110if(event.params.hasOwnProperty('ecomm_totalvalue')){ 2111event.params.ecomm_totalvalue=event.params.items[0].price * qty; 2112}} 2113var eventName=is_external ? options.woo.affiliateEventName:event.name; 2114eventName=normalizeEventName(eventName); 2115this.fireEvent(eventName, event); 2116}} 2117}, 2118onWooCheckoutProgressStep: function (event){ 2119this.fireEvent(event.name, event); 2120}, 2121onWooSelectContent: function (event){ 2122this.fireEvent(event.name, event); 2123}, 2124onWooRemoveFromCartEvent: function (event){ 2125this.fireEvent(event.name, event); 2126}, 2127onWooAffiliateEvent: function (product_id){ 2128if(!options.dynamicEvents.woo_affiliate.hasOwnProperty(this.tag())) 2129return; 2130var event=options.dynamicEvents.woo_affiliate[this.tag()]; 2131if(window.pysWooProductData.hasOwnProperty(product_id)){ 2132if(window.pysWooProductData[product_id].hasOwnProperty('ga')){ 2133event=Utils.clone(event); 2134Utils.copyProperties(window.pysWooProductData[product_id][this.tag()], event.params) 2135this.fireEvent(normalizeEventName(options.woo.affiliateEventName), event); 2136}} 2137},
2138onWooPayPalEvent: function (event){ 2139this.fireEvent(event.name, event); 2140}, 2141onEddAddToCartOnButtonEvent: function (download_id, price_index, qty){ 2142if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 2143return; 2144var event=Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]); 2145if(window.pysEddProductData.hasOwnProperty(download_id)){ 2146var index; 2147if(price_index){ 2148index=download_id + '_' + price_index; 2149}else{ 2150index=download_id; 2151} 2152if(window.pysEddProductData[download_id].hasOwnProperty(index)){ 2153if(window.pysEddProductData[download_id][index].hasOwnProperty('ga')){ 2154Utils.copyProperties(window.pysEddProductData[download_id][index]['ga'].params, event.params); 2155event.params.items[0].quantity=qty; 2156this.fireEvent(event.name,event); 2157}} 2158}}, 2159onEddRemoveFromCartEvent: function (event){ 2160this.fireEvent(event.name, event); 2161}, 2162onPageScroll: function (event){ 2163if(initialized&&this.isEnabled()){ 2164this.fireEvent(event.name, event); 2165}}, 2166onTime: function (event){ 2167if(initialized&&this.isEnabled()){ 2168this.fireEvent(event.name, event); 2169}}, 2170};}(options); 2171var GAds=function (options){ 2172var initialized=false; 2173var isAllowEnhancedConversions=false 2174function fireEvent(name, data){ 2175if(typeof window.pys_event_data_filter==="function"&&window.pys_disable_event_filter(event_name,'google_ads')){ 2176return; 2177} 2178var _params=Utils.copyProperties(data.params,{}); 2179var ids=data.ids; 2180var conversion_labels=data.conversion_labels;
2181Utils.copyProperties(Utils.getRequestParams(), _params); 2182var _fireEvent=function (conversion_id,event_name){ 2183params=Utils.copyProperties(_params, { send_to: conversion_id }); 2184if("conversion"===event_name){ 2185delete params.items; 2186delete params.ecomm_pagetype; 2187delete params.ecomm_prodid; 2188delete params.ecomm_totalvalue; 2189} 2190if(options.debug){ 2191console.log('[Google Ads #' + conversion_id + '] ' + event_name, params); 2192} 2193gtag('event', event_name, params); 2194}; 2195if(conversion_labels.length > 0){ 2196conversion_labels.forEach(function (conversion_id){ 2197_fireEvent(conversion_id,name); 2198}); 2199}else{ 2200data.conversion_ids.forEach(function (conversion_id){ 2201_fireEvent(conversion_id,name); 2202}); 2203if(ids.length){ 2204ids.forEach(function (conversion_id){ 2205_fireEvent(conversion_id,"conversion"); 2206}); 2207}} 2208} 2209function normalizeEventName(eventName){ 2210var matches={ 2211ViewContent: 'view_item', 2212AddToCart: 'add_to_cart', 2213AddToWishList: 'add_to_wishlist', 2214InitiateCheckout: 'begin_checkout', 2215Purchase: 'purchase', 2216Lead: 'generate_lead', 2217CompleteRegistration: 'sign_up', 2218AddPaymentInfo: 'set_checkout_option' 2219}; 2220return matches.hasOwnProperty(eventName) ? matches[eventName]:eventName; 2221} 2222return { 2223tag: function(){ 2224return "google_ads"; 2225}, 2226isEnabled: function (){ 2227return options.hasOwnProperty('google_ads'); 2228}, 2229disable: function (){ 2230initialized=false; 2231}, 2232updateEnhancedConversionData:function (){ 2233if(isAllowEnhancedConversions){ 2234var advanced=Utils.getAdvancedFormData() 2235if(Object.keys(options.google_ads.user_data).length==0){ 2236if(advanced["email"].length > 0){ 2237gtag('set', 'user_data', {"email":advanced["email"]}); 2238}} 2239}}, 2240loadPixel: function (){ 2241if(initialized||!this.isEnabled()||!Utils.consentGiven('google_ads')){ 2242return; 2243} 2244Utils.loadGoogleTag(options.google_ads.conversion_ids[0]); 2245options.google_ads.conversion_ids.forEach(function (conversion_id,index){ 2246gtag('config', conversion_id); 2247if(options.google_ads.enhanced_conversion.includes("index_"+index)){ 2248isAllowEnhancedConversions=true 2249gtag('config', conversion_id,{ 'allow_enhanced_conversions':true }); 2250} 2251if(isAllowEnhancedConversions){ 2252var advanced=Utils.getAdvancedFormData() 2253if(Object.keys(options.google_ads.user_data).length > 0){ 2254gtag('set', 'user_data', options.google_ads.user_data); 2255}else if(advanced["email"].length > 0){ 2256gtag('set', 'user_data', {"email":advanced["email"]}); 2257}} 2258}); 2259initialized=true; 2260Utils.fireStaticEvents('google_ads'); 2261}, 2262fireEvent: function (name, data){ 2263if(!initialized||!this.isEnabled()){ 2264return false; 2265} 2266data.delay=data.delay||0; 2267data.params=data.params||{}; 2268data.ids=data.ids||[]; 2269data.conversion_labels=data.conversion_labels||[]; 2270if(data.delay===0){ 2271fireEvent(name, data); 2272}else{ 2273setTimeout(function (name, data){ 2274fireEvent(name, data); 2275}, data.delay * 1000, name, data); 2276} 2277return true; 2278}, 2279onAdSenseEvent: function (event){ 2280this.fireEvent(event.name, event); 2281}, 2282onClickEvent: function (action, params){ 2283}, 2284onWatchVideo: function (event){ 2285this.fireEvent(event.name, event); 2286}, 2287onCommentEvent: function (event){ 2288this.fireEvent(event.name, event); 2289}, 2290onFormEvent: function (event){ 2291this.fireEvent(event.name, event); 2292}, 2293onDownloadEvent: function (event){ 2294this.fireEvent(event.name, event); 2295}, 2296onWooAddToCartOnButtonEvent: function (product_id){ 2297if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 2298return; 2299if(window.pysWooProductData.hasOwnProperty(product_id)){ 2300if(window.pysWooProductData[product_id].hasOwnProperty('google_ads')){ 2301var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]) 2302Utils.copyProperties(window.pysWooProductData[product_id]['google_ads']['params'].params, event.params) 2303event["ids"]=window.pysWooProductData[product_id]['google_ads']['ids'] 2304event["conversion_labels"]=window.pysWooProductData[product_id]['google_ads']['conversion_labels'] 2305this.fireEvent(event.name, event); 2306}} 2307}, 2308onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, is_external, $form){ 2309window.pysWooProductData=window.pysWooProductData||[]; 2310if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 2311return; 2312var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]); 2313if(product_type===Utils.PRODUCT_VARIABLE&&!options.google_ads.wooVariableAsSimple){ 2314product_id=parseInt($form.find('input[name="variation_id"]').val()); 2315} 2316if(window.pysWooProductData.hasOwnProperty(product_id)){ 2317if(window.pysWooProductData[product_id].hasOwnProperty('google_ads')){ 2318Utils.copyProperties(window.pysWooProductData[product_id]['google_ads']["params"], event.params); 2319event["ids"]=window.pysWooProductData[product_id]['google_ads']['ids'] 2320event["conversion_labels"]=window.pysWooProductData[product_id]['google_ads']['conversion_labels'] 2321var groupValue=0; 2322if(product_type===Utils.PRODUCT_GROUPED){ 2323$form.find(".woocommerce-grouped-product-list .qty").each(function(index){ 2324var childId=$(this).attr('name').replaceAll("quantity[","").replaceAll("]",""); 2325var quantity=parseInt($(this).val()); 2326if(isNaN(quantity)){ 2327quantity=0; 2328} 2329var childItem=window.pysWooProductData[product_id]['google_ads'].grouped[childId]; 2330if(options.woo.addToCartOnButtonValueEnabled && 2331options.woo.addToCartOnButtonValueOption!=='global'){
2332event.params.items.forEach(function(el,index,array){ 2333if(el.id==childItem.content_id){ 2334if(quantity > 0){ 2335el.quantity=quantity; 2336el.price=childItem.price; 2337}else{ 2338array.splice(index, 1); 2339}} 2340}); 2341} 2342groupValue +=childItem.price * quantity; 2343}); 2344if(groupValue==0) return; 2345event.params.value=groupValue; 2346}else{ 2347event.params.items[0].quantity=qty; 2348} 2349if(options.woo.addToCartOnButtonValueEnabled && 2350options.woo.addToCartOnButtonValueOption!=='global' && 2351product_type!==Utils.PRODUCT_GROUPED){ 2352event.params.value=event.params.value * qty; 2353} 2354var eventName=is_external ? options.woo.affiliateEventName:event.name; 2355eventName=normalizeEventName(eventName); 2356this.fireEvent(eventName, event); 2357}} 2358}, 2359onWooRemoveFromCartEvent: function (event){ 2360this.fireEvent(event.name, event); 2361}, 2362onWooAffiliateEvent: function (product_id){ 2363if(!options.dynamicEvents.woo_affiliate.hasOwnProperty(this.tag())) 2364return; 2365var event=options.dynamicEvents.woo_affiliate[this.tag()]; 2366if(window.pysWooProductData.hasOwnProperty(product_id)){ 2367if(window.pysWooProductData[product_id].hasOwnProperty('google_ads')){ 2368event=Utils.clone(event) 2369Utils.copyProperties(window.pysWooProductData[product_id][this.tag()], event.params) 2370this.fireEvent(normalizeEventName(options.woo.affiliateEventName), event); 2371}} 2372}, 2373onWooPayPalEvent: function (event){ 2374this.fireEvent(event.name, event); 2375}, 2376onEddAddToCartOnButtonEvent: function (download_id, price_index, qty){ 2377if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag())) 2378return; 2379var event=options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]; 2380if(window.pysEddProductData.hasOwnProperty(download_id)){ 2381var index; 2382if(price_index){ 2383index=download_id + '_' + price_index; 2384}else{ 2385index=download_id; 2386} 2387if(window.pysEddProductData[download_id].hasOwnProperty(index)){ 2388if(window.pysEddProductData[download_id][index].hasOwnProperty('google_ads')){ 2389event=Utils.clone(event) 2390Utils.copyProperties(window.pysEddProductData[download_id][index]['google_ads']['params'], event.params); 2391event.ids=window.pysEddProductData[download_id][index]['google_ads']['ids'] 2392this.fireEvent(event.name, event); 2393}} 2394}}, 2395onEddRemoveFromCartEvent: function (event){ 2396this.fireEvent(event.name, event); 2397}, 2398onPageScroll: function (event){ 2399if(initialized&&this.isEnabled()){ 2400this.fireEvent(event.name, event); 2401}}, 2402onTime: function (event){ 2403if(initialized&&this.isEnabled()){ 2404this.fireEvent(event.name, event); 2405}}, 2406};}(options); 2407window.pys=window.pys||{}; 2408window.pys.Facebook=Facebook; 2409window.pys.Analytics=Analytics; 2410window.pys.GAds=GAds; 2411window.pys.Utils=Utils; 2412window.pys.TikTok=TikTok; 2413$(document).ready(function (){ 2414if($("#pys_late_event").length > 0){ 2415var events=JSON.parse($("#pys_late_event").attr("dir")); 2416for(var key in events){ 2417var event={}; 2418event[events[key].e_id]=[events[key]]; 2419if(options.staticEvents.hasOwnProperty(key)){ 2420Object.assign(options.staticEvents[key], event); 2421}else{ 2422options.staticEvents[key]=event; 2423}} 2424} 2425var Pinterest=Utils.setupPinterestObject(); 2426var Bing=Utils.setupBingObject(); 2427if((options.woo.enabled||options.edd.enabled)&&(options.woo.enabled_save_data_to_orders||options.edd.enabled_save_data_to_orders)){ 2428Utils.manageCookies(); 2429}else{ 2430Cookies.remove('pys_first_visit') 2431Cookies.remove('pysTrafficSource') 2432Cookies.remove('pys_landing_page') 2433Cookies.remove('last_pys_landing_page') 2434Cookies.remove('last_pysTrafficSource') 2435Cookies.remove('pys_start_session') 2436Cookies.remove('pys_session_limit') 2437$.each(Utils.utmTerms, function (index, name){ 2438Cookies.remove('pys_' + name) 2439}); 2440$.each(Utils.utmId,function(index,name){ 2441Cookies.remove('pys_' + name) 2442}) 2443$.each(Utils.utmTerms, function (index, name){ 2444Cookies.remove('last_pys_' + name) 2445}); 2446$.each(Utils.utmId,function(index,name){ 2447Cookies.remove('last_pys_' + name) 2448}); 2449}
2450Utils.initializeRequestParams(); 2451Utils.setupGdprCallbacks(); 2452if(options.enable_auto_save_advance_matching){ 2453$(document).on("blur","input[type='email']",function (){ 2454let email=$(this).val().trim().toLowerCase(); 2455if(Utils.validateEmail(email)){ 2456Utils.saveAdvancedFormData(email,null,null,null); 2457}}) 2458$(document).on("blur","input[type='tel']",function (){ 2459let phone=$(this).val().trim().replace(/\D/g, ""); 2460if(phone.length > 5){ 2461Utils.saveAdvancedFormData(null,phone,null,null); 2462}}) 2463$(document).on("blur","input[type='text']",function (){ 2464let name; 2465if($(this).attr("name")&&$(this).attr("name")!=''){ 2466name=$(this).attr("name").trim() 2467} 2468if(name&&options.advance_matching_fn_names.includes(name)){ 2469let value=$(this).val().trim(); 2470if(value.length > 0){ 2471Utils.saveAdvancedFormData(null,null,value,null); 2472}} 2473if(name&&options.advance_matching_ln_names.includes(name)){ 2474let value=$(this).val().trim(); 2475if(value.length > 0){ 2476Utils.saveAdvancedFormData(null,null,null,value); 2477}} 2478if(name&&options.advance_matching_tel_names.includes(name)){ 2479let value=$(this).val().trim(); 2480if(value.length > 0){ 2481Utils.saveAdvancedFormData(null,value,null,null); 2482}} 2483}) 2484} 2485if(options.dynamicEvents.hasOwnProperty("automatic_event_internal_link") || 2486options.dynamicEvents.hasOwnProperty("automatic_event_outbound_link") || 2487options.dynamicEvents.hasOwnProperty("automatic_event_tel_link") || 2488options.dynamicEvents.hasOwnProperty("automatic_event_email_link") || 2489options.dynamicEvents.hasOwnProperty("automatic_event_download") 2490){ 2491$(document).onFirst('click', 'a, button, input[type="button"], input[type="submit"]', function (e){ 2492var $elem=$(this); 2493if(options.dynamicEvents.hasOwnProperty("automatic_event_download")){ 2494var isFired=false; 2495if($elem.is('a')){ 2496var href=$elem.attr('href'); 2497if(typeof href!=="string"){ 2498return; 2499} 2500href=href.trim(); 2501var extension=Utils.getLinkExtension(href); 2502var track_download=false; 2503if(extension.length > 0){ 2504if(options.dynamicEvents.hasOwnProperty("automatic_event_download")){ 2505var pixels=Object.keys(options.dynamicEvents.automatic_event_download); 2506for (var i=0; i < pixels.length; i++){ 2507var event=Utils.clone(options.dynamicEvents.automatic_event_download[pixels[i]]); 2508var extensions=event.extensions; 2509if(extensions.includes(extension)){ 2510if(pixels[i]=="tiktok"){ 2511getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2512}else{ 2513if(options.enable_remove_download_url_param){ 2514href=href.split('?')[0]; 2515} 2516event.params.download_url=href; 2517event.params.download_type=extension; 2518event.params.download_name=Utils.getLinkFilename(href); 2519getPixelBySlag(pixels[i]).onDownloadEvent(event); 2520} 2521isFired=true; 2522}} 2523}} 2524} 2525if(isFired){ 2526return; 2527}} 2528if(!e.hasOwnProperty('originalEvent')){ 2529return; 2530} 2531if($elem.hasClass("add_to_cart_button") || 2532$elem.hasClass("single_add_to_cart_button")){ 2533return; 2534} 2535if(options.dynamicEvents.hasOwnProperty("wcf_add_to_cart_on_next_step_click") 2536&& $elem.hasClass("wcf-next-step-link")){ 2537return; 2538} 2539if(options.dynamicEvents.hasOwnProperty("wcf_add_to_cart_on_bump_click") 2540&& $elem.hasClass("wcf-bump-order-cb")){ 2541return; 2542} 2543if($elem.hasClass("remove_from_cart_button")){ 2544return; 2545} 2546if($elem.hasClass("remove")){ 2547if($elem.parents('.cart_item').length||$elem.parents('.mini_cart_item').length) 2548return; 2549} 2550if($elem.attr("name")=="update_cart"||$elem.attr("name")=="apply_coupon"){ 2551return; 2552} 2553if($elem.hasClass('pys_block')){ 2554return; 2555} 2556var text=""; 2557var target_url=""; 2558var linkType="Internal Click"; 2559if($elem.is('a')){ 2560var href=$elem.attr('href'); 2561if(typeof href!=="string"){ 2562return; 2563} 2564href=href.trim(); 2565text=$elem.text(); 2566if(options.enable_remove_target_url_param){ 2567target_url=href.split('?')[0]; 2568}else{ 2569target_url=href 2570} 2571if(href.startsWith('mailto:')){ 2572if(options.dynamicEvents.hasOwnProperty("automatic_event_email_link")){ 2573var pixels=Object.keys(options.dynamicEvents.automatic_event_email_link); 2574for(var i=0;i<pixels.length;i++){ 2575var event=Utils.clone(options.dynamicEvents.automatic_event_email_link[pixels[i]]);
2576Utils.copyProperties(Utils.getRequestParams(), event.params); 2577getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2578}} 2579return; 2580} 2581if(href.startsWith('tel:')){ 2582if(options.dynamicEvents.hasOwnProperty("automatic_event_tel_link")){ 2583var pixels=Object.keys(options.dynamicEvents.automatic_event_tel_link); 2584for(var i=0;i<pixels.length;i++){ 2585var event=Utils.clone(options.dynamicEvents.automatic_event_tel_link[pixels[i]]); 2586Utils.copyProperties(Utils.getRequestParams(), event.params); 2587getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2588}} 2589return; 2590} 2591if(href.startsWith('http')){ 2592var host=$elem.context!=undefined ? $elem.context.host:$elem[0].host; 2593if(document.location.host!=host){ 2594linkType='External Click'; 2595}} 2596}else if($elem.is('button')){ 2597if($elem.hasClass("forminator-button-submit")){ 2598return; 2599} 2600text=$elem.text(); 2601}else if($elem.is('input[type="button"]')){ 2602text=$elem.val(); 2603}else if($elem.is('input[type="submit"]')){ 2604if($elem.parents("form.comment-form")){ 2605return; 2606} 2607if($elem.parents("form")){ 2608return; 2609} 2610text=$elem.val(); 2611}else{ 2612return; 2613} 2614text=Utils.filterEmails(text); 2615if(linkType==="Internal Click" 2616&& options.dynamicEvents.hasOwnProperty("automatic_event_internal_link") 2617){ 2618var pixels=Object.keys(options.dynamicEvents.automatic_event_internal_link); 2619for(var i=0;i<pixels.length;i++){ 2620var event=Utils.clone(options.dynamicEvents.automatic_event_internal_link[pixels[i]]); 2621if(pixels[i]!=="tiktok"){ 2622event.params["text"]=text; 2623if(target_url){ 2624event.params["target_url"]=target_url; 2625}
2626Utils.copyProperties(Utils.getRequestParams(), event.params); 2627} 2628getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2629}} 2630if(linkType==="External Click" 2631&& options.dynamicEvents.hasOwnProperty("automatic_event_outbound_link") 2632){ 2633var pixels=Object.keys(options.dynamicEvents.automatic_event_outbound_link); 2634for(var i=0;i<pixels.length;i++){ 2635var event=Utils.clone(options.dynamicEvents.automatic_event_outbound_link[pixels[i]]); 2636if(pixels[i]!=="tiktok"){ 2637event.params["text"]=text; 2638if(target_url){ 2639event.params["target_url"]=target_url; 2640} 2641Utils.copyProperties(Utils.getRequestParams(), event.params); 2642} 2643getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2644}} 2645}); 2646} 2647if(options.dynamicEvents.hasOwnProperty("automatic_event_adsense")){ 2648var isOverGoogleAd=false; 2649$(document) 2650.on('mouseover', 'ins iframe', function (){ 2651isOverGoogleAd=true; 2652}) 2653.on('mouseout', 'iframe', function (){ 2654isOverGoogleAd=false; 2655}); 2656$(window) 2657.on("blur",function (){ 2658if(isOverGoogleAd){ 2659console.log('automatic_event_adsense') 2660if(options.dynamicEvents.hasOwnProperty("automatic_event_adsense")){ 2661var pixels=Object.keys(options.dynamicEvents.automatic_event_adsense); 2662for (var i=0; i < pixels.length; i++){ 2663var event=Utils.clone(options.dynamicEvents.automatic_event_adsense[pixels[i]]);
2664Utils.copyProperties(Utils.getRequestParams(), event.params); 2665getPixelBySlag(pixels[i]).onAdSenseEvent(event); 2666}} 2667$.each(options.triggerEventTypes, function (triggerType, events){ 2668$.each(events, function (eventId, triggers){ 2669switch (triggerType){ 2670case 'ad_sense_click': 2671Utils.fireTriggerEvent(eventId); 2672break; 2673}}); 2674}); 2675}}) 2676.trigger("focus"); 2677} 2678var dynamicAdsenseEventsTriggers=0 2679$.each(options.triggerEventTypes, function (triggerType, events){ 2680if(triggerType=="ad_sense_click"){ 2681dynamicAdsenseEventsTriggers++; 2682}}); 2683if(dynamicAdsenseEventsTriggers > 0){ 2684var isOverGoogleAd=false; 2685$(document) 2686.on('mouseover', 'ins > ins > iframe', function (){ 2687isOverGoogleAd=true; 2688}) 2689.on('mouseout', 'iframe', function (){ 2690isOverGoogleAd=false; 2691}); 2692$(window) 2693.on("blur",function (){ 2694if(isOverGoogleAd){ 2695$.each(options.triggerEventTypes, function (triggerType, events){ 2696$.each(events, function (eventId, triggers){ 2697switch (triggerType){ 2698case 'ad_sense_click': 2699Utils.fireTriggerEvent(eventId); 2700break; 2701}}); 2702}); 2703}}) 2704.trigger("focus"); 2705} 2706if(options.dynamicEvents.hasOwnProperty("automatic_event_scroll") 2707){ 2708var singlePageScroll=function (){ 2709var docHeight=$(document).height() - $(window).height(); 2710var isFired=false; 2711if(options.dynamicEvents.hasOwnProperty("automatic_event_scroll")){ 2712var pixels=Object.keys(options.dynamicEvents.automatic_event_scroll); 2713for(var i=0;i<pixels.length;i++){ 2714var event=Utils.clone(options.dynamicEvents.automatic_event_scroll[pixels[i]]); 2715var scroll=Math.round(docHeight * event.scroll_percent / 100) 2716if(scroll < $(window).scrollTop()){
2717Utils.copyProperties(Utils.getRequestParams(), event.params); 2718getPixelBySlag(pixels[i]).onPageScroll(event); 2719isFired=true 2720}} 2721} 2722if(isFired){ 2723$(document).off("scroll",singlePageScroll); 2724}} 2725$(document).on("scroll",singlePageScroll); 2726} 2727if(options.dynamicEvents.hasOwnProperty("automatic_event_time_on_page")){ 2728var pixels=Object.keys(options.dynamicEvents.automatic_event_time_on_page); 2729var time=options.dynamicEvents.automatic_event_time_on_page[pixels[0]].time_on_page; 2730setTimeout(function(){ 2731for(var i=0;i<pixels.length;i++){ 2732var event=Utils.clone(options.dynamicEvents.automatic_event_time_on_page[pixels[i]]); 2733Utils.copyProperties(Utils.getRequestParams(), event.params); 2734getPixelBySlag(pixels[i]).onTime(event); 2735}},time*1000); 2736} 2737$.each(options.triggerEventTypes, function (triggerType, events){ 2738$.each(events, function (eventId, triggers){ 2739switch (triggerType){ 2740case 'url_click': 2741break; 2742case 'css_click': 2743Utils.setupCSSClickEvents(eventId, triggers); 2744break; 2745case 'css_mouseover': 2746Utils.setupMouseOverClickEvents(eventId, triggers); 2747break; 2748case 'scroll_pos': 2749Utils.setupScrollPosEvents(eventId, triggers); 2750break; 2751case 'comment': 2752Utils.setupCommentEvents(eventId, triggers); 2753break; 2754}}); 2755}); 2756if(options.woo.enabled){ 2757if(options.dynamicEvents.hasOwnProperty("wcf_add_to_cart_on_next_step_click")){ 2758$("body").on("click",'.wcf-next-step-link',function (){ 2759var pixels=Object.keys(options.dynamicEvents.wcf_add_to_cart_on_next_step_click); 2760for(var i=0;i<pixels.length;i++){ 2761var event=Utils.clone(options.dynamicEvents.wcf_add_to_cart_on_next_step_click[pixels[i]]) 2762getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2763}}); 2764} 2765if(options.dynamicEvents.hasOwnProperty("wcf_add_to_cart_on_bump_click") || 2766options.dynamicEvents.hasOwnProperty("wcf_bump")){ 2767$("body").on('change','.wcf-bump-order-cb',function (){ 2768if(this.checked){ 2769if(options.dynamicEvents.hasOwnProperty("wcf_add_to_cart_on_bump_click")){ 2770var pixels=Object.keys(options.dynamicEvents.wcf_add_to_cart_on_bump_click); 2771for(var i=0;i<pixels.length;i++){ 2772var event=Utils.clone(options.dynamicEvents.wcf_add_to_cart_on_bump_click[pixels[i]]); 2773getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2774}} 2775if(options.dynamicEvents.hasOwnProperty("wcf_bump")){ 2776var pixels=Object.keys(options.dynamicEvents.wcf_bump); 2777for(var i=0;i<pixels.length;i++){ 2778var event=Utils.clone(options.dynamicEvents.wcf_bump[pixels[i]]); 2779getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2780}} 2781}else{ 2782if(options.dynamicEvents.hasOwnProperty("wcf_remove_from_cart_on_bump_click")){ 2783var pixels=Object.keys(options.dynamicEvents.wcf_remove_from_cart_on_bump_click); 2784for(var i=0;i<pixels.length;i++){ 2785var event=Utils.clone(options.dynamicEvents.wcf_remove_from_cart_on_bump_click[pixels[i]]); 2786getPixelBySlag(pixels[i]).fireEvent(event.name, event); 2787}} 2788}}); 2789} 2790if(options.dynamicEvents.hasOwnProperty("woo_add_to_cart_on_button_click") 2791&& options.woo.hasOwnProperty("addToCartCatchMethod") 2792&& options.woo.addToCartCatchMethod==="add_cart_js" 2793){ 2794$('.add_to_cart_button:not(.product_type_variable,.product_type_bundle,.single_add_to_cart_button)').on("click",function (e){ 2795var product_id=$(this).data('product_id'); 2796if(typeof product_id!=='undefined'){ 2797Facebook.onWooAddToCartOnButtonEvent(product_id,$(this)); 2798Analytics.onWooAddToCartOnButtonEvent(product_id); 2799GAds.onWooAddToCartOnButtonEvent(product_id); 2800Pinterest.onWooAddToCartOnButtonEvent(product_id); 2801Bing.onWooAddToCartOnButtonEvent(product_id); 2802TikTok.onWooAddToCartOnButtonEvent(product_id); 2803}}); 2804$('body').onFirst('click','button.single_add_to_cart_button,.single_add_to_cart_button',function (e){ 2805var $button=$(this); 2806if($button.hasClass('disabled')){ 2807return; 2808} 2809var $form=$button.closest('form'); 2810var product_type=Utils.PRODUCT_SIMPLE; 2811var is_external=false; 2812if($form.length===0){ 2813is_external=true; 2814}else if($form.hasClass('variations_form')){ 2815product_type=Utils.PRODUCT_VARIABLE; 2816}else if($form.hasClass('bundle_form')){ 2817product_type=Utils.PRODUCT_BUNDLE; 2818}else if($form.hasClass('grouped_form')){ 2819product_type=Utils.PRODUCT_GROUPED; 2820} 2821var product_id; 2822var qty; 2823if(product_type===Utils.PRODUCT_GROUPED){ 2824qty=1; 2825product_id=parseInt($form.find('*[name="add-to-cart"]').val()); 2826}else if(product_type===Utils.PRODUCT_VARIABLE){ 2827product_id=parseInt($form.find('*[name="add-to-cart"]').val()); 2828var qtyTag=$form.find('input[name="quantity"]'); 2829if(qtyTag.length <=0){ 2830qtyTag=$form.find('select[name="quantity"]'); 2831} 2832qty=parseInt(qtyTag.val()); 2833}else if(is_external){ 2834product_id=options.woo.singleProductId; 2835qty=1; 2836}else{ 2837product_id=parseInt($form.find('*[name="add-to-cart"]').val()); 2838var qtyTag=$form.find('input[name="quantity"]'); 2839if(qtyTag.length <=0){ 2840qtyTag=$form.find('select[name="quantity"]'); 2841} 2842qty=parseInt(qtyTag.val()); 2843} 2844Facebook.onWooAddToCartOnSingleEvent(product_id, qty, product_type, is_external, $form); 2845Analytics.onWooAddToCartOnSingleEvent(product_id, qty, product_type, is_external, $form); 2846GAds.onWooAddToCartOnSingleEvent(product_id, qty, product_type, is_external, $form); 2847Pinterest.onWooAddToCartOnSingleEvent(product_id, qty, product_type, is_external, $form); 2848Bing.onWooAddToCartOnSingleEvent(product_id, qty, product_type, is_external, $form); 2849TikTok.onWooAddToCartOnSingleEvent(product_id, qty, product_type, is_external, $form); 2850}); 2851}
2852if(options.dynamicEvents.hasOwnProperty("woo_affiliate")){ 2853$('.product_type_external').on("click",function (e){ 2854var product_id=$(this).data('product_id'); 2855if(typeof product_id!=='undefined'){ 2856Facebook.onWooAffiliateEvent(product_id); 2857Analytics.onWooAffiliateEvent(product_id); 2858GAds.onWooAffiliateEvent(product_id); 2859Pinterest.onWooAffiliateEvent(product_id); 2860Bing.onWooAffiliateEvent(product_id); 2861}}); 2862} 2863if(options.dynamicEvents.hasOwnProperty("woo_remove_from_cart")){ 2864$('body').on('click', options.woo.removeFromCartSelector, function (e){ 2865var $a=$(e.currentTarget), 2866href=$a.attr('href'); 2867var regex=new RegExp("[\\?&]remove_item=([^&#]*)"), 2868results=regex.exec(href); 2869if(results!==null){ 2870var item_hash=results[1]; 2871if(options.dynamicEvents["woo_remove_from_cart"].hasOwnProperty(item_hash)){ 2872var events=options.dynamicEvents["woo_remove_from_cart"][item_hash]; 2873Utils.fireEventForAllPixel("onWooRemoveFromCartEvent",events) 2874}} 2875}); 2876} 2877if(options.dynamicEvents.hasOwnProperty("woo_paypal")){ 2878$(document).onFirst('submit click', '#place_order', function (e){ 2879var method=$('form[name="checkout"] input[name="payment_method"]:checked').val(); 2880if(method!=='paypal'){ 2881return; 2882} 2883var events=options.dynamicEvents.woo_paypal; 2884Utils.fireEventForAllPixel("onWooPayPalEvent",events) 2885}); 2886} 2887if(options.dynamicEvents.hasOwnProperty("woo_initiate_checkout_progress_f")){ 2888$(document).on("change",".woocommerce-validated #billing_first_name",function (){ 2889Analytics.onWooCheckoutProgressStep(options.dynamicEvents.woo_initiate_checkout_progress_f[Analytics.tag()]); 2890}); 2891} 2892if(options.dynamicEvents.hasOwnProperty("woo_initiate_checkout_progress_l")){ 2893$(document).on("change",".woocommerce-validated #billing_last_name",function (){ 2894Analytics.onWooCheckoutProgressStep(options.dynamicEvents.woo_initiate_checkout_progress_l[Analytics.tag()]); 2895}); 2896} 2897if(options.dynamicEvents.hasOwnProperty("woo_initiate_checkout_progress_e")){ 2898$(document).on("change",".woocommerce-validated #billing_email",function (){ 2899Analytics.onWooCheckoutProgressStep(options.dynamicEvents.woo_initiate_checkout_progress_e[Analytics.tag()]); 2900}); 2901} 2902if(options.dynamicEvents.hasOwnProperty("woo_initiate_checkout_progress_o")){ 2903$(document).onFirst('submit click', '#place_order', function (){ 2904Analytics.onWooCheckoutProgressStep(options.dynamicEvents.woo_initiate_checkout_progress_o[Analytics.tag()]); 2905}); 2906} 2907if(options.dynamicEvents.hasOwnProperty("woo_select_content_search") || 2908options.dynamicEvents.hasOwnProperty("woo_select_content_shop") || 2909options.dynamicEvents.hasOwnProperty("woo_select_content_tag") || 2910options.dynamicEvents.hasOwnProperty("woo_select_content_single") || 2911options.dynamicEvents.hasOwnProperty("woo_select_content_category") 2912){ 2913$('.product.type-product a.woocommerce-loop-product__link').onFirst('click', function (evt){ 2914var productId=$(this).parent().find("a.add_to_cart_button").attr("data-product_id"); 2915if(options.dynamicEvents.hasOwnProperty("woo_select_content_search") && 2916options.dynamicEvents.woo_select_content_search.hasOwnProperty(productId)){ 2917Analytics.onWooSelectContent(options.dynamicEvents.woo_select_content_search[productId][Analytics.tag()]); 2918}else if(options.dynamicEvents.hasOwnProperty("woo_select_content_shop") && 2919options.dynamicEvents.woo_select_content_shop.hasOwnProperty(productId)){ 2920Analytics.onWooSelectContent(options.dynamicEvents.woo_select_content_shop[productId][Analytics.tag()]); 2921}else if(options.dynamicEvents.hasOwnProperty("woo_select_content_tag") && 2922options.dynamicEvents.woo_select_content_tag.hasOwnProperty(productId)){ 2923Analytics.onWooSelectContent(options.dynamicEvents.woo_select_content_tag[productId][Analytics.tag()]); 2924}else if(options.dynamicEvents.hasOwnProperty("woo_select_content_single") && 2925options.dynamicEvents.woo_select_content_single.hasOwnProperty(productId)){ 2926Analytics.onWooSelectContent(options.dynamicEvents.woo_select_content_single[productId][Analytics.tag()]); 2927}else if(options.dynamicEvents.hasOwnProperty("woo_select_content_category") && 2928options.dynamicEvents.woo_select_content_category.hasOwnProperty(productId)){ 2929Analytics.onWooSelectContent(options.dynamicEvents.woo_select_content_category[productId][Analytics.tag()]); 2930}}); 2931}}
2932if(options.edd.enabled){ 2933if(options.dynamicEvents.hasOwnProperty("edd_add_to_cart_on_button_click")){ 2934$('form.edd_download_purchase_form .edd-add-to-cart').on("click",function (e){ 2935var $button=$(this); 2936var $form=$button.closest('form'); 2937var variable_price=$button.data('variablePrice'); 2938var price_mode=$button.data('priceMode'); 2939var ids=[]; 2940var quantities=[]; 2941var qty; 2942var id; 2943if(variable_price==='yes'&&price_mode==='multi'){ 2944id=$form.find('input[name="download_id"]').val(); 2945$.each($form.find('input[name="edd_options[price_id][]"]:checked'), function (i, el){ 2946ids.push(id + '_' + $(el).val()); 2947}); 2948$.each(ids, function (i, variant_id){ 2949var variant_index=variant_id.split('_', 2); 2950qty=$form.find('input[name="edd_download_quantity_' + variant_index[1] + '"]').val(); 2951if(typeof qty!=='undefined'){ 2952quantities.push(qty); 2953}else{ 2954quantities.push(1); 2955}}); 2956}else if(variable_price==='yes'&&price_mode==='single'){ 2957id=$form.find('input[name="download_id"]').val(); 2958ids.push(id + '_' + $form.find('input[name="edd_options[price_id][]"]:checked').val()); 2959qty=$form.find('input[name="edd_download_quantity"]').val(); 2960if(typeof qty!=='undefined'){ 2961quantities.push(qty); 2962}else{ 2963quantities.push(1); 2964}}else{ 2965ids.push($button.data('downloadId')); 2966qty=$form.find('input[name="edd_download_quantity"]').val(); 2967if(typeof qty!=='undefined'){ 2968quantities.push(qty); 2969}else{ 2970quantities.push(1); 2971}} 2972$.each(ids, function (i, download_id){ 2973var q=parseInt(quantities[i]); 2974var variant_index=download_id.toString().split('_', 2); 2975var price_index; 2976if(variant_index.length===2){ 2977download_id=variant_index[0]; 2978price_index=variant_index[1]; 2979} 2980Facebook.onEddAddToCartOnButtonEvent(download_id, price_index, q); 2981Analytics.onEddAddToCartOnButtonEvent(download_id, price_index, q); 2982GAds.onEddAddToCartOnButtonEvent(download_id, price_index, q); 2983Pinterest.onEddAddToCartOnButtonEvent(download_id, price_index, q); 2984Bing.onEddAddToCartOnButtonEvent(download_id, price_index, q); 2985TikTok.onEddAddToCartOnButtonEvent(download_id, price_index, q); 2986}); 2987}); 2988} 2989if(options.dynamicEvents.hasOwnProperty("edd_remove_from_cart")){ 2990$('form#edd_checkout_cart_form .edd_cart_remove_item_btn').on("click",function (e){ 2991var href=$(this).attr('href'); 2992var key=href.substring(href.indexOf('=') + 1).charAt(0); 2993if(options.dynamicEvents.edd_remove_from_cart.hasOwnProperty(key)){ 2994var events=options.dynamicEvents.edd_remove_from_cart[key]; 2995Utils.fireEventForAllPixel("onEddRemoveFromCartEvent",events) 2996}}); 2997}} 2998Utils.setupURLClickEvents(); 2999if(options.dynamicEvents.hasOwnProperty("automatic_event_comment") 3000){ 3001$('form.comment-form').on("submit",function (){ 3002if(options.dynamicEvents.hasOwnProperty("automatic_event_comment")){ 3003var pixels=Object.keys(options.dynamicEvents.automatic_event_comment); 3004for (var i=0; i < pixels.length; i++){ 3005var event=Utils.clone(options.dynamicEvents.automatic_event_comment[pixels[i]]);
3006Utils.copyProperties(Utils.getRequestParams(), event.params); 3007getPixelBySlag(pixels[i]).onCommentEvent(event); 3008}} 3009}); 3010} 3011if(options.dynamicEvents.hasOwnProperty("automatic_event_form")){ 3012$(document).onFirst('submit', 'form', function (e){ 3013var $form=$(this); 3014if($form.hasClass('comment-form')||$form.hasClass('search-form')||$form.attr('id')==='adminbarsearch'){ 3015return; 3016} 3017if($form.hasClass('woocommerce-product-search')||$form.hasClass('cart')||$form.hasClass('woocommerce-cart-form') || 3018$form.hasClass('woocommerce-shipping-calculator')||$form.hasClass('checkout')||$form.hasClass('checkout_coupon')){ 3019return; 3020} 3021if($form.hasClass('edd_form')||$form.hasClass('edd_download_purchase_form')){ 3022return; 3023} 3024if($form.hasClass('wpcf7-form')){ 3025return; 3026} 3027if($form.hasClass('forminator-custom-form')||$form.hasClass('forminator_ajax')){ 3028return; 3029} 3030if($form.hasClass('wpforms-form')||$form.hasClass('wpforms-ajax-form')){ 3031return; 3032} 3033if($form.parent().hasClass('nf-form-layout')){ 3034return; 3035} 3036if($form.hasClass('frm-fluent-form')){ 3037return; 3038} 3039if(!options.enable_success_send_form){ 3040var params={ 3041form_id: $form.attr('id'), 3042form_class: $form.attr('class'), 3043text: $form.find('[type="submit"]').is('input') ? 3044$form.find('[type="submit"]').val():$form.find('[type="submit"]').text() 3045}; 3046if(options.dynamicEvents.hasOwnProperty("automatic_event_form")){ 3047var pixels=Object.keys(options.dynamicEvents.automatic_event_form); 3048for (var i=0; i < pixels.length; i++){ 3049var event=Utils.clone(options.dynamicEvents.automatic_event_form[pixels[i]]); 3050if(pixels[i]==="tiktok"){ 3051getPixelBySlag(pixels[i]).fireEvent(event.name, event); 3052}else{ 3053Utils.copyProperties(params, event.params,)
3054Utils.copyProperties(Utils.getRequestParams(), event.params); 3055getPixelBySlag(pixels[i]).onFormEvent(event); 3056}} 3057}} 3058}); 3059} 3060document.addEventListener('wpcf7mailsent', function(event){ 3061var form_id=event.detail.contactFormId; 3062var sendEventId=null; 3063var disabled_form_action=false; 3064if(options.triggerEventTypes.hasOwnProperty('CF7')){ 3065key_event=Object.keys(options.triggerEventTypes.CF7)[0]; 3066if(options.triggerEventTypes.CF7[key_event].hasOwnProperty('disabled_form_action')){ 3067disabled_form_action=options.triggerEventTypes.CF7[key_event].disabled_form_action; 3068} 3069$.each(options.triggerEventTypes.CF7, function (eventId, triggers){ 3070$.each(triggers.forms, function (index, value){ 3071if(value==form_id){ 3072sendEventId=eventId; 3073};}); 3074}); 3075} 3076if(sendEventId!=null){ 3077Utils.fireTriggerEvent(sendEventId); 3078if(!disabled_form_action){ 3079sendFormAction($(event.target), form_id); 3080}}else{ 3081sendFormAction($(event.target), form_id); 3082}}, false); 3083$(document).on('forminator:form:submit:success', function(event){ 3084var form_id=$(event.target).find('input[name="form_id"]').val(); 3085var sendEventId=null; 3086var disabled_form_action=false; 3087if(options.triggerEventTypes.hasOwnProperty('forminator')){ 3088key_event=Object.keys(options.triggerEventTypes.forminator)[0]; 3089if(options.triggerEventTypes.forminator[key_event].hasOwnProperty('disabled_form_action')){ 3090disabled_form_action=options.triggerEventTypes.forminator[key_event].disabled_form_action; 3091} 3092$.each(options.triggerEventTypes.forminator, function (eventId, triggers){ 3093$.each(triggers.forms, function (index, value){ 3094if(value==form_id){ 3095sendEventId=eventId; 3096};}); 3097}); 3098} 3099if(sendEventId!=null){ 3100Utils.fireTriggerEvent(sendEventId); 3101if(!disabled_form_action){ 3102sendFormAction($(event.target), form_id); 3103}}else{ 3104sendFormAction($(event.target), form_id); 3105}}); 3106$('form.wpforms-form').on('wpformsAjaxSubmitSuccess', (event)=> { 3107var form_id=$(event.target).attr('data-formid'); 3108var sendEventId=null; 3109var disabled_form_action=false; 3110if(options.triggerEventTypes.hasOwnProperty('wpforms')){ 3111key_event=Object.keys(options.triggerEventTypes.wpforms)[0]; 3112if(options.triggerEventTypes.wpforms[key_event].hasOwnProperty('disabled_form_action')){ 3113disabled_form_action=options.triggerEventTypes.wpforms[key_event].disabled_form_action; 3114} 3115$.each(options.triggerEventTypes.wpforms, function (eventId, triggers){ 3116$.each(triggers.forms, function (index, value){ 3117if(value==form_id){ 3118sendEventId=eventId; 3119};}); 3120}); 3121} 3122if(sendEventId!=null){ 3123Utils.fireTriggerEvent(sendEventId); 3124if(!disabled_form_action){ 3125sendFormAction($(event.target), form_id); 3126}}else{ 3127sendFormAction($(event.target), form_id); 3128}}) 3129$(document).on('frmFormComplete', function(event, form, response){ 3130const form_id=$(form).find('input[name="form_id"]').val(); 3131var sendEventId=null; 3132var disabled_form_action=false; 3133if(options.triggerEventTypes.hasOwnProperty('formidable')){ 3134key_event=Object.keys(options.triggerEventTypes.formidable)[0]; 3135if(options.triggerEventTypes.formidable[key_event].hasOwnProperty('disabled_form_action')){ 3136disabled_form_action=options.triggerEventTypes.formidable[key_event].disabled_form_action; 3137} 3138$.each(options.triggerEventTypes.formidable, function (eventId, triggers){ 3139$.each(triggers.forms, function (index, value){ 3140if(value==form_id){ 3141sendEventId=eventId; 3142};}); 3143}); 3144} 3145if(sendEventId!=null){ 3146Utils.fireTriggerEvent(sendEventId); 3147if(!disabled_form_action){ 3148sendFormAction($(event.target), form_id); 3149}}else{ 3150sendFormAction($(event.target), form_id); 3151}}); 3152$(document).onFirst('nfFormSubmitResponse', function (event, data){ 3153const form_id=data.response.data.form_id; 3154var sendEventId=null; 3155var disabled_form_action=false; 3156if(options.triggerEventTypes.hasOwnProperty('ninjaform')){ 3157key_event=Object.keys(options.triggerEventTypes.ninjaform)[0]; 3158if(options.triggerEventTypes.ninjaform[key_event].hasOwnProperty('disabled_form_action')){ 3159disabled_form_action=options.triggerEventTypes.ninjaform[key_event].disabled_form_action; 3160} 3161$.each(options.triggerEventTypes.ninjaform, function (eventId, triggers){ 3162$.each(triggers.forms, function (index, value){ 3163if(value==form_id){ 3164sendEventId=eventId; 3165};}); 3166}); 3167} 3168if(sendEventId!=null){ 3169Utils.fireTriggerEvent(sendEventId); 3170if(!disabled_form_action){ 3171sendFormAction($(event.target), form_id); 3172}}else{ 3173sendFormAction($(event.target), form_id); 3174}}); 3175var fluentForms=$('form.frm-fluent-form'); 3176fluentForms.each(function(){ 3177var $form=$(this); 3178$form.on('fluentform_submission_success', function(event){ 3179var $formItem=$(this); 3180var form_id=$formItem.attr('data-form_id'); 3181var sendEventId=null; 3182var disabled_form_action=false; 3183if(options.triggerEventTypes.hasOwnProperty('fluentform')){ 3184key_event=Object.keys(options.triggerEventTypes.fluentform)[0]; 3185if(options.triggerEventTypes.fluentform[key_event].hasOwnProperty('disabled_form_action')){ 3186disabled_form_action=options.triggerEventTypes.fluentform[key_event].disabled_form_action; 3187} 3188$.each(options.triggerEventTypes.fluentform, function (eventId, triggers){ 3189$.each(triggers.forms, function (index, value){ 3190if(value==form_id){ 3191sendEventId=eventId; 3192};}); 3193}); 3194} 3195if(sendEventId!=null){ 3196Utils.fireTriggerEvent(sendEventId); 3197if(!disabled_form_action){ 3198sendFormAction($(event.target), form_id); 3199}}else{ 3200sendFormAction($(event.target), form_id); 3201}}); 3202}); 3203Utils.loadPixels(); 3204if(Utils.isCheckoutPage()){ 3205Utils.addCheckoutFields(); 3206}}); 3207if(options.automatic.enable_video){ 3208var consentApi=window.consentApi; 3209if(consentApi&&options.gdpr.real_cookie_banner_integration_enabled){ 3210if(options.automatic.enable_youtube&&options.enable_event_video&&options.enable_automatic_events){ 3211window.consentApi.consent("http", "CONSENT", ".youtube.com").then(Utils.initYouTubeAPI); 3212}
3213if(options.automatic.enable_vimeo&&options.enable_event_video&&options.enable_automatic_events){ 3214window.consentApi.consent("http", "player", ".vimeo.com").then(Utils.initVimeoAPI); 3215}}else{ 3216if(options.automatic.enable_youtube&&options.enable_event_video&&options.enable_automatic_events){ 3217Utils.initYouTubeAPI(); 3218} 3219if(options.automatic.enable_vimeo&&options.enable_event_video&&options.enable_automatic_events){ 3220Utils.initVimeoAPI(); 3221}} 3222} 3223var sendFormAction=function (form_target, formId){ 3224var params={ 3225form_id: formId, 3226text: form_target.find('[type="submit"]').is('input') ? form_target.find('[type="submit"]').val() : 3227form_target.find('.forminator-button-submit').text()!='' ? form_target.find('.forminator-button-submit').text() : 3228form_target.find('[type="submit"]').text() 3229}; 3230if(options.dynamicEvents.hasOwnProperty("automatic_event_form")){ 3231var pixels=Object.keys(options.dynamicEvents.automatic_event_form); 3232for (var i=0; i < pixels.length; i++){ 3233var event=options.dynamicEvents.automatic_event_form[pixels[i]]; 3234if(pixels[i]==="tiktok"){ 3235getPixelBySlag(pixels[i]).fireEvent(event.name, event); 3236}else{ 3237Utils.copyProperties(params, event.params)
3238Utils.copyProperties(Utils.getRequestParams(), event.params); 3239getPixelBySlag(pixels[i]).onFormEvent(event); 3240}} 3241}} 3242}(jQuery, pysOptions); 3243function pys_generate_token(length){ 3244var a="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".split(""); 3245var b=[]; 3246for (var i=0; i<length; i++){ 3247var j=(Math.random() * (a.length-1)).toFixed(0); 3248b[i]=a[j]; 3249} 3250return b.join(""); 3251} 3252function getBundlePriceOnSingleProduct(data){ 3253var items_sum=0; 3254jQuery(".bundle_form .bundled_product").each(function(index){ 3255var id=jQuery(this).find(".cart").data("bundled_item_id"); 3256var item_price=data.prices[id]; 3257var item_quantity=jQuery(this).find(".bundled_qty").val(); 3258if(!jQuery(this).hasClass("bundled_item_optional") || 3259jQuery(this).find(".bundled_product_optional_checkbox input").prop('checked')){ 3260items_sum +=item_price*item_quantity; 3261}}); 3262return items_sum; 3263} 3264function getPixelBySlag(slug){ 3265switch (slug){ 3266case "facebook": return window.pys.Facebook; 3267case "ga": return window.pys.Analytics; 3268case "google_ads": return window.pys.GAds; 3269case "bing": return window.pys.Bing; 3270case "pinterest": return window.pys.Pinterest; 3271case "tiktok": return window.pys.TikTok; 3272}} 3273var getUrlParameter=function getUrlParameter(sParam){ 3274var sPageURL=window.location.search.substring(1), 3275sURLVariables=sPageURL.split('&'), 3276sParameterName, 3277i; 3278for (i=0; i < sURLVariables.length; i++){ 3279sParameterName=sURLVariables[i].split('='); 3280if(sParameterName[0]===sParam){ 3281return sParameterName[1]===undefined ? true:decodeURIComponent(sParameterName[1]); 3282}} 3283return false; 3284}; 3285function inArray(needle, haystack){ 3286var length=haystack.length; 3287for(var i=0; i < length; i++){ 3288if(haystack[i]==needle) return true; 3289} 3290return false; 3291};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.