!function(t,e){"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,(function(){function t(){}let e=t.prototype;return e.on=function(t,e){if(!t||!e)return this;let i=this._events=this._events||{},s=i[t]=i[t]||[];return s.includes(e)||s.push(e),this},e.once=function(t,e){if(!t||!e)return this;this.on(t,e);let i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this},e.off=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;let s=i.indexOf(e);return-1!=s&&i.splice(s,1),this},e.emitEvent=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;i=i.slice(0),e=e||[];let s=this._onceEvents&&this._onceEvents[t];for(let n of i){s&&s[n]&&(this.off(t,n),delete s[n]),n.apply(this,e)}return this},e.allOff=function(){return delete this._events,delete this._onceEvents,this},t})),
function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,(function(t,e){let i=t.jQuery,s=t.console;function n(t,e,o){if(!(this instanceof n))return new n(t,e,o);let r=t;var h;("string"==typeof t&&(r=document.querySelectorAll(t)),r)?(this.elements=(h=r,Array.isArray(h)?h:"object"==typeof h&&"number"==typeof h.length?[...h]:[h]),this.options={},"function"==typeof e?o=e:Object.assign(this.options,e),o&&this.on("always",o),this.getImages(),i&&(this.jqDeferred=new i.Deferred),setTimeout(this.check.bind(this))):s.error(`Bad element for imagesLoaded ${r||t}`)}n.prototype=Object.create(e.prototype),n.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)};const o=[1,9,11];n.prototype.addElementImages=function(t){"IMG"===t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);let{nodeType:e}=t;if(!e||!o.includes(e))return;let i=t.querySelectorAll("img");for(let t of i)this.addImage(t);if("string"==typeof this.options.background){let e=t.querySelectorAll(this.options.background);for(let t of e)this.addElementBackgroundImages(t)}};const r=/url\((['"])?(.*?)\1\)/gi;function h(t){this.img=t}function d(t,e){this.url=t,this.element=e,this.img=new Image}return n.prototype.addElementBackgroundImages=function(t){let e=getComputedStyle(t);if(!e)return;let i=r.exec(e.backgroundImage);for(;null!==i;){let s=i&&i[2];s&&this.addBackground(s,t),i=r.exec(e.backgroundImage)}},n.prototype.addImage=function(t){let e=new h(t);this.images.push(e)},n.prototype.addBackground=function(t,e){let i=new d(t,e);this.images.push(i)},n.prototype.check=function(){if(this.progressedCount=0,this.hasAnyBroken=!1,!this.images.length)return void this.complete();let t=(t,e,i)=>{setTimeout((()=>{this.progress(t,e,i)}))};this.images.forEach((function(e){e.once("progress",t),e.check()}))},n.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount===this.images.length&&this.complete(),this.options.debug&&s&&s.log(`progress: ${i}`,t,e)},n.prototype.complete=function(){let t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){let t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},h.prototype=Object.create(e.prototype),h.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.img.crossOrigin&&(this.proxyImage.crossOrigin=this.img.crossOrigin),this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.currentSrc||this.img.src)},h.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},h.prototype.confirm=function(t,e){this.isLoaded=t;let{parentNode:i}=this.img,s="PICTURE"===i.nodeName?i:this.img;this.emitEvent("progress",[this,s,e])},h.prototype.handleEvent=function(t){let e="on"+t.type;this[e]&&this[e](t)},h.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},h.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},h.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype=Object.create(h.prototype),d.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},d.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},n.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&(i=e,i.fn.imagesLoaded=function(t,e){return new n(this,t,e).jqDeferred.promise(i(this))})},n.makeJQueryPlugin(),n}));
var mailchimp,mailchimp_cart,mailchimp_billing_email,mailchimp_username_email,mailchimp_registration_email,mailchimp_submitted_email=false,mailchimpReady=function(a){/in/.test(document.readyState)?setTimeout(()=>{mailchimpReady(a)},9):a()};function mailchimpGetCurrentUserByHash(a){try{if(!mailchimp_public_data.allowed_to_set_cookies)return;var b=mailchimp_public_data.ajax_url+"?action=mailchimp_get_user_by_hash&hash="+a,c=new XMLHttpRequest;c.open("POST",b,!0),c.onload=function(){if(c.status>=200&&c.status<400){var a=JSON.parse(c.responseText);if(!a)return;mailchimp_cart.valueEmail(a.email)&&mailchimp_cart.setEmail(a.email)}};c.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",c.responseText)};c.setRequestHeader("Content-Type","application/json");c.setRequestHeader("Accept","application/json");c.send()}catch(a){console.log("mailchimp.get_email_by_hash.error",a)}}function mailchimpHandleBillingEmail(selector){try{if(!mailchimp_public_data.allowed_to_set_cookies)return;if(mailchimp_public_data.disable_carts)return;var subscribed=document.querySelector("#mailchimp_woocommerce_newsletter");if(!subscribed)subscribed=document.querySelector("#subscribe-to-newsletter");if(!selector)selector="#billing_email";var a=document.querySelector(selector);var b=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(b)||mailchimp_submitted_email===b){return false}mailchimp_cart.setEmail(b);var c=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email";var d=new XMLHttpRequest;d.open("POST",c,!0);d.onload=function(){var successful=d.status>=200&&d.status<400;var msg=successful?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error";if(successful){mailchimp_submitted_email=b}console.log(msg,d.responseText)};d.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",d.responseText)};d.setRequestHeader("Content-Type","application/x-www-form-urlencoded");d.setRequestHeader("Accept","application/json");d.send("email="+b+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(subscribed&&subscribed.checked?"1":"0"));return true}catch(a){console.log("mailchimp.handle_billing_email.error",a);mailchimp_submitted_email=!1}}!function(){"use strict";function mailchimpCart(){this.email_types="input[type=email]";this.regex_email=/^([A-Za-z0-9_+\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;this.current_email=null;this.previous_email=null;this.expireUser=function(){this.current_email=null;if(!mailchimp_public_data.allowed_to_set_cookies)return;mailchimp.storage.expire("mailchimp.cart.current_email")};this.expireSaved=function(){if(!mailchimp_public_data.allowed_to_set_cookies)return;mailchimp.storage.expire("mailchimp.cart.items")};this.setEmail=function(a){if(!mailchimp_public_data.allowed_to_set_cookies)return;if(!this.valueEmail(a))return false;this.setPreviousEmail(this.getEmail());mailchimp.storage.set("mailchimp.cart.current_email",this.current_email=a)};this.getEmail=function(){if(!mailchimp_public_data.allowed_to_set_cookies)return;if(this.current_email)return this.current_email;var a=mailchimp.storage.get("mailchimp.cart.current_email",!1);if(!a||!this.valueEmail(a))return false;return this.current_email=a};this.setPreviousEmail=function(a){if(!mailchimp_public_data.allowed_to_set_cookies)return;if(!this.valueEmail(a))return false;mailchimp.storage.set("mailchimp.cart.previous_email",this.previous_email=a)};this.valueEmail=function(a){return this.regex_email.test(a)};return this}var g={extend:function(a,b){for(var c in b||{})b.hasOwnProperty(c)&&(a[c]=b[c]);return a},getQueryStringVars:function(){var a=window.location.search||"",b=[],c={};if(a=a.substr(1),a.length){b=a.split("&");for(var d in b){var e=b[d];if("string"==typeof e){var f=e.split("="),g=f[0],h=f[1];g.length&&("undefined"==typeof c[g]&&(c[g]=[]),c[g].push(h))}}}return c},unEscape:function(a){return decodeURIComponent(a)},escape:function(a){return encodeURIComponent(a)},createDate:function(a,b){a||(a=0);var c=new Date,d=b?c.getDate()-a:c.getDate()+a;return c.setDate(d),c},arrayUnique:function(a){for(var b=a.concat(),c=0;c<b.length;++c)for(var d=c+1;d<b.length;++d)b[c]===b[d]&&b.splice(d,1);return b},objectCombineUnique:function(a){for(var b=a[0],c=1;c<a.length;c++){var d=a[c];for(var e in d)b[e]=d[e]}return b}},h=function(a,b){var c=function(a,b,d){return 1===arguments.length?c.get(a):c.set(a,b,d)};return c.get=function(b,d){return a.cookie!==c._cacheString&&c._populateCache(),void 0==c._cache[b]?d:c._cache[b]},c.defaults={path:"/",secure:true,samesite:"strict"},c.set=function(d,e,f){switch(f={path:f&&f.path||c.defaults.path,domain:f&&f.domain||c.defaults.domain,expires:f&&f.expires||c.defaults.expires,secure:f&&f.secure!==b?f.secure:c.defaults.secure,samesite:f&&f.samesite||c.defaults.samesite},e===b&&(f.expires=-1),typeof f.expires){case"number":f.expires=new Date((new Date).getTime()+1e3*f.expires);break;case"string":f.expires=new Date(f.expires)}return d=encodeURIComponent(d)+"="+(e+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),d+=f.path?";path="+f.path:"",d+=f.domain?";domain="+f.domain:"",d+=f.expires?";expires="+f.expires.toGMTString():"",d+=f.secure?";secure":"",d+=f.samesite?";samesite="+f.samesite:"",a.cookie=d,c},c.expire=function(a,d){return c.set(a,b,d)},c._populateCache=function(){c._cache={};try{c._cacheString=a.cookie;for(var d=c._cacheString.split("; "),e=0;e<d.length;e++){var f=d[e].indexOf("="),g=decodeURIComponent(d[e].substr(0,f)),f=decodeURIComponent(d[e].substr(f+1));c._cache[g]===b&&(c._cache[g]=f)}}catch(a){console.log(a)}},c.enabled=function(){var a="1"===c.set("cookies.js","1").get("cookies.js");return c.expire("cookies.js"),a}(),c}(document);mailchimp={storage:h,utils:g};mailchimp_cart=new mailchimpCart}();mailchimpReady(function(){if(!mailchimp_public_data.allowed_to_set_cookies)return;if(mailchimp_public_data.disable_carts)return;if(void 0===a){var a={site_url:document.location.origin,defaulted:!0,ajax_url:document.location.origin+"/wp-admin?admin-ajax.php"}}try{var b=mailchimp.utils.getQueryStringVars();void 0!==b.mc_cart_id&&mailchimpGetCurrentUserByHash(b.mc_cart_id);var subscribed=document.querySelector("#mailchimp_woocommerce_newsletter");var blockSubscribed=document.querySelector("#subscribe-to-newsletter");if(subscribed){subscribed.onchange=function(){mailchimp_submitted_email=null;mailchimpHandleBillingEmail("#billing_email")}}else if(blockSubscribed){blockSubscribed.onchange=function(){mailchimp_submitted_email=null;mailchimpHandleBillingEmail('#contact-fields input[type="email"]')}}mailchimp_username_email=document.querySelector("#username");mailchimp_billing_email=document.querySelector("#billing_email");mailchimp_registration_email=document.querySelector("#reg_email");var mailchimp_username_email_block=document.querySelector('#contact-fields input[type="email"]');if(mailchimp_billing_email){mailchimp_billing_email.onblur=function(){mailchimpHandleBillingEmail("#billing_email")};mailchimp_billing_email.onfocus=function(){mailchimpHandleBillingEmail("#billing_email")}}if(mailchimp_username_email){mailchimp_username_email.onblur=function(){mailchimpHandleBillingEmail("#username")};mailchimp_username_email.onfocus=function(){mailchimpHandleBillingEmail("#username")}}if(mailchimp_registration_email){mailchimp_registration_email.onblur=function(){mailchimpHandleBillingEmail("#reg_email")};mailchimp_registration_email.onfocus=function(){mailchimpHandleBillingEmail("#reg_email")}}if(mailchimp_username_email_block){mailchimp_username_email_block.onblur=function(){mailchimpHandleBillingEmail('#contact-fields input[type="email"]')};mailchimp_username_email_block.onfocus=function(){mailchimpHandleBillingEmail('#contact-fields input[type="email"]')};var typingTimer;mailchimp_username_email_block.addEventListener("keyup",function(){typingTimer&&clearTimeout(typingTimer);typingTimer=setTimeout(function(){if(mailchimp_cart.valueEmail(mailchimp_username_email_block.value)){mailchimpHandleBillingEmail('#contact-fields input[type="email"]')}},2e3)});mailchimp_username_email_block.addEventListener("keydown",function(){typingTimer&&clearTimeout(typingTimer)})}}catch(e){console.log("mailchimp ready error",e)}});
(function ($){
'use strict';
const PIXEL_SDK_WAIT_CONFIG={
initialDelayMs: 100,
maxDelayMs: 5000,
maxAttempts: 20
};
const MailchimpPixelTracking={
_atcTimer: null,
_rfcTimer: null,
_atcFetching: false,
_rfcFetching: false,
init: function (){
const self=this;
this.waitForPixelSDK(PIXEL_SDK_WAIT_CONFIG)
.then(function (){
self.sendPageEvents();
self.attachCartEventListeners();
self.interceptStoreApiRequests();
console.log('Mailchimp Pixel SDK loaded.');
})
.catch(function (e){
console.log('Mailchimp Pixel SDK not loaded within timeout. Tracking disabled.', e);
});
},
waitForPixelSDK: function (options){
const config=options||{};
const initialDelayMs=config.initialDelayMs!==undefined ? config.initialDelayMs:PIXEL_SDK_WAIT_CONFIG.initialDelayMs;
const maxDelayMs=config.maxDelayMs!==undefined ? config.maxDelayMs:PIXEL_SDK_WAIT_CONFIG.maxDelayMs;
const maxAttempts=config.maxAttempts!==undefined ? config.maxAttempts:PIXEL_SDK_WAIT_CONFIG.maxAttempts;
function isSDKReady(){
return typeof window.$mcSite!=='undefined' &&
window.$mcSite.pixel &&
typeof window.$mcSite.pixel.api!=='undefined' &&
typeof window.$mcSite.pixel.api.track==='function' &&
window.$mcSite.pixel.installed===true;
}
return new Promise(function (resolve, reject){
let attempt=0;
function scheduleCheck(){
if(isSDKReady()){
console.warn('Pixel SDK - remediation for pixel ready issue')
setTimeout(function (){
resolve();
}, 1000);
return;
}
if(attempt >=maxAttempts){
reject(new Error('Pixel SDK not available'));
return;
}
const delay=Math.min(initialDelayMs * Math.pow(2, attempt),
maxDelayMs
);
attempt +=1;
setTimeout(scheduleCheck, delay);
}
scheduleCheck();
});
},
isPixelSDKReady: function (){
return typeof window.$mcSite!=='undefined' &&
window.$mcSite.pixel &&
typeof window.$mcSite.pixel.api!=='undefined' &&
typeof window.$mcSite.pixel.api.track==='function';
},
getCartId: function (){
return window.mcPixel&&window.mcPixel.cartId ? window.mcPixel.cartId:'';
},
getRestBase: function (){
return (window.mcPixelConfig&&window.mcPixelConfig.restBase)||'/wp-json/mailchimp-for-woocommerce/v1/';
},
sendPageEvents: function (){
if(!window.mcPixel||!window.mcPixel.data){
return;
}
const data=window.mcPixel.data;
const events=data.events||[];
events.forEach((eventType)=> {
switch (eventType){
case 'PRODUCT_ADDED_TO_CART':
if(data.added_to_cart){
var atcItems=Array.isArray(data.added_to_cart) ? data.added_to_cart:[data.added_to_cart];
for (var ai=0; ai < atcItems.length; ai++){
this.sendProductAddedToCart(atcItems[ai]);
}}
break;
case 'PRODUCT_REMOVED_FROM_CART':
if(data.removed_from_cart){
var rfcItems=Array.isArray(data.removed_from_cart) ? data.removed_from_cart:[data.removed_from_cart];
for (var ri=0; ri < rfcItems.length; ri++){
this.sendProductRemovedFromCart(rfcItems[ri]);
}}
break;
case 'IDENTITY':
if(data.identity&&data.identity.email){
this.sendIdentityEvent(data.identity.email);
}
break;
case 'PRODUCT_VIEWED':
if(data.product){
const viewedId=String(data.product.productId||data.product.id);
const atcArr=Array.isArray(data.added_to_cart) ? data.added_to_cart:(data.added_to_cart ? [data.added_to_cart]:[]);
const rfcArr=Array.isArray(data.removed_from_cart) ? data.removed_from_cart:(data.removed_from_cart ? [data.removed_from_cart]:[]);
const atcMatch=atcArr.some(function (p){ return String(p.productId||p.id)===viewedId; });
const rfcMatch=rfcArr.some(function (p){ return String(p.productId||p.id)===viewedId; });
if((events.includes('PRODUCT_ADDED_TO_CART')&&atcMatch) ||
(events.includes('PRODUCT_REMOVED_FROM_CART')&&rfcMatch)
){
break;
}
this.sendProductViewed(data.product);
}
break;
case 'CART_VIEWED':
if(data.cart){
this.sendCartViewed(data.cart);
}
break;
case 'CHECKOUT_STARTED':
if(data.checkout){
this.sendCheckoutStarted(data.checkout);
window.mcPixel._handled.checkout=true;
}
break;
case 'PURCHASED':
if(data.order){
this.sendPurchased(data.order);
}
break;
case 'PRODUCT_CATEGORY_VIEWED':
if(data.category){
this.sendCategoryViewed(data.category);
window.mcPixel._handled.category=true;
}
break;
case 'SEARCH_SUBMITTED':
if(data.search){
this.sendSearchSubmitted(data.search);
window.mcPixel._handled.search=true;
}
break;
}});
},
sendProductViewed: function (product){
if(!this.isPixelSDKReady()) return;
window.$mcSite.pixel.api.track('PRODUCT_VIEWED', {
product: product
}).catch((error)=> {
console.error('Mailchimp Pixel: Error tracking PRODUCT_VIEWED', error);
});
},
sendProductAddedToCart: function (product){
if(!this.isPixelSDKReady()) return;
const cartId=this.getCartId();
const eventData={
cartId: cartId,
product: {
item: {
id: product.id,
productId: product.productId,
title: product.title,
price: product.price,
currency: product.currency,
sku: product.sku||''
},
quantity: product.quantity||1,
price: product.price * (product.quantity||1),
currency: product.currency
}};
window.$mcSite.pixel.api.track('PRODUCT_ADDED_TO_CART', eventData).catch((error)=> {
console.error('Mailchimp Pixel: Error tracking PRODUCT_ADDED_TO_CART', error);
});
},
sendProductRemovedFromCart: function (product){
if(!this.isPixelSDKReady()) return;
const cartId=this.getCartId();
const eventData={
cartId: cartId,
product: {
item: {
id: product.id,
productId: product.productId,
title: product.title,
price: product.price,
currency: product.currency,
sku: product.sku||''
},
quantity: product.quantity||1,
price: product.price * (product.quantity||1),
currency: product.currency
}};
window.$mcSite.pixel.api.track('PRODUCT_REMOVED_FROM_CART', eventData).catch((error)=> {
console.error('Mailchimp Pixel: Error tracking PRODUCT_REMOVED_FROM_CART', error);
});
},
sendCartViewed: function (cart){
if(!this.isPixelSDKReady()) return;
window.$mcSite.pixel.api.track('CART_VIEWED', {
cart: cart
}).catch((error)=> {
console.error('Mailchimp Pixel: Error tracking CART_VIEWED', error);
});
},
sendCheckoutStarted: function (checkout){
if(!this.isPixelSDKReady()) return;
window.$mcSite.pixel.api.track('CHECKOUT_STARTED', {
checkout: checkout
}).catch((error)=> {
console.error('Mailchimp Pixel: Error tracking CHECKOUT_STARTED', error);
});
},
sendIdentityEvent: function(email){
if(!this.isPixelSDKReady()) return;
window.$mcSite.pixel.api.identify({
type: 'EMAIL',
value: email
});
},
sendPurchased: function (order){
if(!this.isPixelSDKReady()) return;
window.$mcSite.pixel.api.track('PURCHASED', {
order: order
}).catch((error)=> {
console.error('Mailchimp Pixel: Error tracking PURCHASED', error);
});
},
sendCategoryViewed: function (category){
if(!this.isPixelSDKReady()) return;
window.$mcSite.pixel.api.track('PRODUCT_CATEGORY_VIEWED', category).catch((error)=> {
console.error('Mailchimp Pixel: Error tracking PRODUCT_CATEGORY_VIEWED', error);
});
},
sendSearchSubmitted: function (search){
if(!this.isPixelSDKReady()) return;
window.$mcSite.pixel.api.track('SEARCH_SUBMITTED', search).catch((error)=> {
console.error('Mailchimp Pixel: Error tracking SEARCH_SUBMITTED', error);
});
},
findProductById: function (productId){
if(!window.mcPixel||!window.mcPixel.data||!window.mcPixel.data.products){
return null;
}
const products=window.mcPixel.data.products;
const id=String(productId);
for (let i=0; i < products.length; i++){
if(String(products[i].id)===id){
return products[i];
}}
return null;
},
fetchAndTrackAddToCart: function (){
var self=this;
if(!this.isPixelSDKReady()) return;
clearTimeout(this._atcTimer);
this._atcTimer=setTimeout(function (){
self._drainAddToCartQueue();
}, 600);
},
_drainAddToCartQueue: async function (){
if(this._atcFetching) return;
this._atcFetching=true;
try {
var res=await fetch(this.getRestBase() + 'pixel/atc', {
method: 'GET',
credentials: 'same-origin',
headers: { 'Accept': 'application/json' },
});
if(!res.ok) return;
var data=await res.json();
if(!data) return;
var items=Array.isArray(data) ? data:[data];
for (var i=0; i < items.length; i++){
this.sendProductAddedToCart(items[i]);
}} catch (e){
} finally {
this._atcFetching=false;
}},
fetchAndTrackRemoveFromCart: function (){
var self=this;
if(!this.isPixelSDKReady()) return;
clearTimeout(this._rfcTimer);
this._rfcTimer=setTimeout(function (){
self._drainRemoveFromCartQueue();
}, 600);
},
_drainRemoveFromCartQueue: async function (){
if(this._rfcFetching) return;
this._rfcFetching=true;
try {
var res=await fetch(this.getRestBase() + 'pixel/rfc', {
method: 'GET',
credentials: 'same-origin',
headers: { 'Accept': 'application/json' },
});
if(!res.ok) return;
var data=await res.json();
if(!data) return;
var items=Array.isArray(data) ? data:[data];
for (var i=0; i < items.length; i++){
this.sendProductRemovedFromCart(items[i]);
}} catch (e){
} finally {
this._rfcFetching=false;
}},
attachCartEventListeners: function (){
const self=this;
$(document.body).on('added_to_cart', function (){
self.fetchAndTrackAddToCart();
});
$(document.body).on('removed_from_cart', function (){
self.fetchAndTrackRemoveFromCart();
});
document.body.addEventListener('wc-blocks_added_to_cart', function (){
self.fetchAndTrackAddToCart();
});
document.body.addEventListener('wc-blocks_removed_from_cart', function (){
self.fetchAndTrackRemoveFromCart();
});
},
interceptStoreApiRequests: function (){
const self=this;
const originalFetch=window.fetch;
window.fetch=function (input, init){
var promise=originalFetch.apply(this, arguments);
promise.then(function (response){
try {
if(!response.ok) return;
var method=(init&&init.method) ? init.method.toUpperCase() :
(input instanceof Request ? input.method.toUpperCase():'GET');
if(method!=='POST') return;
var url=typeof input==='string' ? input :
(input instanceof Request ? input.url:String(input));
if(/wc\/store\/v1\/cart\/add-item/.test(url)||/wc\/store\/v1\/cart\/update-item/.test(url)){
self.fetchAndTrackAddToCart();
}else if(/wc\/store\/v1\/cart\/remove-item/.test(url)){
self.fetchAndTrackRemoveFromCart();
}} catch (e){
}}).catch(function (){
});
return promise;
};},
};
$(document).ready(function (){
MailchimpPixelTracking.init();
});
})(jQuery);