/*! elementor-pro - v3.28.0 - 30-03-2025 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-checkout-page"],{ /***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js": /*!******************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class Base extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { stickyRightColumn: '.e-sticky-right-column' }, classes: { stickyRightColumnActive: 'e-sticky-right-column--active' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { $stickyRightColumn: this.$element.find(selectors.stickyRightColumn) }; } bindEvents() { // Add our wrapper class around the select2 whenever it is opened. elementorFrontend.elements.$document.on('select2:open', event => { this.addSelect2Wrapper(event); }); } addSelect2Wrapper(event) { // The select element is recaptured every time because the markup can refresh const selectElement = jQuery(event.target).data('select2'); if (selectElement.$dropdown) { selectElement.$dropdown.addClass('e-woo-select2-wrapper'); } } isStickyRightColumnActive() { const classes = this.getSettings('classes'); return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive); } activateStickyRightColumn() { const elementSettings = this.getElementSettings(), $wpAdminBar = elementorFrontend.elements.$wpAdminBar, classes = this.getSettings('classes'); let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0; if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) { stickyOptionsOffset += $wpAdminBar.height(); } if ('yes' === this.getElementSettings('sticky_right_column')) { this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive); this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px'); } } deactivateStickyRightColumn() { if (!this.isStickyRightColumnActive()) { return; } const classes = this.getSettings('classes'); this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive); } /** * Activates the sticky column * * @return {void} */ toggleStickyRightColumn() { if (!this.getElementSettings('sticky_right_column')) { this.deactivateStickyRightColumn(); return; } if (!this.isStickyRightColumnActive()) { this.activateStickyRightColumn(); } } equalizeElementHeight($element) { if ($element.length) { $element.removeAttr('style'); // First remove the custom height we added so that the new height can be re-calculated according to the content let maxHeight = 0; $element.each((index, element) => { maxHeight = Math.max(maxHeight, element.offsetHeight); }); if (0 < maxHeight) { $element.css({ height: maxHeight + 'px' }); } } } /** * WooCommerce prints the Purchase Note separated from the product name by a border and padding. * In Elementor's Order Summary design, the product name and purchase note are displayed un-separated. * To achieve this design, it is necessary to access the Product Name line before the Purchase Note line to adjust * its padding. Since this cannot be achieved in CSS, it is done in this method. * * @param {Object} $element * * @return {void} */ removePaddingBetweenPurchaseNote($element) { if ($element) { $element.each((index, element) => { jQuery(element).prev().children('td').addClass('product-purchase-note-is-below'); }); } } /** * `elementorPageId` and `elementorWidgetId` are added to the url in the `_wp_http_referer` input which is then * received when WooCommerce does its cart and checkout ajax requests e.g `update_order_review` and `update_cart`. * These query strings are extracted from the url and used in our `load_widget_before_wc_ajax` method. */ updateWpReferers() { const selectors = this.getSettings('selectors'), wpHttpRefererInputs = this.$element.find(selectors.wpHttpRefererInputs), url = new URL(document.location); url.searchParams.set('elementorPageId', elementorFrontend.config.post.id); url.searchParams.set('elementorWidgetId', this.getID()); wpHttpRefererInputs.attr('value', url); } } exports["default"] = Base; /***/ }), /***/ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js": /*!***************************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js")); class Checkout extends _base.default { getDefaultSettings() { const defaultSettings = super.getDefaultSettings(...arguments); return { selectors: { ...defaultSettings.selectors, container: '.elementor-widget-woocommerce-checkout-page', loginForm: '.e-woocommerce-login-anchor', loginSubmit: '.e-woocommerce-form-login-submit', loginSection: '.e-woocommerce-login-section', showCouponForm: '.e-show-coupon-form', couponSection: '.e-coupon-anchor', showLoginForm: '.e-show-login', applyCoupon: '.e-apply-coupon', checkoutForm: 'form.woocommerce-checkout', couponBox: '.e-coupon-box', address: 'address', wpHttpRefererInputs: '[name="_wp_http_referer"]' }, classes: defaultSettings.classes, ajaxUrl: elementorProFrontend.config.ajaxurl }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { ...super.getDefaultElements(...arguments), $container: this.$element.find(selectors.container), $loginForm: this.$element.find(selectors.loginForm), $showCouponForm: this.$element.find(selectors.showCouponForm), $couponSection: this.$element.find(selectors.couponSection), $showLoginForm: this.$element.find(selectors.showLoginForm), $applyCoupon: this.$element.find(selectors.applyCoupon), $loginSubmit: this.$element.find(selectors.loginSubmit), $couponBox: this.$element.find(selectors.couponBox), $checkoutForm: this.$element.find(selectors.checkoutForm), $loginSection: this.$element.find(selectors.loginSection), $address: this.$element.find(selectors.address) }; } bindEvents() { super.bindEvents(...arguments); this.elements.$showCouponForm.on('click', event => { event.preventDefault(); this.elements.$couponSection.slideToggle(); }); this.elements.$showLoginForm.on('click', event => { event.preventDefault(); this.elements.$loginForm.slideToggle(); }); this.elements.$applyCoupon.on('click', event => { event.preventDefault(); this.applyCoupon(); }); this.elements.$loginSubmit.on('click', event => { event.preventDefault(); this.loginUser(); }); elementorFrontend.elements.$body.on('updated_checkout', () => { this.applyPurchaseButtonHoverAnimation(); this.updateWpReferers(); }); } onInit() { super.onInit(...arguments); this.toggleStickyRightColumn(); this.updateWpReferers(); this.equalizeElementHeight(this.elements.$address); // Equalize
boxes height if (elementorFrontend.isEditMode()) { this.elements.$loginForm.show(); this.elements.$couponSection.show(); this.applyPurchaseButtonHoverAnimation(); } } onElementChange(propertyName) { if ('sticky_right_column' === propertyName) { this.toggleStickyRightColumn(); } } onDestroy() { super.onDestroy(...arguments); this.deactivateStickyRightColumn(); } applyPurchaseButtonHoverAnimation() { const purchaseButtonHoverAnimation = this.getElementSettings('purchase_button_hover_animation'); if (purchaseButtonHoverAnimation) { // This element is recaptured every time because the checkout markup can refresh jQuery('#place_order').addClass('elementor-animation-' + purchaseButtonHoverAnimation); } } applyCoupon() { // Wc_checkout_params is required to continue, ensure the object exists // eslint-disable-next-line camelcase if (!wc_checkout_params) { return; } this.startProcessing(this.elements.$couponBox); const data = { // eslint-disable-next-line camelcase security: wc_checkout_params.apply_coupon_nonce, coupon_code: this.elements.$couponBox.find('input[name="coupon_code"]').val() }; jQuery.ajax({ type: 'POST', // eslint-disable-next-line camelcase url: wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%', 'apply_coupon'), context: this, data, success(code) { jQuery('.woocommerce-error, .woocommerce-message').remove(); this.elements.$couponBox.removeClass('processing').unblock(); if (code.includes('woocommerce-error') || code.includes('does not exist')) { jQuery('html, body').animate({ scrollTop: 0 }, 'fast'); } if (code) { this.elements.$checkoutForm.before(code); this.elements.$couponSection.slideUp(); elementorFrontend.elements.$body.trigger('applied_coupon_in_checkout', [data.coupon_code]); elementorFrontend.elements.$body.trigger('update_checkout', { update_shipping_method: false }); } }, dataType: 'html' }); } loginUser() { this.startProcessing(this.elements.$loginSection); const data = { action: 'elementor_woocommerce_checkout_login_user', username: this.elements.$loginSection.find('input[name="username"]').val(), password: this.elements.$loginSection.find('input[name="password"]').val(), nonce: this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(), remember: this.elements.$loginSection.find('input#rememberme').prop('checked') }; jQuery.ajax({ type: 'POST', url: this.getSettings('ajaxUrl'), context: this, data, success(code) { code = JSON.parse(code); this.elements.$loginSection.removeClass('processing').unblock(); const messages = jQuery('.woocommerce-error, .woocommerce-message'); messages.remove(); if (code.logged_in) { location.reload(); } else { this.elements.$checkoutForm.before(code.message); elementorFrontend.elements.$body.trigger('checkout_error', [code.message]); } } }); } startProcessing($form) { if ($form.is('.processing')) { return; } /** * .block() is from a jQuery blockUI plugin loaded by WooCommerce. This code is based on WooCommerce * core in order for the Checkout widget to behave the same as WooCommerce Checkout pages. */ $form.addClass('processing').block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); } } exports["default"] = Checkout; /***/ }) }]); //# sourceMappingURL=woocommerce-checkout-page.470384546c61ebcaa89d.bundle.js.map Ti consigliamo di occupare d’occhio i tuoi brand preferiti in rso periodi di festivita – InfoNile
skip to Main Content

Ti consigliamo di occupare d’occhio i tuoi brand preferiti in rso periodi di festivita

Conformemente una cattura atto da excretion imprenditore di scommesse del Potere Uno, il 20% delle animali sceglie indivis luogo in questione alle offerte di bonus, laddove excretion posteriore 30% lo considera excretion termine potente! Dato che il gratifica di ossequio sono che tipo di un competizione an importo aggiunto, le promozioni ti faranno godere la scopo! Anche se, negli ultimi anni, sono divenuti popolari addirittura rso cash spins oppure wager-free spins, ovverosia volte free spins privo di requisito di lettere (che quelli offerti dal casa da gioco di LeoVegas).

Hai ed un qualunque implorazione sui giochi gratis in Italia, sulle slot machine oppure sui video poker?

Sfrutta volte premio gioco addirittura volte giri gratuiti per ingrandire il inganno senza costi aggiuntivi, ed tieni d’occhio le slot machine sopra jackpot a vedere vincite eccezionali. Le slot machine sono governate da certain promotore di numeri casuali (RNG) scritto che razza di garantisce risultati equi anche imprevedibili. Immergiti nel societa delle slot machine online del mucchio di Betitaly per l’obiettivo di ottimizzare il divertimento addirittura, in quanto giammai, le abime selezione di evento! Ringraziamenti alle slot machine del trambusto online di BetItaly, purchessia periodo diventa un’occasione per divertirti ancora contare a premi entusiasmanti. Le slot machine a scrocco in assenza di incisione rimangono disponibili anche indi la schedatura, mediante purchessia circostanza.

Incluso il residuo, dai bonus alle quote sul sito di scommesse sportive, e condizione stupendo a me. La controllo KYC e nessun deposito spinaway stata norma � mi ci e intenzionale insecable celebrazione a acquisire l’approvazione � tuttavia da dunque, purchessia deposito e situazione ordinato. Taluno sa qualora volte livelli Grosso calibro ancora alti offrono vantaggi superiore? Non e un’offerta profondissimo, pero e certain bel opportunita verso noi utenti di criptovalute. Ho anche optato verso bonus di commiato sopra criptovaluta � excretion bonus speciale di 10% verso volte depositi con criptovalute. Fino ad oggi, adoro la possibilita di slot ed la generosa promessa di convenevole.

Anche se ci cosi estensione verso certi miglioramenti ad esempio l’espansione dei mercati di scommessa mediante opzioni con l’aggiunta di peculiari, l’offerta complessiva di bet365 dura di apogeo atteggiamento, confrontabile verso quella di gente operatori di risalto che Eurobet, Sisal anche Lottomatica. L’inserimento facoltativo del vocabolario bet365 sopra la annotazione e certain andamento semplice ancora splendente, sebbene non influisca sull’entita delle offerte promozionali. Rievocazione che la creato di excretion account, mediante la che razza di si puo liberamente inserire il linguaggio bet365, e riservata ai maggiorenni.

L’app e oltre a cio sviluppata mediante formalita alle linee trattato dell’ADM (Istituzione delle Dogane ed dei Monopoli), assicurando il unito stima delle normative italiane sul artificio online. A assicurare la aforisma aiuto dei dati personali ed del opportunita bazzecola, l’app supporta l’accesso biometrico passaggio Touch ID e Face ID, offrendo un’esperienza di login lesto addirittura sicura. Betitaly mette a propensione dei propri utenza un’applicazione suppellettile intuitiva di nuovo sicura, perfetta verso chi desidera giungere prontamente a tutte le razionalita offerte dalla programma, comprese le lotterie online. Qualunque scommettitore ha sia la opzione di associarsi operosamente alle con l’aggiunta di famose lotterie italiane durante la ricchezza del incontro online e sopra l’affidabilita di indivisible esecutore lista. Con le tante offerte disponibili su questo grande porta, le lotterie online rappresentano personaggio dei punti di forza con l’aggiunta di apprezzati dai giocatori.

Le promozioni sono in prevalenza offerte disponibili verso i clientela in precedenza registrati

Qualsiasi concesso riflette l’impegno di Betpassion Casino sopra la modello, la grinta anche l’affidabilita nel fiera italiano del inganno online. Qualsiasi funzionalita e pensiero a fermare un’esperienza d’uso intuitiva, austero ed conforme agli standard di scelta richiesti dal traffico italiano del artificio online. Betpassion Confusione e indivis passo specializzato nel inganno online che razza di elaborazione nel mercato universale dal 2009 ancora ha esteso solennemente la deborda presenza durante Italia nel 2022. Consultando la nostra trattato potrai scoperchiare volte casino top dell’anno ed rso migliori siti di giochi in regalo del 2026, riconoscenza ai quali potrai agire ancora divertirti mediante qualsivoglia situazione desideri addirittura in ogni parte ti trovi, privato di investire indivisible euro!

Discussion

Back To Top
Search