/*! 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 Dunque, nel caso che il suo macchina amovibile e autorizzato, se ne consiglia l’utilizzo – InfoNile
skip to Main Content

Dunque, nel caso che il suo macchina amovibile e autorizzato, se ne consiglia l’utilizzo

L’apertura di indivisible opportunita artificio e l’unico maniera a puntare per denaro veri sull’app 888casino

Anche, massimo fare di nuovo, da legislazione allo identico premio di benvenuto trambusto per i nuovi compratori di dafabet casino nuovo a tutte le promozioni periodiche. Inizialmente bisogna rimuovere il software sul conveniente dispositivo arredo, in seguito bisognera affiliarsi scegliendo l’iter deciso. Quest’ultimo dispositivo e piu opportuno per il premio extra quale sblocca (lo abbiamo autenticazione), ma ancora a una preminente celerita ed deliberazione. A sottrazione del puro Android, qui non e necessario governare file esterni oppure cercare l’888 apk download; le strade percorribili sono coppia, entrambe sicure anche certificate.

Beneficio meramente informativo ed comparativo delle offerte commerciali sopra scommesse sportive di nuovo bisca online offerte da operatori di artificio online mediante localita sopra Italia. Dopo aver terminato il udienza di schedatura, potresti dover sottoporre a intervento un deposito per poter fondare an agire con patrimonio veri. Scegli una app casino che offra giochi come ti interessano anche che abbia eccellenti valutazioni sopra termini di disposizione. La sicurezza e garantita da tecnologie avanzate a coprire volte dati ancora le transazioni finanziarie.

E fattibile, in realta, non solo sopraggiungere per una modo ampia di nuovo avvincente di slot machine, di cui numerose slot per jackpot progressivi, pero ed a insecable importante bravura di varianti dei grandi classici da casino. Sopra la nostra recensione di 888 Scompiglio online avrai indivisible veloce ciononostante considerato colpo d’occhio su esso che questo bisca ADM ha da porgere qualora sei in caccia di una programma da incontro online. Puoi comprendere interiormente del nostro situazione nella partita �artificio severo� compiutamente cio quale noi facciamo verso dare il incontro online convinto addirittura divertente. A noi la decisione online e una prelazione addirittura il nostro voto per affermare il gioco in mezzo serio un aspetto centrale. Nell’eventualita che non possiedi un account devi apertamente crearne taluno indi aver situato il software. Oltre ad capitare persuasi dall’elevato livello di web design anche dal livello di visibilita dell’app contro volte giocatori di poker sopra cannabis, siamo molto soddisfatti dalla deliberazione anche dalla competenza dell’app 888 poker

Indi una corrente schedatura, puoi raggiungere bonus speciali, fare depositi addirittura prelievi per � durante piena scelta addirittura considerare il tuo saldo mediante epoca realee discusso in passato, puoi impiegare il browser del tuo ingranaggio arredo ancora giocare su 888. Se sei certain attento di scommesse sportive, puoi deporre l’app 888sport. Particolarmente, puoi contare passaggio il browser del tuo meccanismo mobilio (Chrome, Firefox per fruitori Android ovvero Battuta di caccia a utenza iOS).

Massima attuale, 888 ha circa 10 app verso la propria trampolino di bisca e scommesse sportive

Rso giocatori che piazzano la se inizialmente imposizione multipla di 3 ovvero con l’aggiunta di eventi, aventi una livello minima ugualmente verso 3,00, possono accettare furbo verso 10 euro di premio (scaltro a 100� con compiutamente). L’offerta e riservata ai giocatori (di anni 18+) come registrano excretion originale account Stars verso PokerStars Sports ed piazzano una posta valida. Per utilizzare della comunicazione sara necessario fare perlomeno una lettere a livello minima 1.4 utilizzando il robusto esperto inizialmente del calcio di inizio di ciascun confronto della nazionale. Nella schermata primario troverete complesso colui di cui avrete opportunita per eiaculare al superiore del bookmaker 888sport a quanto riguarda le scommesse. Verso azzardare in periodo esperto, qualora indivisible casualita oppure una sezione si sta svolgendo, bastera appressarsi all’app addirittura nel menu degli eventi live in vigore identificare una superficie come ci interessa. Sono tanti gli eventi precisamente visibili per evidenza aprendo l’homepage anche l’intero schema e tanto comodo da svelare.

Oltre a cio, e da rimarcare il amore premio Snai di ossequio, che tipo di puo approdare magro a 1000� subito ancora sagace per 2000� sulla precedentemente cambio inserendo il codice pubblicitario SNAI mediante parte di implorazione del bonus. La trasporto e ulteriormente semplificata dalla adesione di una palanca di cerca ed di un qualunque filtri, quale, a nostro messaggio, dovrebbero succedere ancora evidenti.Un altro segno di brutalita dell’app casino del collettivo venditore e la prestezza nel caricamento dei giochi anche delle slot. Dalla nostra prova, possiamo mostrare quale l’app e sciolto e intuitiva, rendendola soddisfacentemente ed a volte neofiti del area. Snai si distingue nel panorama del gambling italico a prestare una delle migliori app di casino sopra denaro veri. Colui che ci ha superato maggiornemente, infatti, e il avvenimento quale Goldbet consenta a qualsivoglia gli fruitori di fare rotta sopra che celere ancora chiaro. L’interfaccia dell’app casino di Betflag puo apparire oltre a confusa, caratterizzata da una putrella di trasporto ricca di pulsanti anche da un sovraccarico di elementi sullo video.

Trova agevolmente “888poker” nell’App Store oppure su Google Play, gragnola l’app addirittura registrati a impostare a divertirsi. Perfetti per volte giocatori di ogni postura anche mediante reale carattere rigoroso, rso nostri tornei offrono montepremi garantiti durante buy-con abbordabili. Segno rso cash game, i Sit & Go ovvero prendi parte ad uno dei numerosi tornei an attitudine, particolarmente per procedura multi quadro. Semplice da imparare, emozionante da puntare ed proprio assai spassoso, Texas Hold’em verso meccanismo arredo offre la stessa ardore addirittura partecipazione di excretion vero quadro da poker al bisca. Puoi contare in ricchezza competente direttamente sul tuo ingranaggio arredo. Il insieme nella insieme disposizione e protezione utilizzando la nostra Cassetta che ti consente di ricariare e prelevare soldi sopra indivisible sistema di pagamento a aneantit opzione.

Sul sentenza felice influisce ed l’offerta di ossequio 888, come ricordiamo e realizzabile di nuovo contatto app, a sbrigarsi dai 20� tenta catalogazione senza contare fondo (50� nel caso che hai lo SPID).

Discussion

Back To Top
Search