// Run on initial DOM load document.addEventListener("DOMContentLoaded", function () { utmsHandler(); attachCheckoutListeners(); }); // Quando modificar o carrinho, atualizar os listeners jQuery(document.body).on('updated_cart_totals updated_wc_div wc_fragments_loaded cart_page_refreshed wc_fragments_loaded added_to_cart removed_from_cart', function () { attachCheckoutListeners(); }); function attachCheckoutListeners() { const checkoutButtonQuery = checkoutConfigs.checkoutQuery; isElementLoaded(checkoutButtonQuery).then((selector) => { let checkoutButton = jQuery(checkoutButtonQuery); if (!checkoutButton.length) { checkoutButton = jQuery('a[href*="checkout"]'); } if (checkoutButton.length > 0) { checkoutButton.removeAttr("href"); checkoutButton.off('click.checkout').on('click.checkout', function (e) { e.preventDefault(); submitCheckout(); }); } }); isElementLoaded('form#buy-it-now').then((selector) => { let buyitnowButton = jQuery("form#buy-it-now button[name='buy-it-now']"); if (buyitnowButton.length > 0) { buyitnowButton.removeAttr("href"); buyitnowButton.off('click.buyitnow').on('click.buyitnow', function (e) { e.preventDefault(); submitCheckout("buyitnow"); }); } }); } const isElementLoaded = async item => { while (document.querySelector(item) === null) { await new Promise(resolve => requestAnimationFrame(resolve)) } return document.querySelector(item); }; function submitCheckout($type = "cart") { jQuery(document).ready(function (jQuery) { jQuery.ajax({ url: ajaxurl, method: 'POST', data: { action: 'get_cart_products' }, success: function (response) { if (response.success) { if ($type == "buyitnow") { butitNowForm(response.data); } else { createHiddenForm(response.data); } } else { if ($type == "buyitnow") { butitNowForm(response.data); } else { console.error('Error retrieving cart products:', response.data); } } }, error: function (xhr, status, error) { console.error('Error retrieving cart products:', error); } }); }); } function createHiddenForm(data) { // Create a form element var form = jQuery('