/*! 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 La eucaristia Buy Compenso, ove attuale, consente di approssimarsi anteriore appata parte preciso del verso – InfoNile
skip to Main Content

La eucaristia Buy Compenso, ove attuale, consente di approssimarsi anteriore appata parte preciso del verso

Mantieni il tuo programma antivirus aggiornato ancora utilizza connessioni sicure qualora accedi al tuo account. Seguendo questi consigli, garantirai un’esperienza di gioco sicura ancora protetta contro WinPort Casino. WinPort Casino offre una tipo di premio addirittura promozioni a tirare nuovi giocatori di nuovo conservare quelli esistenti. Fra le offerte ancora popolari, troviamo il “WinPort Mucchio premio”, come fornisce incentivi ai nuovi iscritti anche verso coloro quale effettuano depositi regolari.

  • Qualsiasi volte giochi presenti sul nostro messo sono a gioco momentaneo, o si avviano prontamente nel vostro browser web.
  • Un altro lato moneta è la esame responsabile ad esempio ha fatto nel epoca.
  • WinPort-Confusione garantisce ai giocatori premio trasparenti, promozioni frequenti ancora prelievi rapidi per €, così quale tu così sopra desktop, tablet ovverosia arredo.
  • Pure l’assistenza clienti è reattiva, le soluzioni possono volere occasione.

La versione della slot gratis online di nuovo sbaglio sopra LeoVegas, StarCasino anche NetBet

In indietro base, potresti procurarsi i pacchetti di giri gratuiti. Questi sono perfetti verso gli amanti delle slot sulla piattaforma. Ti daremo giri gratuiti verso verificare gli ultimi anche migliori giochi di slot escludendo conoscere i tuoi patrimonio.

Winport Mucchio Bonuses – Country Restricted

Winport Mucchio offre un prassi di bonus trasparente ancora maculato, ideale per i nuovi iscritti bensì addirittura verso gli fruitori abituali. Le offerte sono www.staryescasino.net pensate verso metro verso il amministratore italico di nuovo permettono di valorizzare qualunque fondo ovvero competizione di gioco. Abbiamo reso il processo di catalogazione lesto addirittura pratico al bisca online WinPort. Il nostro fine è farti puntare per pochi minuti, non in ore. L’intero processo è aiutato con come da poter scattare le lunghe attese. Non ci sono moduli noiosi anche puoi partire di fronte al passatempo.

Le slot sono il animo di WinPort italico

Questi giochi sono piu volte caratterizzati da una varieta di temi, quale antiche insegnamento, mondi fantastici o classiche macchine da frutta, di nuovo offrono una vasta gamma di esperienze visive ancora sonore. La porzione ideale delle versioni gratuite delle slot addirittura che dato che ti annoi, ci sono centinaia di altre slot machine disponibili per divertirsi online palesemente nel browser. Anche plausibile prendere offerte ricompensa contro gareggiare verso giochi da luogo da incontro verso ricchezza veri, tuttavia le slot gratuite per ricrearsi non traditore vitale veri. Per di piu, le slot contro premi per ricchezza possono recare alcune caratteristiche diverse o aggiuntive che potrebbero non risiedere disponibili nella forma gratuita.

gioco d'azzardo da casino

Questo è un uscita celebre a difendere il tuo account al sicuro. Ex ad esempio il tuo account è efficace, puoi eseguire il tuo originario fondo ancora sollecitare il bonus di commiato. Qui sei pronto a abbracciare nel scaffale della nostra abissale preferenza di giochi al casa da gioco WinPort online. WinPort Confusione offre un’esperienza di artificio completa con una vasta genere di opzioni verso qualsivoglia i tipi di giocatori. Quale tu tanto un affascinato di giochi da asse, un amante delle slot ovverosia desideri indagare altre forme di passatempo, troverai alcune cose di conveniente alle tue preferenze.

Vivi il nostro casinò live

Riceverai una email di conferma a provare il tuo recapito. La basamento ha maturato la Winport Scompiglio app, vuoto verso dispositivi iOS di nuovo Android. L’interfaccia mobile offre tutte le praticità della variante desktop, permettendo di gareggiare in ogni parte addirittura con qualunque minuto, escludendo compromessi sulla tipo o sulla carriera delle operazioni. Introdurre un somma verso Winport Scompiglio è un’campagna intuitiva addirittura rapido, pensata verso contegno alle esigenze dei giocatori italiani che desiderano preparare immediatamente per giocare in decisione. Il nostro programma fedeltà ti permette di aggiudicarsi punti qualsiasi volta quale giochi.

Niente affatto Deposit Premio At Winport Online Scompiglio

Verso questa trattato aggiornata ti mostriamo luogo puntare alle slot online più popolari, in piattaforme affidabili quale 888 Confusione, SNAI, Lottomatica anche StarCasino. Sara verosimile giocare tutte le volte quale sinon vuole di ingenuo con quale certo a qualsivoglia i titoli ancora popolari quale le software house lanciano qualsivoglia mese. Verso abbozzare il tuo gara sul posto ufficiale del Casinò Winport, fornisci semplicemente un residenza email valido. Poi, crea un popolarità cliente singolare di nuovo una password sicura. Verificheremo prontamente la tua occasione anche la tua circostanza per assicurarci di considerare tutte le nostre codificazione di licenza anche decisione. Appresso, puoi selezionare la tua carta moneta preferita € per questa arena a transazioni successive escludendo problemi.

Discussion

Back To Top
Search