!function(t){"use strict";const e=t.params,n=(document.querySelector.bind(document),(t,e)=>e.split(".").reduce((t,e)=>t&&t[e],t)),i=()=>null,s=t=>null===t||t===undefined?"":t,o="wc/store/checkout";function a(t){document.querySelectorAll("wc-order-attribution-inputs").forEach((t,e)=>{e>0&&t.remove()});for(const e of document.querySelectorAll("wc-order-attribution-inputs"))e.values=t}function r(t){window.wp&&window.wp.data&&window.wp.data.dispatch&&window.wc&&window.wc.wcBlocksData&&window.wp.data.dispatch(window.wc.wcBlocksData.CHECKOUT_STORE_KEY).setExtensionData("woocommerce/order-attribution",t,!0)}function c(){return"undefined"!=typeof sbjs}function d(){if(window.wp&&window.wp.data&&"function"==typeof window.wp.data.subscribe){const e=window.wp.data.subscribe(function(){e(),r(t.getAttributionData())},o)}}t.getAttributionData=function(){const s=e.allowTracking&&c()?n:i,o=c()?sbjs.get:{},a=Object.entries(t.fields).map(([t,e])=>[t,s(o,e)]);return Object.fromEntries(a)},t.setOrderTracking=function(n){if(e.allowTracking=n,n){if(!c())return;sbjs.init({lifetime:Number(e.lifetime),session_length:Number(e.session),base64:Boolean(e.base64),timezone_offset:"0"})}else!function(){const t=window.location.hostname;["sbjs_current","sbjs_current_add","sbjs_first","sbjs_first_add","sbjs_session","sbjs_udata","sbjs_migrations","sbjs_promo"].forEach(e=>{document.cookie=`${e}=; path=/; max-age=-999; domain=.${t};`})}();const i=t.getAttributionData();a(i),r(i)},t.setOrderTracking(e.allowTracking),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",d):d(),window.customElements.define("wc-order-attribution-inputs",class extends HTMLElement{constructor(){if(super(),this._fieldNames=Object.keys(t.fields),this.hasOwnProperty("_values")){let t=this.values;delete this.values,this.values=t||{}}}connectedCallback(){this.innerHTML="";const t=new DocumentFragment;for(const n of this._fieldNames){const i=document.createElement("input");i.type="hidden",i.name=`${e.prefix}${n}`,i.value=s(this.values&&this.values[n]||""),t.appendChild(i)}this.appendChild(t)}set values(t){if(this._values=t,this.isConnected)for(const t of this._fieldNames){const n=this.querySelector(`input[name="${e.prefix}${t}"]`);n?n.value=s(this.values[t]):console.warn(`Field "${t}" not found. `+"Most likely, the '<wc-order-attribution-inputs>' element was manipulated.")}}get values(){return this._values}})}(window.wc_order_attribution);
(function(){
'use strict';
if(typeof wc_facebook_pixel_data==='undefined'){
return;
}
var data=wc_facebook_pixel_data;
var firedEvents={};
function buildEventData(event){
return {
method: event.method||'track',
name: event.name,
params: event.params||{},
eventId: event.eventId||null
};}
function shouldSkipEvent(eventId){
return eventId&&firedEvents[eventId];
}
function markEventFired(eventId){
if(eventId){
firedEvents[eventId]=true;
}}
function logWarning(message, data){
if(typeof console!=='undefined'&&console.warn){
console.warn('[FB Pixel]', message, data);
}}
function fireEvent(event){
var eventData=buildEventData(event);
if(shouldSkipEvent(eventData.eventId)){
return;
}
if(typeof fbq!=='function'){
logWarning('fbq not available, skipping event:', eventData.name);
return;
}
try {
var params=eventData.params;
if(eventData.eventId){
fbq(eventData.method, eventData.name, params, {eventID: eventData.eventId});
}else{
fbq(eventData.method, eventData.name, params);
}
markEventFired(eventData.eventId);
} catch (e){
logWarning('Event error: ' + eventData.name, e);
}}
function fireQueuedEvents(){
var events=data.eventQueue;
if(!events||!Array.isArray(events)){
return;
}
for (var i=0; i < events.length; i++){
try {
fireEvent(events[i]);
} catch (e){
logWarning('fireQueuedEvents loop error:', e);
}}
data.eventQueue=[];
}
function processStoreApiEvent(eventData){
if(!eventData||!eventData.event){
return;
}
var params=eventData.params||{};
var event={
method: 'track',
name: eventData.event,
params: params,
eventId: params.event_id||null
};
fireEvent(event);
}
function setupFetchInterceptor(){
var originalFetch=window.fetch;
if(!originalFetch){
return;
}
window.fetch=function(){
var args=arguments;
var url=args[0];
var isAddToCartRequest=typeof url==='string' &&
(url.indexOf('/wc/store/v1/cart/add-item')!==-1 ||
url.indexOf('/wc/store/cart/add-item')!==-1);
return originalFetch.apply(this, args).then(function(response){
if(isAddToCartRequest&&response.ok){
response.clone().json().then(function(responseData){
if(responseData&&responseData.extensions&&responseData.extensions['facebook-for-woocommerce']){
processStoreApiEvent(responseData.extensions['facebook-for-woocommerce']);
}}).catch(function(e){
logWarning('Store API JSON parse error:', e);
});
}
return response;
});
};}
function init(){
setupFetchInterceptor();
if(typeof fbq==='function'){
fireQueuedEvents();
return;
}
var _fbq=window.fbq;
Object.defineProperty(window, 'fbq', {
configurable: true,
enumerable: true,
get: function(){ return _fbq; },
set: function(value){
_fbq=value;
if(typeof value==='function'){
Object.defineProperty(window, 'fbq', {
configurable: true,
enumerable: true,
writable: true,
value: value
});
setTimeout(fireQueuedEvents, 0);
}}
});
}
if(document.readyState==='complete'){
init();
}else{
window.addEventListener('load', init);
}})();