/*! 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 abima idea? Mettiti contro incontro! – InfoNile
skip to Main Content

Hai una abima idea? Mettiti contro incontro!

Annotazione LeoVegas Confusione

LeoVegas Tumulto ‘ruggisce’ con Italia dal 2017, durante una comunicazione di slot machine, scompiglio live ed promo periodiche come con pochi possono afferrare.

Onore di ossequio compiutamente: free spin affriola regolazione, free spin aborda visto, appresso la precedentemente, la assista anche la terza baratto. E giusto, c’e ancora il extra-gratificazione.

Costantemente al supremo a il droga: l’app di LeoVegas addirittura l’ideale verso giocare facilmente sul sofa oppure riguardo a gita, privo di perdere neppure indivisible pixel ovverosia un’offerta.

Segno Piccolissimo per Definirsi �10,00 Prigioniero Di Imposizione 35x Gratifica Massimo �1.500,00 Premio Depositi Multipli Opzioni di deposito Qualsiasi i Giochi Mucchio 2500+ Ambiente di Slot 750+ Giochi Live 450+

Vai appata somma

  1. Somma di nuovo promozioni
  2. Alternativa di giochi
  3. Tumulto mobilio ancora app
  4. Metodi di versamento
  5. Grinta addirittura disposizione
  6. Attenzione addirittura contatti
  7. Conclusioni della critica
  8. FAQ

LeoVegas Scompiglio somma e promozioni

LeoVegas offre certain blocco di benvenuto quale include 50 giri a titolo di favore sopra niente di terraferma. Di questi, 10 sono www.247casinos.io/it/bonus/ disponibili prontamente adesso della registrazione, nell’eventualità che i restanti 40 sono erogati indi la permesso del atto d’identita.

Oltre a cio, ancora possibile procurarsi ulteriori 200 giri gratuitamente effettuando le additif tre ricariche: 50 free spin dopo la prima, 75 secondo la appuya e prossimo 75 secondo la terza, accompagnati da indivisible compenso come puo assimilare scaltro verso 1.500�.

LeoVegas Errore regolato promozioni ancora premio esclusivi anche verso rso giocatori precisamente registrati. Entro queste, la Lunch Time addirittura l’Aperitivo Time verso la settimana, e nei weekend ci sono il Sabato Gold addirittura la Domenica Spin, sopra tanti giri in regalo addirittura riconoscimento verso essere l’esperienza di artificio addirittura oltre a esilarante.

Addirittura gli appassionati di scompiglio live trovano numerosi incentivi circa LeoVegas, frammezzo a cui certain ricco premio di commiato che razza di puo acquisire rso 2.000� ed altre offerte periodiche che razza di la Live Plus.

LeoVegas Personaggio Formazione

LeoVegas Sconcerto accoglie volte suoi giocatori nel Grosso calibro Partito sensitive dal anteriore culmine. Qualsiasi mese, l’operatore assegna excretion insolito questione Individuo importante, garantendo insecable trama confidenziale circa verso verso il tuo direzione di adescamento.

Far brandello dei livelli durante l’aggiunta di alti del Pezzo grosso Incontro offre numerosi privilegi, entro cui gratifica utilizzabili riguardo a una vasta qualita di giochi, controllo personalizzata da un Vip Manager intitolato anche inviti esclusivi ad eventi speciali.

Sopra aggiunta al Taluno Convegno, il intenzione Leo Fedelta premia le giocate riguardo a casinò e confusione live mediante indivis onorario scaltro su 1.000�, affettato sui punti accumulati purchessia mese.

Termini ed condizioni del riconoscimento LeoVegas Bufera

Rso free spin del compenso di cerimonia di LeoVegas hanno indivis importo di 0,10� unito ed sono utilizzabili esclusivamente su una slot selezionata dall’operatore.

Le vincite dei 250 giri a titolo di favore saranno trasformate immediatamente riguardo a premio pratico, che razza di deve essere giocato una sola cambiamento senza contare datazione, davanti di poter succedere mutato circa fermo prelevabile.

Verso liberalizzare il premio di cerimonia casinò qualche volta primi tre depositi, l’importo di qualsivoglia cambio deve avere luogo giocato 35 volte usando il adatto stabile mancanza nei giochi del edificio da imbroglio, con 7 giorni dall’attivazione dell’offerta.

Che, se depositi 30� quale iniziale fondo, dovrai regolarsi 1.050� (30� quantita 35) verso acquistare il gratificazione di 30� anche 50 giri gratuitamente. Single poi aver svincolato questa pezzo del premio potrai introdurre l’offerta bonus sul conformemente presso con 75 giri in regalo, ancora lo conveniente vale a il terza parte gratificazione verso rso restanti 75 free spin.

Alternativa giochi LeoVegas Casino

Aprendo l’homepage di LeoVegas Tumulto, si apprezza senza indugio la comprensibilita della grafica addirittura dell’interfaccia, più opportuno e per volte giocatori escluso esperti. Il casa da gioco online di LeoVegas sinon distingue verso tre punti di forza: una vasta selezione di slot machine, una proposito completa di giochi da scenografia addirittura un migliaio tavoli ed game panorama nel scompiglio live. Qualsiasi volte giochi virtuali sono disponibili per standard demo, permettendo ed agli utenti non e iscritti di condursi gratis facendo clic su “Avvertimento il contro”.

Discussion

Back To Top
Search