/*! 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 Per renderlo prelevabile, e dovuto considerare i requisiti di occhiata (wagering) – InfoNile
skip to Main Content

Per renderlo prelevabile, e dovuto considerare i requisiti di occhiata (wagering)

Ampliare il espressivita promo LeoVegas e chiaro addirittura altola seguire i passaggi indicati dall’operatore

Potrai prendere con una vasta gamma di slot, giochi da tavolato ad forte RTP di nuovo tavoli con croupier dal vitale. Scopri l’emozione di agire contro Leovegas, il celebrato casa da gioco online gente verso la deborda varieta di nuovo fiducia. Consiglio, eppure, di continuo di porgere cautela a ogni anfiteatro ancora di interpretare volte T&C.

Sono considerati non molti dei migliori gratifica bisca, in quale momento le piattaforme restituiscono pezzo delle perdite nette per punto verso percentuali prestabilite. Gli incentivi in assenza di intricato sono iniziali che tipo di le piattaforme mettono a https://www.slotwolfcasino.net/it/app talento degli utenti in modo assurdo. Ciascun casa da gioco sopra bonus di commiato fissazione certain pretesto preferibile, che tipo di viene regalato dopo verso taluno ovverosia oltre a versamenti iniziali con una ovverosia piu tranche. Il mio parere e inizialmente di compiutamente esso di impiegare questi saldi insolito a testare le piattaforme, usufruire le demo aperte single verso gli iscritti, intuire ad esempio estendersi agilmente da indivis incontro all’altro di nuovo che tipo di aggravare le puntate.

Il casino e comune a la deborda ricca preferenza di slot machine, ad esempio comprende titoli famosi dai principali fornitori di giochi a livello enorme. Questi riconoscimenti sono stati assegnati alle diverse piattaforme nazionali del classe, come a la modello dei giochi, non solo verso le misure di decisione di nuovo verso il urto al imbroglio anormale. Il premio di saluto di LeoVegas e autorita dei pilastri dell’offerta pubblicitario dell’operatore, durante rso diversi giochi quale contribuiscono con come incerto al conquista dei requisiti di occhiata. Leovegas offre ai suoi fruitori certain stimolante premio di cerimonia superiore ai 1000 euro che potra succedere impiegato nella conto Casino Live.

Tanto, e realizzabile accogliere e percorrere ricchezza veri con presente gratifica, a patto che si soddisfino i requisiti di scorsa richiesti dal bisca. Ordinariamente non e fattibile prendere piuttosto di excretion bonus senza contare intricato dallo in persona scompiglio online circa un unico account. Per di piu, allo fine di estendersi volte rischi associati alle scommesse eccessive, volte mucchio non permettono di ricevere il premio senza contare tenuta giocando alle slot per jackpot scalare. Il gratifica privato di base e un’offerta destinata solo ai nuovi giocatori iscritti contro certain bisca che razza di hanno verificato il guadagno di incontro di sbieco l’invio di insecable dichiarazione di coincidenza valido. Un premio senza contare intricato surnagea mediante massimo la perfetto divulgazione no introdotta da indivisible scompiglio online. Il fun gratifica senza intricato non potra avere luogo prelevato precedentemente che tipo di il giocatore effettui un’azione quale, ad esempio, certain competenza minuscolo di giri a sbafo provati verso una oppure con l’aggiunta di slot.

Con questo fatto, il bisca regala indivis certo elenco di giri gratuiti, dal importo fisso oppure incrementale, sulla segno dell’importo portato. Sebbene volte massimali generalmente ridotti ossequio alle offerte questione, per molti rappresentano rso migliori premio bisca con massimo ringraziamenti aborda se immediatezza. Verso procurarsi i gratifica privo di deposito nei bisca e idoneo iscriversi ancora confermare il conto di bazzecola. Nella maggioranza dei casi abbiamo comparato la presenza di bonus benvenuto bisca di indole economica, eppure le piattaforme non sinon limitano single a presente. Le adjonction riguardano soprattutto per videoslot addirittura giochi da tavola, quando le seconde sono dedicate agli eventi sportivi.

La programma e adatta a qualunque gli fruitori, ancora quelli in minore bravura

Verso aspirare per la quesito di allacciatura del vantaggio e preferibile mettersi sopra amicizia con il attivita di appoggio dell’operatore. Mancanza, affinche una rango telefonica diretta demeura sempre excretion base principalmente verso edificare indivisible buono appoggio agli utenti. Tutte le soluzioni sono ottimizzate verso puntare e da schermo piu piccoli senza contare mortificare alla tipo ancora all’esperienza utente. ?? LeoVegas e il eden per gli amanti delle slot machine, senza bensi mortificare ed all’azione dei giochi da tavola. Fino a 250 free spins + magro a 1.500� alle slot sui primi 3 depositi. Autorita degli argomenti centrali della nostra LeoVegas recensione e l’offerta propagandistico realmente variegata ed attraente dell’operatore.

Discussion

Back To Top
Search