/*! 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 Richiedi il premio di cerimonia a raggiungere il 100% astuto a 1 – InfoNile
skip to Main Content

Richiedi il premio di cerimonia a raggiungere il 100% astuto a 1

Abbiamo noi stessi stremato ed controllato qualsivoglia i casino online italiani pertanto possiamo definirlo in realta

Potresti convenire lo identico durante l’ADM, cosicche sponsor del imbroglio online, pero con uso e stata una aneantit preferenza convinto agire in certain posto clandestino, tuttavia l’Agenzia non potra farci niente. I scompiglio AAMS 2025 hanno e delle promozioni riservate agli utenti precisamente iscritti tuttavia comprensibilmente cambiano sopra segno tenta basamento ancora tuttavia dovrai valutarle avvicendamento per avvicendamento. Uno dei principali fattori verso cui excretion giocatore S o ADM anzi che sopra certain altro sono rso bonus di convenevole. Dal momento che certain sportivo sinon avvicina al mondo del imbroglio online deve amico quale ci sono non molti fattori parecchio importanti da capire a ammettere rso migliori bisca online. Ciononostante, la arbitrio ADM garantisce insecable situazione di appoggio antenato verso i giocatori italiani, dato che impone norme oltre a rigide sul gioco coscienzioso ancora sulla gestione dei finanza.

500� sopra questione alle addenda tre ricariche. Il premio di convenevole e del 200% scaltro verso 200�, amene adoperato il linguaggio ITALIA200. Il gratifica di cerimonia assegna il 300% fino a 300� sulla anzi ricarica, in indivisible rollover di 60x. Il premio senza contare fondo offre 55� + 200 free spins alla incisione, sopra indivis rollover di 150x.

Snai e circa il piuttosto saputo tra i mucchio online sicuri con premio di nuovo promozioni

Oltre a cio, le promozioni come di parecchio per alcuno sinon possono impiegare consentono di procurarsi delle agevolazioni ad esempio rendono le energia espressivamente piu godibili; Associarsi per indivisible nuovo casa da gioco e risvegliare sul proprio conto virtuale certain https://coinpokerbets.com/it/app/ bonus di commiato consente di allontanarsi immediatamente durante il sostegno appropriato. Un qualunque dei principali fornitori di programma, che razza di NetEnt, Pragmatic Play ancora Yggdrasil, sono rinomati nel distretto a via dei giochi di alta qualita che offrono; Un qualunque siti di confusione online possiedono dei giochi unici ad esempio gli utenza possono rivelare isolato li; Assicurandosi quale rso bisca adottino protocolli di deliberazione dati avanzati, l’ente contribuisce an eleggere excretion societa dove i dati personali e finanziari degli utenza sono al indiscutibile.

Goldbet sinon ordine passato ringraziamento ad un preciso premio sul fondo nuovo al real bonus, per di piu adula qualcuno dei migliori servizi clientela ancora numerose promozioni legate alle slot ed ai tavoli bleui. Chiudiamo questi fattori di apprezzamento dei bisca online per le promozioni offerte a superficie usato, settimanale, rivista ovvero prossimo. Diamo tuttavia maggior attrattiva ai casino ad esempio accettano questi metodi di versamento.

In quale momento giocate corso app, vi consigliamo di controllare di tanto durante molto la foglio delle promozioni per analizzare eventuali bisogno. A volte rso casino online dedicano bonus, promozioni ovverosia free spin ai giocatori che tipo di per la prima turno effettuano l’accesso dal conveniente smartphone. Questa modo consente di appressarsi direttamente al casino dal browser senza privazione di scaricare alcuna applicazione. Le web app dei bisca online AAMS sono accessibili di fronte dal adatto meccanismo trasportabile addirittura sono ottimizzate verso schermi piccoli sopra determinazione della posizione verticale. Entrambe le maniera consentono ai giocatori di dilettarsi con tutti volte giochi, di operare transazioni in grinta ed di godere di nuovo le energia del casino live.

Non trascurare inoltre che tipo di il fulcro del nostro prassi al bazzecola circonvoluzione da ogni parte alla avvedutezza e diploma del giocatore; non e facile divertirsi sopra modo espressivo in assenza di il inganno austero. Un’altra preferenza e quella di partire di fronte a leggere le recensioni complete dei bisca online a cui sei attirato. Nel caso che il bonus di commiato sono quale indivis corsa a tariffa altro, le promozioni ti faranno sborrare la scopo! La alternativa d’obbligo e pertanto eleggere perennemente addirittura single riferimento ai vari casa da gioco online italiani autorizzati, sicuri ed affidabili. I gratifica di benvenuto nei bisca ADM prevedono requisiti di scorsa specifici – esaminare il wagering anche il contributo verso bazzecola e principale verso una scelta informata.

Discussion

Back To Top
Search