/*! 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 aneantit argomento? Mettiti mediante gioco! – InfoNile
skip to Main Content

Hai una aneantit argomento? Mettiti mediante gioco!

Recensione LeoVegas Subbuglio

LeoVegas Mucchio ‘ruggisce’ in Italia dal 2017, per una opinione di slot machine, bisca live anche promo periodiche che razza di modello di durante pochi possono confrontare.

Bonus di benvenuto totalità: free spin aborda schedatura, free spin appela autenticazione, appresso la anteriore, la seconda addirittura la terza avvicendamento. Anche consenso, c’e anche il accessorio-premio.

Nondimeno al vertice a il ninnolo: l’app di LeoVegas e l’ideale riguardo a gareggiare con calma sul sofà oppure durante passeggiata, escludendo sciupare nemmeno insecable pixel ovverosia un’offerta.

Gremito Meno per Mostrarsi �10,00 Sequestrato Di Studio letterario 35x Riconoscimento Preferibile �1.500,00 Bonus Depositi Multipli Opzioni di tenuta Qualsivoglia i Giochi Confusione 2500+ Vicenda di Slot 750+ Giochi Live 450+

Vai tenta partita

  1. Gratifica di nuovo promozioni
  2. Selezione di giochi
  3. Turbamento arredo ed app
  4. Metodi di versamento
  5. Decisione ancora fidanza
  6. Cura ed contatti
  7. Conclusioni della esposizione
  8. FAQ

LeoVegas Subbuglio gratifica di nuovo promozioni

LeoVegas offre excretion Starmania gioco da casinò chiusura di commiato che razza di include 50 giri per imbroglio privo di fitto. Di questi, 10 sono disponibili senza indugio arpione della schedatura, dal momento che i restanti 40 sono erogati indi la autenticazione del apparente d’identita.

A di piu, anche verosimile acquistare ulteriori 200 giri a titolo di favore effettuando le additif tre ricariche: 50 free spin indietro la davanti, 75 dopo la appuya di nuovo comunità 75 dietro la terza, accompagnati da certain onore che tipo di puo spingersi furbo su 1.500�.

LeoVegas Confusione misurato promozioni e premio esclusivi addirittura per volte giocatori appunto registrati. Entro queste, la Lunch Time e l’Aperitivo Time riguardo a la settimana, addirittura nei weekend ci sono il Sabato Gold di nuovo la Domenica Spin, con tanti giri a diritto di favore ancora premio riguardo a dichiarare l’esperienza di inganno ed oltre a esaltante.

Anche gli appassionati di mucchio live trovano numerosi incentivi contro LeoVegas, con cui insecable disinteressato premio di convenevole che tipo di puo procurarsi volte 2.000� e altre offerte periodiche che tipo di la Live Plus.

LeoVegas Grosso calibro Ritrovo

LeoVegas Agitazione accoglie rso suoi giocatori nel Personaggio Convegno affective dal passato al di sotto. Qualsiasi mese, l’operatore assegna certain originale comportamento Personalità, garantendo excretion adulterazione discreto su canone a il tuo giro di adescamento.

Far pezzo dei livelli con l’aggiunta di alti del Personaggio Ritrovo offre numerosi privilegi, in cui riconoscimento utilizzabili su una vasta qualita di giochi, protezione personalizzata da excretion Boss Serio speciale anche inviti esclusivi ad eventi speciali.

Sopra accessorio al Grosso calibro Associazione, il esplicativo Leo Fedelta premia le giocate contro casinò e mucchio live verso certain premio scaltro riguardo a 1.000�, affettato sui punti accumulati qualsiasi mese.

Termini ed condizioni del riconoscimento LeoVegas Mucchio

Volte free spin del premio di stima di LeoVegas hanno indivis valore di 0,10� uno anche sono utilizzabili single circa una slot selezionata dall’operatore.

Le vincite dei 250 giri verso legittimazione di garbare saranno trasformate senza indugio circa onorario reale, quale deve succedere controverso una sola turno privato di periodo, davanti di poter essere cambiato in fermo prelevabile.

Sopra liberare il premio di convenevole confusione a rso primi tre depositi, l’importo di qualsiasi misurato deve abitare gareggiato 35 pirouette usando il adatto forte nulla nei giochi del casinò, tra 7 giorni dall’attivazione dell’offerta.

Che razza di, dato che depositi 30� quale iniziale segno, dovrai condursi 1.050� (30� incognita 35) a acquisire il gratificazione di 30� anche 50 giri a titolo di favore. Solo indi aver sciolto questa parte del compenso potrai provocare l’offerta emolumento sul appresso gremito mediante 75 giri a sbafo, ed lo proprio vale verso il altro riconoscimento contro i restanti 75 free spin.

Preferenza giochi LeoVegas Perturbazione

Aprendo l’homepage di LeoVegas Uragano, sinon apprezza prontamente la comprensibilità della arte grafica addirittura dell’interfaccia, meglio addirittura verso rso giocatori escluso esperti. Il casa da gioco online di LeoVegas sinon distingue sopra tre punti di intensita: una vasta selezione di slot machine, una proposito completa di giochi da tavolato e un migliaio tavoli e incontro visione nel trambusto live. Qualsivoglia volte giochi virtuali sono disponibili verso appena demo, permettendo ancora agli utenti non ancora iscritti di giocare a scrocco facendo clic sopra “Accenno il incontro”.

Discussion

Back To Top
Search