(function ($){
$(function (){
function initializeAlmaWidget(price){
if(!alma_widget_settings){
console.warn('Alma widget settings not found!');
return;
}
let containerSelector=alma_widget_settings.widget_selector;
if($(containerSelector).length===0){
containerSelector=alma_widget_settings.widget_default_selector;
}
if($(containerSelector).length > 0){
initWidget(containerSelector, price);
return;
}
const observer=new MutationObserver(function (mutations, obs){
const primarySelector=alma_widget_settings.widget_selector;
const defaultSelector=alma_widget_settings.widget_default_selector;
let foundSelector=null;
if($(primarySelector).length){
foundSelector=primarySelector;
}else if($(defaultSelector).length){
foundSelector=defaultSelector;
}
if(foundSelector){
obs.disconnect();
initWidget(foundSelector, price);
}});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
function initWidget(containerSelector, price){
const widgets=Alma.Widgets.initialize(alma_widget_settings.merchant_id,
alma_widget_settings.environment==='live' ? Alma.ApiMode.LIVE:Alma.ApiMode.TEST,
);
widgets.add(Alma.Widgets.PaymentPlans, {
container: containerSelector,
purchaseAmount: price||alma_widget_settings.price,
locale: alma_widget_settings.language,
hideIfNotEligible: alma_widget_settings.hide_if_not_eligible,
transitionDelay: alma_widget_settings.transition_delay,
monochrome: alma_widget_settings.monochrome,
hideBorder: alma_widget_settings.hide_border,
plans: alma_widget_settings.fee_plan_list
});
}
function listenToChanges(){
$(document.body).on('updated_cart_totals', function (){
const price =
Alma.Utils.priceToCents(parseFloat($('.cart-subtotal .woocommerce-Price-amount').text()));
initializeAlmaWidget(price);
});
$(document.body).on('found_variation', function (event, variation){
const price=Alma.Utils.priceToCents(variation.display_price);
initializeAlmaWidget(price);
});
}
initializeAlmaWidget();
listenToChanges();
});
})(jQuery);