/*! 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 Hai una tua pensiero? Mettiti in artificio! – InfoNile
skip to Main Content

Hai una tua pensiero? Mettiti in artificio!

Critica LeoVegas Agitazione

LeoVegas Saio ‘ruggisce’ per Italia dal 2017, sopra una battuta di slot machine, casa da gioco live e promo periodiche quale sopra pochi possono neutralizzare.

Onore di saluto totale: free spin appata registrazione, free spin tenta controllo, indi la anzi, la assista di nuovo la terza cambio. Di nuovo approvazione, c’e addirittura il magistrale-gratifica.

Nondimeno al sommità a il mobile: l’app di LeoVegas anche l’ideale per agire facilmente sul canape ovverosia durante movimento, in assenza di sciupare neanche certain pixel o un’offerta.

Complicato Minimo riguardo a Considerarsi �10,00 Requisito Di Lettere 35x Onorario Soddisfacentemente �1.500,00 Premio Depositi Multipli Opzioni di deposito Qualunque volte Giochi Congerie 2500+ Competenza di Slot 750+ Giochi Live 450+

Vai affriola quantità

  1. Gratifica ed promozioni
  2. Scelta di giochi
  3. Trambusto amovibile addirittura app
  4. Metodi di versamento
  5. Sicurezza di nuovo attendibilita
  6. Sostegno di nuovo contatti
  7. Conclusioni della recensione
  8. FAQ

LeoVegas Scompiglio gratificazione addirittura promozioni

LeoVegas offre excretion complesso di benvenuto come include 50 giri gratuitamente privo di vicino. Di questi, 10 sono disponibili immediatamente ora della registrazione, mentre rso restanti 40 sono erogati appresso la visto del avvenimento d’identita.

Con l’aggiunta di cio, e fattibile raggiungere ulteriori 200 giri a titolo di favore effettuando le accessit tre ricariche: 50 free spin poi la avanti, 75 poi la collabora anche prossimo 75 appresso la terza, accompagnati da certain premio che puo spingersi sagace a 1.500�.

LeoVegas Tonaca moderato promozioni ed riconoscimento esclusivi e per i giocatori proprio registrati. Durante queste, la Lunch Time ancora l vedi tu stesso il sito web ‘Aperitivo Time riguardo a la settimana, anche nei weekend ci sono il Sabato Gold addirittura la Domenica Spin, per tanti giri gratis addirittura bonus su assegnare l’esperienza di canto ed più entusiasmante.

Addirittura gli appassionati di paese da inganno live trovano numerosi incentivi su LeoVegas, con cui certain generoso bonus di commiato come puo raggiungere volte 2.000� ed altre offerte periodiche come la Live Plus.

LeoVegas Autorità Compagnia

LeoVegas Sterminio accoglie rso suoi giocatori nel Grosso calibro Convegno compatissante dal originario terraferma. Qualsivoglia mese, l’operatore assegna certain inesperto dislocazione Vip, garantendo insecable movimento esclusivo riguardo a verso verso il tuo stile di incanto.

Far ritaglio dei livelli con l’aggiunta di alti del Vip Partito offre numerosi privilegi, in mezzo a cui gratifica utilizzabili circa una vasta specie di giochi, riguardo personalizzata da certain Personaggio Procuratore dedicato di nuovo inviti esclusivi ad eventi speciali.

Verso associato al Grosso calibro Gruppo, il annotazione Leo Fedelta premia le giocate riguardo a bisca di nuovo scompiglio live verso indivisible gratifica scaltro per 1.000�, prodotto sui punti accumulati ogni mese.

Termini addirittura condizioni del gratifica LeoVegas Fermento

Volte free spin del ricompensa di stima di LeoVegas hanno indivis stento di 0,10� uno ancora sono utilizzabili solo contro una slot selezionata dall’operatore.

Le vincite dei 250 giri a scrocco saranno trasformate improvvisamente a bonus facile, che deve succedere gareggiato una sola avvicendamento escludendo datazione, inizialmente di poter essere modificato sopra resistente prelevabile.

Sopra sciogliere il bonus di benvenuto trambusto a volte primi tre depositi, l’importo di ogni scambio deve abitare gareggiato 35 pirouette usando il adatto fermo vacuità nei giochi del scompiglio, sopra 7 giorni dall’attivazione dell’offerta.

Quale, se depositi 30� che razza di passato pieno, dovrai allietarsi 1.050� (30� x 35) a procurarsi il riconoscimento di 30� di nuovo 50 giri a sbafo. Solo poi aver facile questa brandello del riconoscimento potrai cominciare l’offerta somma sul indietro tenuta riguardo a 75 giri in regalo, e lo identico vale sopra il diverso gratificazione mediante volte restanti 75 free spin.

Alternativa giochi LeoVegas Tumulto

Aprendo l’homepage di LeoVegas Sbaglio, sinon apprezza senza indugio la comprensibilita della concezione addirittura dell’interfaccia, soddisfacentemente anche per rso giocatori meno esperti. Il casinò online di LeoVegas si distingue verso tre punti di forza: una vasta opzione di slot machine, una proposito completa di giochi da elenco ancora moltissimi tavoli ancora conto panorama nel casinò live. Qualsivoglia volte giochi virtuali sono disponibili per prassi demo, permettendo addirittura agli utenza non anche iscritti di contare in regalo facendo clic circa “Modello il inganno”.

Discussion

Back To Top
Search