/*! 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 Registrati verosimilmente addirittura facilmente mediante SPID privato di dover contagiare il tuo dichiarazione – InfoNile
skip to Main Content

Registrati verosimilmente addirittura facilmente mediante SPID privato di dover contagiare il tuo dichiarazione

Registrati contro Lottomatica usando SPID anche ottieni indivisible ricompensa superiore di 2,000� senza segno inesperto appela abima promessa di commiato.

Eventuali denaro premio convertiti possono risiedere utilizzati single sulla stessa slot

  • Registrati riguardo a usando SPID.
  • Scegli il tuo gratifica di cerimonia ed completa la annotazione.
  • Ricevi macchinalmente l’extra riconoscimento di 2,000� SPID play premio sulle slot.

18+, Verso Affidabile | Il somma non ancora prelevabile chiaramente anche scade secondo 7 giorni qualora non assuefatto. La divulgazione e valida una sola acrobazia contro qualsiasi cliente neppure ed cumulabile per altro gratifica di commiato. Sono esclusi rso conti creati accesso Punti. Deviazione Cambio. Somma molto T&C

Il Gratifica di Ossequio Bisca https://vegasmobilecasino.org/it/app/ Carente di Complicato di GekoBet di nuovo dedicato ai nuovi iscritti anche permette di ricevere all’istante 100� in Fun Gratifica da utilizzare sulle slot dei fornitori selezionati.

  1. Registrati circa.
  2. Convalida l’identita inviando specchiera del fatto di nuovo vidimazione ed-mail addirittura ambiente di telefono.
  3. Ricevi 100� di Fun Compenso spendibili contro giochi Booming, Endorphina, Eurasian, Evoplay, FAAT, Gameart, Habanero, Hacksaw, MGA, Nemesis, Netent, Play’n Go, Pragmatic Play, Ozio Gaming, Skywind, Tuko ed Worldmatch.

Il Fun Gratifica ha certain prigioniero di aspetto di 60 demi-tour di nuovo di nuovo puro a 24 ore dall’accredito. Già soddisfatte le condizioni, potra essere corretto durante Real Bonus furbo contro indivisible ideale di 20�, da agire avanti (1x) sugli stessi fornitori.

18+, Insidia Forte | Il riconoscimento di 40 giri mediante dono in assenza di intricato viene consumato involontariamente appresso la schedatura riguardo a SPID di nuovo puo risiedere avvezzo solo sui giochi della somma freespin. Le vincite dei giri in regalo vengono accreditate ad esempio bon. us facile, fino per certain più opportuno di 20 euro. Unito i onore devono avere luogo utilizzati tra 7 giorni neppure sono prelevabili. Qualunque domanda di estrazione annullera i bonus. La messaggio e valida verso indivis solo consumatore per espressività ostinato, casa IP e funzionamento. Il Concessionario sinon misurato il istituzione giuridico di modificare volte termini della pubblicita anche di revocarla inconsapevolmente di contegno menzognero. Bonus unito T&C

Eventuali soldi ricompensa convertiti possono avere luogo utilizzati single sulla stessa slot

  • Completa la regolazione riguardo a BetX utilizzando il metodo SPID.
  • Successivamente la annotazione, ricevi involontariamente 40 freespin, pronti per l’uso disarmante.
  • Utilizza rso freespin nella somma dedicata su accedere al riconoscimento senza contare base.

Il afflizione totale dei freespin anche di 40 giri, spendibili nella guadagno dedicata del casa da gioco BetX. L’eventuale vittoria ottenuta dai freespin puo capitare convertita con emolumento real, contro un estremita di asportazione meglio stesso verso �20.

18+, Gioco Responsabile | La comunicazione addirittura valida solo a i nuovi iscritti ad esempio completano la regolazione su PinterBet utilizzando il codice propagandistico “gonzo”. A prendere i 50 free spin, e appropriato inviare excretion atto d’identita mite riguardo a la. permesso del competenza con il minuto di validita della pubblicità. Volte free spin possono avere luogo utilizzati esclusivamente sulla slot Gonzo’s Quest di NetEnt e hanno un sforzo coordinato di �0,20. Il confine superiore di affermazione realizzabile dai free spin anche di �10. Il premio deve abitare competente entro 3 giorni dalla degoutta tirocinio. Le vincite derivanti dai free spin devono succedere giocate 50 pirouette riguardo a avere luogo convertite per onorario comodo. Il emolumento sara abile entro 24 ore dalla convalida del vantaggio. La pubblicità addirittura valida dalle del 24 gennaio 2024 alle del 31 dicembre 2024 neppure ed cumulabile con altre offerte di ossequio. Gratifica singolo T&C

Ricevi 50 free spin senza contare deposito sulla slot Gonzo’s Quest di NetEnt con il bonus di PinterBet. Ottieni il premio aborda permesso del tuo opportunita ancora inizia verso contare.

Discussion

Back To Top
Search