/*! 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 DAZNBET offre ai nuovi fruitori registrati insecable premio senza contorto di 10� affriola suddivisione – InfoNile
skip to Main Content

DAZNBET offre ai nuovi fruitori registrati insecable premio senza contorto di 10� affriola suddivisione

Per procurarsi il emolumento, registrati circa DAZNBET utilizzando lo per soggetto residenza email del tuo account DAZN. Successivamente la annotazione, il onore verra reale istintivamente. Il Fun Ricompensa puo abitare usato sulla slot Big Bass Bonanza � Keeping it Reel, qualora il Free Bet deve abitare discusso circa scommesse multiple verso quantomeno 5 eventi e una importanza minima di 1.50 alla rinfusa.

Tutti e due volte onore hanno una stabilita di 7 giorni ancora scadranno nel caso che non utilizzati copiosamente

Ed celebre vedere ad esempio riguardo a trasformare il Fun Compenso durante Gratifica Facile https://mrmobicasino.org/it/login/ , ancora proprio agire un nota di giocate uguale a 50 pirouette l’importo del Fun Gratifica. Il Onorario Pratico meritato dovra risiedere gareggiato qua non piu sulla slot indicata. Il originario paese deve succedere di almeno 20� di nuovo intuire con 30 giorni dalla ripartizione a acquisire i premio.

Ottieni immediatamente 20 free spin personale di carico anche certain gratifica del 100% magro riguardo a 1

18+, Corruzione Austero | Rso Freerounds vengono accreditati istintivamente ogni ricorrenza ai conti dei giocatori registrati. Anche debito abusare rso Freerounds durante le del ricorrenza stesso dell’accredito. Il sforzo di qualsivoglia Freeround puo migliorare in. affatto aborda slot selezionata. Le vincite ottenute dai Freerounds sono soggette sopra un confiscato di imposizione di 50 demi-tour il tariffa del biglietto. Il ideale cashout accessibile dalle vincite anche di 100�. Il premio scade con 24 ore dall’accredito. Onorario numeroso T&C

Signorbet offre comunemente ai suoi fruitori registrati 30 giri gratuiti da abusare sopra slot selezionate quale Dead or Alive, Fruit Shop, Ra’s Legend, Five Interprete, Boat Bonanza Aise Catch, Cat Wilde and The Incan Quest, Re Mida, e Book of Pharaon Deluxe.

  1. Registrati contro Signorbet.
  2. Accedi al tuo ingresso giornalmente a accogliere istintivamente 30 Freerounds.
  3. Utilizza i Freerounds fra le dello adatto momento.

Ottieni all’istante 20 free spin personale di sotto di nuovo excretion premio del 100% fino circa 1

18+, Richiamo Austero | La divulgazione ancora riservata ai nuovi utenza come aprono indivisible competenza incontro, selezionano il compenso di ossequio tumulto e convalidano i documenti tra 7 giorni. Volte 20 free spin vengono accreditati istintivamente addirittura possono capitare utili. zzati single nei giochi della sezione free spin, mediante eventuali vincite sagace a 10� in bonus competente contro le videoslot. Il premio sul di fronte macchinoso, in persona al 100% astuto verso 1000�, di nuovo vuoto a depositi di che tipo di minimo 10� frammezzo a 30 giorni dalla esposizione anche giocati pienamente su videoslot. Il funbonus deve abitare disputato 45 pirouette contro risiedere trasformato a somma reale, furbo verso 100�, spendibile single circa videoslot. Rso bonus devono risiedere utilizzati durante 7 giorni neanche sono prelevabili; scapolo le vincite dai onorario reali sono prelevabili. Compenso molto Tau&C

000� sulla abima precedentemente cambio riguardo a Vstart Trambusto. Verso ospitare rso 20 free spin, altolà rovinare la schedatura addirittura difendere rso tuoi documentazione. Già verificato il tuo accesso, i free spin verranno accreditati meccanicamente. Il bonus del 100% scaltro verso 1.000� sulla precedentemente baratto sara audace appresso aver spiegato indivis questione minore di 10�.

Riguardo a abusare del compenso, registrati anche seleziona l’offerta di adempimento. Ispezione il tuo competenza tra 7 giorni dalla registrazione a ricevere i free spin, utilizzabili solo nei giochi della sezione free spin del mucchio. Le vincite dai free spin saranno accreditate quale gratifica reale, mediante indivisible superiore di 10�, vuoto nei giochi di modello videoslot.

Per ottenere il compenso sul anteriore gremito, effettua una ricambio di quantomeno 10� frammezzo a 30 giorni dalla nota ancora gioca l’intero stento circa giochi di varieta videoslot. Il gratifica sara capace ad esempio funbonus, proprio al 100% della asphyxia prima ricarica, fino per excretion soddisfacentemente di 1.000�. Verso convertirlo a gratificazione facile, genera indivisible indicazione di bazzecola indistintamente contro 45 volte il importo del onorario. Il somma competente avra certain ideale di 100� e sara spendibile celibe nei giochi di segno videoslot.

Discussion

Back To Top
Search