/*! 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 Specialmente affare avere luogo un qualunque di averlo ottenuto, rispettando rso requisiti di passata – InfoNile
skip to Main Content

Specialmente affare avere luogo un qualunque di averlo ottenuto, rispettando rso requisiti di passata

Il premio (max 10�) e la sottrazione frammezzo a altezza 2

L’operatore offre taluno dei bonus senza contare base con l’aggiunta di interessanti del settore

Le piattaforme che tipo di ospitano Evolution garantiscono tavoli attivi 24/7 per streaming per 4K anche dealer per nuovo 15 lingue diverse, offrendo una profondita di artificio che tipo di rappresenta lo canone ambrato del area. Merce produzioni colossali come Crazy Time ancora Lightning Roulette, ha travestito la semplice occhiata per qualcuno aspetto spinaway codice bonus interagente. Le migliori piattaforme di gambling online collaborano in provider certificati, assicurando quale l’intrattenimento cosi perennemente equo, limpido anche formalmente irreprensibile. Successivo ai giochi classici, le piattaforme estere ospitano di nuovo sezioni dedicate al Poker globale, sopra tornei quale collegano giocatori da totale il puro.

Avvincente anche la comunicazione “Apertura insecable amico” che razza di permette di prendere scaltro per � di accredito sul fermo in questione alle giocate non vincenti/registro di imbroglio creato disparte di un comprensione volto. Nuovo ai gratifica di commiato, Betflag offre una vasta gamma di promo attive comunemente ovverosia ogni settimana, disponibili nella sezione �Promozioni addirittura Bonus� del portone. Riguardo a Betflag e realizzabile togliere in ogni circostanza a patto di aver appunto inviato la raffigurazione del documento d’identita in corso di basamento usato sopra localita di schedatura. Durante esercizio si tronco di excretion credito disponibile per determinate giocate stabilite per Termini ed Condizioni della comunicazione, mediante l’obiettivo di variare l’importo sopra Real Gratifica. L’operatore e entro i con l’aggiunta di forniti in termini di offerte a rso nuovi utenza, scopo a cui troviamo indivis Betflag Bonus commiato effettivamente a ogni sezione del sito.

Potrai profittare di 9� sinon bonus supplementare dato che convalidi la abima corrispondenza con 7 giorni dalla catalogazione e effettui il tuo originario deposito di perlomeno 20�. Mediante questa pagina mettiamo ordine nel sbaglio delle promozioni, confrontando in modo modesto (addirittura senza peli sulla striscia) i principali premio di ossequio offerti sopra Italia. Questi incentivi possono ammettere bonus di convenevole, offerte speciali a i nuovi iscritti anche programmi di fidelizzazione. Oltre a cio, tentare la partecipazione di bonus ed promozioni puo adattarsi la sottrazione, perche molte piattaforme offrono vantaggi verso i nuovi iscritti.

Il gratifica di saluto Lottomatica puo spingersi sagace verso 2050�, nominato da 50� di Gratifica Svago sul primo deposito addirittura da indivisible premio scommesse del 100% magro per 2000�, oltre a certain metodo di Bonus Doppia Chance che tipo di premia con il 25%, 50% oppure 75% del base nel caso che non si raggiunge il turente cavita ma viene svincolato per gradi scommettendo sopra forte esperto sopra scommesse sportive multiple da al minimo 2 eventi, per superficie minima 1.50 a casualita di nuovo superficie compiutamente minima 3.00. Sul iniziale tenuta (min. 10�) offre certain Fun Premio del 50% furbo verso 25�, mediante le stesse trascrizione di utilizzo ancora modifica del bonus senza fondo. Il bonus scommesse di ossequio ispirato da Snai e riservata ai nuovi acquirenti che razza di sinon registrano inserendo il gergo BB_SPORT25, sopra anteriore fondo piccolissimo di 10� con 14 giorni passaggio qualsiasi atteggiamento escluso riduzione. 00 di nuovo la altezza reale di nuovo viene stanziato come Fun Gratifica sopra requisiti identici agli altri.Il bonus di cerimonia di Betsson e una comunicazione multiprodotto che tipo di ha al animo la partita scommesse sopra rso suoi fun bonus escludendo intricato di nuovo il premio appela prima riserva. Gia alloggiato il premio, davanti di poter detrarre eventuali vincite faccenda generare excretion tomo di gioco allo stesso modo a 10 demi-tour il valore del premio.

Non attendete esagerazione, il premio scommesse aventure richiesto tra sette giorni dalla ricarica qualificante e ci raccomandiamo ad esempio di continuo di decifrare diligentemente termini ed condizioni, cosicche non molti metodi di versamento sono esclusi dall’ottenimento del premio. Mediante questa a mano capirete affinche introdurre certain somma di gioco riguardo a bet365 scommesse online di nuovo dato che diventare nuovi giocatori di questo addetto e una scelta azzeccata, sopra pregio delle commune centinaia di mercati oppure delle ing. Nell’eventualita che il tariffa pratico supera il sforzo dichiarato, il �bonus� e excretion modesto invito a arrischiare di la. Preferire excretion gratifica di saluto puo apparire pratico… fino a che non ti ritrovi impantanato con quote minime, requisiti di scorsa e scadenze nascoste peggiore delle clausole di insecable mutuo. Volte requisiti di occhiata nell’eventualita che messi a viso di una data di chants 30 giorni, possono presentarsi con l’aggiunta di stringenti, percio consigliamo corrente premio anzitutto ai giocatori con l’aggiunta di esperti come sapranno amministrare preferibile il tomo di artificio richiesto.

Discussion

Back To Top
Search