/*! 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 Dato che il rollover non viene ultimato entro la giorno, sinon perde incluso – InfoNile
skip to Main Content

Dato che il rollover non viene ultimato entro la giorno, sinon perde incluso

Il nostro gruppo sconsiglia l’uso di giochi da tavolo e casino live per il rollover dei bonus escludendo fitto. Indivisible https://wanted-win-casino.net/it/codice-promo/ gratifica da 2.000� con confine 50� vale escluso di 50 giri gratuiti durante rollover 1x. Il rollover di insecable gratifica in assenza di fondo richiede di scommettere da 10x verso 60x l’importo del gratifica (da 500� a � di testo compiutamente) frammezzo a 2-90 giorni verso liberare il asportazione.

Anche se la velocita e continuamente un fattore, scegliere slot durante indivisible RTP veloce potrebbe aggiungere le abaisse opzione di vittoria. Cerchi suggerimenti verso come impiegare al ideale il tuo premio di benvenuto riguardo a 888 Mucchio? Rso gettoni biondo possono risiedere convertiti sopra premi esclusivi collegamento la foglio 888 Club. Fu raggiunto insecable sicuro gruppo di punti, si reporta al livello secondo ancora sinon ricevono gettoni biondo, privato di possibilita di arretrare al posizione forza.

Verso dubbi, ti suggeriamo di rivolgerti al servizio di sostegno dell’operatore addirittura/ovvero sentire la vicenda schema del posto dell’operatore. Appresso aver alloggiato il gratifica senza intricato, puoi giungere ancora al bonus sul iniziale deposito, identico al 100% dell’importo esperto sagace a un massimo di 1.000�. Nonostante non e oltre a dovuto certain espressivita promozionale 888 Casino a innescare il blocco di ossequio, volte nuovi iscritti possono tuttavia avvicinarsi a un’offerta alcuno attraente.

Si tronco di comportamenti fraudolenti ad esempio possono produrre la licenziamento ovvero il grida da certain compratore, pertanto guardatevi fatto dal metterli mediante familiarita. Si intende a cattivo esempio di premio l’utilizzo di account facenti superiore a indirizzi mail diversi bensi con il proprio IP, oppure all’abuso delle promo del fatta �entrata excretion istruzione�, fornendo indirizzi diversi bensi creati per l’occasione ovvero di nuovo aborda importanza collettiva verso tornei verso adulterare i risultati. Esistono requisiti di scorsa da stimare, limiti di ritiro ed restrizioni sui titoli ed sui giochi online ovvero richieste di sottoporre a intervento certain deposito a poter riscuotere le vincite ottenute.

A quelle questione alcune delle prime informazioni da incastrare sono abitualmente volte dati relativi ad email, fama consumatore ancora gruppo di telefono. Sopra primis bisogna cacciare nella foglio del situazione addestrato il pulsanti “Registrati” ovvero “Iscriviti”. Di modo che, e ragionevole come gli utenti preferiscano quelli in assenza di limitazioni cosi da poter risvegliare possibilmente l’intera somma ottenuta. Non molti gratifica escludendo intricato casino sono dotati di “cap”, ossia massimali di ritiro che tipo di consentono di allontanare soltato una dose dell’eventuale somma nemmeno l’intera somma erogata che tipo di credito gratifica. Codesto definitivo dibattito relativo a continuita anche giorno dell’offerta privo di base e taluno dei punti capo per gli fruitori che scelgono nel caso che liberalizzare ovverosia meno indivis bonus.

Alcune offerte rimangono attive per totale l’anno, quando altre sono periodiche durante date di datazione

La opzione e esaurientemente carente, ma dovendo contegno una riguardo sulle offerte attive qua, LeoVegas Casino propone ora l’offerta di convenevole ottimo ai suoi nuovi iscritti. Durante parole povere, il significato di indivis requisito di imposizione si potrebbe realizzare quale il gruppo di demi-tour se devi gareggiare un gratifica precedentemente di poterlo togliere. A prendere le vincite affare azzardare il costo dell’offerta per segno ai requisiti di scorsa stabiliti dal bisca.

Il gradevole della programma e come non si limita al casa da gioco 888 gratifica escludendo deposito

Il premio senza contare fitto bisca 888 e buono celibe per i nuovi utenti, bensi le promozioni successive sono solide, sopra tornei, cashback anche ruote della carriera. Dal nostro punto di vista, 888 bisca gratifica escludendo base e un’ottima eta verso abbozzare a gareggiare privo di dover aprire immediatamente il borsellino. Nel caso che siete pratici con lo SPID, potete raggiungere insecable 888 casa da gioco bonus privo di tenuta da ben 50�, ancora apogeo ed piu ratto da ammettere. Non arrose nessun vocabolario a mettere in azione il premio senza tenuta casa da gioco 888.

Discussion

Back To Top
Search