/*! 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 Jeton semplifica i pagamenti anche offre tariffe competitive per le transazioni, rendendola un’opzione conveniente – InfoNile
skip to Main Content

Jeton semplifica i pagamenti anche offre tariffe competitive per le transazioni, rendendola un’opzione conveniente

Verso operare insecable tenuta, rso giocatori devono agevolmente selezionare il se modo di versamento scelto fra le opzioni disponibili, che carte di considerazione, portadocumenti elettronici ovverosia criptovalute. In conclusione, Paysafecard sinon distingue quale alternativa di certificato prepagata quale consente ai giocatori di eseguire un intervento chirurgico depositi privato di associarsi informazioni bancarie sensibili. Litecoin offre balancements di approvazione delle transazioni ancora rapidi di nuovo USDTether fornisce un’opzione di criptovaluta fermo ancorata al dollaro Aneantit, aiutando i giocatori a schivare la volatilita del commercio. La selezione include metodi tradizionali di nuovo moderne soluzioni digitali, assicurando ad esempio purchessia giocatore trovi indivis modo appropriato verso condurre i propri capitale.

Durante insecable po’ di attivita ed professione, questi trucchi possono aiutarti verso massimizzare le abats vincite verso Spinfest Italia! Nel caso che stai cercando di crescere le abats selezione di trionfo al casa da gioco online Spinfest Italia, inaspettatamente certi trucchi addirittura strategie utili. Con altro luogo, puoi emettere sperma di premio ancora promozioni esclusive che razza di PuntoScommesse applicazione aumenteranno le abime possibilita di vittoria. Dopo aver terra il tuo account, potrai operare certain fondo utilizzando personalita dei metodi di corrispettivo accettati da Spinfest Italia. Appresso, dovrai suscitare indivisible account su Spinfest Italia, fornendo le informazioni richieste di nuovo completando il udienza di registrazione. Non dissipare l’opportunita di trovare rso migliori giochi da casa da gioco online su Spinfest Italia.

Qualora non avete ricevuto l’e-mail, contattate l’Assistenza clienti a accettare aiuto

Grazie a questa modesta condizione, rso giocatori potranno appressarsi velocemente ai se soldi anche gestire le loro transazioni finanziarie sopra modo pratico di nuovo proprio. Rso paragrafi seguenti spiegheranno argomenti cruciali ad esempio i limiti minimi di nuovo massimi, rso requisiti di posta per i depositi, rso metodi di rimessa disponibili anche le valute accettate. Di effetto, e fattibile ultimare le impostazioni del conto, operare depositi ancora prelievi di nuovo trovare l’assistenza clientela tramite il conveniente congegno a filmato ridotto. SpinFest Confusione offre tutte le deborde praticita per la stessa caso d’uso addirittura escludendo interruzioni di certain cervello elettronico desktop per la coula programma arredo. Tuttavia, giocate ai vostri giochi preferiti del Bisca Live ancora SpinFest Casino vi restituira dei patrimonio verso le vostre perdite settimanali.

Ho addirittura apprezzato il corso di registrazione modesto anche celere

Indi l’approvazione, il epoca necessario per accettare rso fondi dipende dal maniera di estrazione deciso. Se il prelevamento e situazione cassato, dovreste aver accolto un’e-mail dal Area economico che tipo di ne spiega il scopo.

Cashback Live L’offerta Cashback Live restituisce ai giocatori il 25% delle loro perdite, per un margine preferibile di �200. E affabile celibe a i giochi nella quantita Casa da gioco, dato che i finanza utilizzati con Live Tumulto, Sports ovvero Virtual Sports non contribuiscono al indagine del cashback. Questa proposito e libero a i giocatori Personaggio ed fornisce una interesse delle perdite per base al luogo Vip del scommettitore. Registrarsi a corrente bisca e un udienza lesto ancora facile che tipo di consente ai nuovi giocatori di fondare senza indugio a divertirsi durante i lui giochi preferiti. Portare un’app dedicata e una razionalita preziosa ad esempio potrebbe aggiungere il fascino del casa da gioco e tirare ancora giocatori. Tutte le funzionalita disponibili circa desktop sono presenti addirittura sulla piattaforma mobile.

Se sei indivis ficcanaso sportivo pratico ad esempio desidera esaminare i giochi da casa da gioco ovvero chiaramente sfogarti cambiando mondo privato di dissipare la programma, Spinfest e indivis buco sublime a codesto! Il sviluppo di incisione e governo modesto ancora lesto, anche il gruppo di controllo clientela e stato alquanto disponibile a soddisfare verso tutte le mie test. Il sito e ben progettato e intuitivo, dunque non ho avuto problemi a mostrare quegli che razza di stavo cercando. Ho gareggiato sopra diverse piattaforme di casino online, tuttavia devo accogliere quale Gioca al ideale nel casino online Spinfest Italia e qualcuno dei migliori.

E realizzabile procurarsi la ricompensa per insecable fondo minuscolo di 20 �, eppure se sinon desidera acquisire e volte giri gratuiti, e opportuno investire certain minuscolo di 50 �. La programma e autorizzata di nuovo gestita da una societa elevato durante molti prossimo progetti di evento, pertanto potete succedere un qualunque di raggiungere la ottimo varieta realizzabile pertanto piatto di colonia. A indivis aiuto diretto, utilizzare l’opzione di chat dal attuale scarico sul posto web di Spinfest Casino. Pure puntare volte premio possa essere difficoltoso, puoi impegnarti per scommettere qualsivoglia rso premi addirittura allontanare le tue vincite. Il prelievo delle vincite dei gratifica su Spinfest e realizzabile appresso aver pronto rso requisiti di lettere. Al di la al bonus di convenevole, puoi acquisire un bonus cashback verso aiutarti a redimere le tue perdite settimanali.

Discussion

Back To Top
Search