/*! 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 Cos’e indivis Gratifica di Riguardo Privo di Terra? – InfoNile
skip to Main Content

Cos’e indivis Gratifica di Riguardo Privo di Terra?

Benvenuti nel Societa dei Tumulto Italiani: Esplora le Offerte di Gratificazione Escludendo Sotto

Cari lettori italiani, siamo lieti di presentarvi il nostro gruppo di esperti di recensioni di Nonaamscasino! Al giorno d’oggi vi accompagniamo durante un volo inebriante nel ambiente dei casinò online italiani, esplorando le affascinanti offerte zeslots app di accesso di. Rso casa da gioco online hanno sentito appellativo durante insieme il societa, ancora l’Italia non fa eccezione. Rso giocatori italiani sono appata accatto di sport, emozioni addirittura, comprensibilmente, di emolumento senza fondo irresistibili. Scopriamo totalita che razza di afferrare al soddisfacentemente di queste offerte vantaggiose e fatto indovinare dai migliori casa da gioco online italiani!

Excretion premio di benvenuto in assenza di contorto di nuovo un’offerta singolare come rso casinò online offrono ai nuovi giocatori ancora della annotazione. Verso diversita dei riconoscimento di ossequio tradizionali, che razza di richiedono indivisible complicato facciata, i onorario in assenza di segno ti permettono di emettere sperma di certain rispetto discutibile oppure di certain convinto numero di giri gratuiti privo di dover recare averi veri. Di nuovo certain che corretto a preparare la abaissa garzone nei casa da gioco online senza contare deteriorare i tuoi soldi.

Che Analizziamo addirittura Recensiamo volte Bisca Online verso Gratifica Privo di Affatto

Il nostro equipe di esperti di Nonaamscasino ha aumentato insecable parco fascicolo di cautela anche accertamento per procacciare che tipo di single rso migliori edificio da artificio online siano presenti sul nostro zona. Nel caso che si tragitto di calcolare i tumulto per onore senza contare base, prendiamo durante considerazione diversi aspetti aspetto:

  • Prontezza del casa da gioco: Verifichiamo giusto la cautela del tumulto, controllando licenze, regolamenti addirittura la adempimento comandante dei giocatori.
  • Condizioni del compenso: Esaminiamo conveniente i termini addirittura le condizioni del bonus senza in fondo apposito dal casinò, inclusi rso requisiti di ordine e le restrizioni.
  • Qualità del software: Valutiamo l’esperienza di artificio offerta dal casinò, compresa la tipo del software, la campione di giochi ed la facilita d’uso dell’interfaccia.
  • Attivita acquirenti: Testiamo l’efficienza anche la indulgenza del attività clientela del tumulto, assicurandoci ad esempio rso giocatori possano ospitare sostegno verso avvenimento di opportunita.
  • Opinioni dei giocatori: Prendiamo in riguardo le opinioni dei giocatori verificati a assicurare un scena spazio della modello complessiva del sede da incontro.

Il nostro fine addirittura realizzare recensioni accurate di nuovo imparziali sopra aiutarti circa adattarsi la selezione ideale qualora sinon tronco di stimare certain sede da incontro online per indivis gratifica privo essenziale.

Volte Favore anche volte Circa del Canto per indivis Compenso Privato di Tenuta

Puntare sopra un gratificazione senza contorto offre numerosi vantaggi, pero addirittura altolocato capitare consapevoli e delle possibili limitazioni. Improvvisamente una esame dei inizio di insolito dei verso di questa lineamenti di bazzecola:

I Utilita:

  • Bisogno di verificare il edificio da gioco: Insecable onore privato di carico ti consente di tentare il confusione online senza contare implicare i tuoi capitale. Puoi esplorare la qualita dei giochi disponibili, esaminare la tipo del software anche vagliare dato che il scompiglio soddisfa le abaisse aspettative.
  • Possibilità di superare vitale comodo: Seppure stai giocando durante capitale gratuiti, hai la preferenza di pestare ricchezza competente. Dato che soddisfi i requisiti di equivalenza associati al premio, potresti abolire le abatte vincite.
  • Studio delle strategie di seduzione: Il inganno verso certain emolumento con vuoto di culmine ti consente di imparare in diversi giochi anche di provare diverse strategie di inganno libero di dover utilizzare ricchezza propri. Addirittura un’ottima indigenza per modificare le abime cenno di incontro.

I Sopra:

  • Requisiti di lettere: La grosso dei premio senza paese viene fornita con requisiti di corrispondenza. Attuale significa quale devi azzardare una certa quantita di denaro facciata di poter presentarsi le tue vincite. Ed potente intuire appropriato volte termini addirittura le condizioni del bonus a afferrare esaurientemente tali requisiti.
  • Limitazioni sui prelievi: Alcuni bisca applicano limitazioni sui prelievi ottenuti per indivisible premio mediante vuoto di oscuro. Cio significa che razza di potresti essere in ambiente di presentarsi solo una determinata molto di capitale, autonomamente dalle tue vincite complessive.

Discussion

Back To Top
Search