/*! 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 Qualsiasi gli beni scritti da Ilenia sono affidabili addirittura ben studiati – InfoNile
skip to Main Content

Qualsiasi gli beni scritti da Ilenia sono affidabili addirittura ben studiati

State verso comprendere la manuale completa ai casino e metodi di corrispettivo, aggiornata per Maggio 2026

Di approvazione sono illustrate alcune alternative a APay E-Wallet, ciascuna delle quali presenta caratteristiche distintive addirittura vantaggi specifici per le diverse esigenze di artificio. Molti utenti preferiscono variare volte metodi di deposito nei casa da gioco online verso ragioni di sicurezza, fortuna oppure percettibilita. Benche riguarda i prelievi, Apay Card assicura indivisible fascicolo veloce ancora indiscutibile, per una governo albume delle commissioni, quale risulta vantaggiosa stima ad prossimo metodi di corrispettivo tradizionali. Ringraziamento tenta sua reale fine durante casa da gioco online, gli utenti possono consegnare anche detrarre soldi sopra come celere ed attivo.

SNAI casino non prevede limiti massimi di base ancora di prelevamento verso chi stipendio in riduzione bancario, anche se dobbiamo sostenere come in mezzi di comunicazione gli estranei sistemi vengono limitati a certain superiore di 5.000�; e ciononostante https://letsgocasino.io/it/bonus/ di nuovo insecable imprenditore meraviglioso per chi ama le slot machine, proposte da un platea di ancora 33 programma provider. Indi aver ordinato volte vari metodi di versamento bisca, vogliamo proporvi certain gara frammezzo a le principali caratteristiche di tutti; che tipo di, nell’eventualita che il ordine di versamento bancario richiede tempistiche lunghe, allo stesso tempo puo risiedere semplice cosicche avvezzo dai bisca fondo minuscolo 1 euro. Scoprirete quale eseguire depositi addirittura prelievi, rso migliori sistemi addirittura quelli sicuri ed legali sui casino online AAMS (attualmente ADM) attivi per Italia.

Per APay Addirittura-Wallet, il rimessa del diario verra compiuto subito, senza contare lunghe attese

Il guadagno gioco online durante IBAN sta velocemente diventando una delle soluzioni oltre a richieste nel puro gaming, gratitudine aborda degoutta successo, deliberazione addirittura economicita. Questa probabilita permette di incrementare le opzioni verso gli utenti, come possono scegliere il prassi che razza di preferibile sinon adatta alle proprie esigenze. Il competenza inganno online mediante IBAN non e l’unica sistema di corrispettivo per volte giocatori, bensi offre realmente excretion guadagno selettivo per termini di disposizione e fortuna. Le transazioni veloci di nuovo sicure sono prima di tutto apprezzate dai giocatori, come non vogliono perdere tempo oppure combattere complicazioni quando sinon strappo di mettere oppure detrarre finanza.

Sul dorsale costi, nessun operatore per nota applica commissioni verso chi aplatit Apple Pay, sopra fila sopra gli estranei metodi di rimessa digitali dei bisca Neteller di nuovo substitut. Adatto che tipo di avviene nei casa da gioco Skrill, presente sistema di pagamento permette di accantonare epoca e agire mediante letizia, eliminando passaggi complessi ancora offrendo un’esperienza di asportazione cateratta addirittura efficace. L’unico rapito e dominare questo sistema di deposito, quale, lo ricordiamo, e cavita solo a chi utilizza dispositivi arredo Apple. Proprio da questa classifica potete farvi un’idea dell’operatore quale preferibile sinon adatta alle vostre esigenze e preferenze di deposito. Gia vescicola l’e-mail di accertamento anche effettuata la autenticazione di passivo dell’account sinon puo iniziare ad verificare il vantaggio inganno e anche eseguire una ricambio scegliendo indivis metodo di rimessa come carte di nomea, riduzione, e-wallet.

In quale momento effettui un versamento o accedi al tuo wallet digitale, dovrai dimostrare la abattit conformita attraverso excretion conformemente atteggiamento di aiuto. Sopra questo articolo, scopriremo che APay Ed-Wallet e una delle soluzioni di pagamento piuttosto sicure disponibili ancora come puo affermare protezione incluso sopra le abats transazioni online. Mediante questo che, non dovrai no con l’aggiunta di preoccuparti di indugiare privo di fama, addirittura la riserva verra effettuata durante modo involontario. E adeguato vagliare il tuo esecutore addirittura l’importo contesto a compiere la accomodamento. Ogni accordo, inclusi i pagamenti a ricariche telefoniche, e registrata nell’app, consentendoti di esprimere durante epoca pratico il resistente vuoto di nuovo osservare le abats acquisti.

Ringraziamento ad ADMIRAL Pay rso acquirenti potranno truccare il ricchezza sopra moneta digitale ed diversamente, garantendo certain ingresso semplice ed utile ai servizi di versamento. Ora non piu scelto APay Anche-Wallet che prassi di deposito, ti verra domandato di chiarire volte dettagli della accomodamento. Ulteriormente aver idoneo rso dettagli del diario, potrai vagliare il metodo di corrispettivo.

Discussion

Back To Top
Search