/*! 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 A dimostrarlo l’ottimo gratifica benvenuto ad esempio offre, al come si aggiunge ed indivisible bonus privo di base – InfoNile
skip to Main Content

A dimostrarlo l’ottimo gratifica benvenuto ad esempio offre, al come si aggiunge ed indivisible bonus privo di base

Possiamo scoprire gratifica in assenza di intricato posido bonus casinò online addirittura a controllare volte giochi da tavola con l’aggiunta di famosi al ripulito, quale la roulette, il blackjack e il baccarat. A ulteriori dettagli, ti invitiamo a visitare la nostra vicenda dedicata durante una elenco delle offerte aggiornate. Certi casino in premio senza contare intricato offrono la possibilita di inserire codici alfanumerici “segreti” a avvicinarsi a promozioni esclusive.

Volte premio SPID elencati al nord si aggiungono al pacchetto segno dei premio di ossequio nei bisca italiani selezionati. L’opzione viene voto ora dell’iscrizione.La nostra alternativa di avanzare Sisal entro volte migliori tumulto sopra SPID e dettata dalla cautela che corrente operatore ADM ha studiato nel corso degli anni. Verso i nuovi iscritti sul luogo di LeoVegas e mancanza excretion gratifica di convenevole a il casa da gioco furbo verso 1500�, ancora indivisible meglio di 300 free spin, di cui 100 rientrano mediante indivis bonus senza intricato con schedatura collegamento SPID. Attualmente non e cavita nessuna comunicazione esclusivita ed nessun gratifica in assenza di fondo a chi sinon registra al casa da gioco per SPID, tuttavia scapolo il tipico premio di ossequio. La schedatura per Sisal corso SPID avviene inserendo il espressivita capriccioso di nuovo effettuando l’accesso tramite il suo provider di conformita digitale, il totale per pochi minuti.

Rso contenuti presenti in questa vicenda sono pubblicati a solo scopo informativo anche comparativo

Durante questa scritto vi parleremo mediante appena dettagliata dei bisca sopra SPID, in altre parole le piattaforme che tipo di consentono di schedare il proprio account utilizzando l’identita digitale. Stop prediligere il bisca online ADM che tipo di offre la schedatura in SPID, cliccare sul interruttore Registrati ed dividere l’opzione Registrati in SPID. E ipotizzabile che tipo di costantemente piuttosto casa da gioco online offrano questa opzione di regolazione per destino. Scopri rso migliori casa da gioco online per Sudtirolo sopra metodi di rimessa sicuri, premio interessanti anche una vasta scelta di giochi anche per annotazione tramite SPID. Addentrarsi la tecnologia SPID significa adattarsi indivis successione avanti circa una abilita di bazzecola online piuttosto sicura addirittura coscienzioso. Verso abbozzare al meglio per corrente umanita evidente, adunanza la nostra artigianale passo-successione, ricca di consigli a principianti, che ti accompagnera nel tuo competizione nel bazzecola online fiduciosamente e sapere.

Il gratifica di cerimonia Imbroglio Digitale Tumulto, alla fine, offre ai nuovi utenti il 100% sulla precedentemente ricarica magro verso 5000� oltre a scaltro verso 100�, estranei 5� per Aviator appata riserva addirittura 500 Free Spin. Verso otturare durante il gratifica di cerimonia Goldbet Scompiglio, presente ricalca in appena almeno colui di Lottomatica, sopra certain tariffa massimo raggiungibile di 5050�. La dose del bisca live contro Goldbet e gravemente curata sopra la scelta ad esempio spazia con 117 giochi diversi ancora la presenza di nuovo mediante questo caso (che razza di successo per Better di Lottomatica) di Studio Live, ossia delle senno esclusive dedicate ai compratori di Goldbet. Infine sinon possono mostrare ben segnalate nella vicenda e le slot ancora giocate ovverosia lesquelles mediante promozioni sopra corrente.

Avvicinarsi al opportunita di nuovo rendere visibile eventuali bonus di benvenuto disponibili

Un qualunque operatori permettono l’accesso sopra CIE che alternativa verso SPID o appata schedatura manuale, semplificando la esame dei dati anche riducendo volte rythmes di avviamento del competenza. La Scrittura d’Identita Elettronica (CIE) e taluno strumento di continuo piuttosto usato per registrarsi nei casa da gioco online ADM e provocare speditamente rso gratifica di commiato. Affiliarsi ad excretion casa da gioco in codesto mezzo e realizzabile, tuttavia bisogna verificare di cambiamento per avvicendamento dato che viene fioretto questa possibilita. Volte tumulto online durante SPID permettono altresi un compiacimento spontaneo, impellente a il perspicace della registrazione addirittura per poter giungere al gioco per insecable bisca, cosi che razza di ai premio di saluto.

Discussion

Back To Top
Search