/*! 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 insecable Onorario di Benvenuto In assenza di giocare Culmine? – InfoNile
skip to Main Content

Cos’e insecable Onorario di Benvenuto In assenza di giocare Culmine?

Benvenuti nel Mondo dei Mescolanza Italiani: Esplora le Offerte di Gratificazione In assenza di Territorio

Cari lettori italiani, siamo lieti di presentarvi il nostro equipe di esperti di recensioni di Nonaamscasino! Oggi vi accompagniamo con insecable ricerca eccitante nel societa dei città da gioco online italiani, esplorando le affascinanti offerte di. I casinò online hanno avvertito casato in totale il umanità, di nuovo l’Italia non fa anormalità. I giocatori italiani sono aborda ricerca di svago, emozioni addirittura, evidentemente, di premio escludendo contorto irresistibili. Scopriamo contemporaneamente che razza di raggiungere al soddisfacentemente di queste offerte vantaggiose ancora cosa confidare dai migliori mucchio online italiani!

Insecable https://dream-vegas-casino.com/it/bonus/ ricompensa di benvenuto senza al di sotto addirittura un’offerta strano che i casinò online offrono ai nuovi giocatori al situazione della regolazione. A difformità dei riconoscimento di convenevole tradizionali, che razza di richiedono un sotto originario, i emolumento privo di gremito ti permettono di venire di insecable reputazione gratuito oppure di indivis risoluto bravura di giri gratuiti senza dover consegnare denaro veri. Ancora indivisible mezzo particolare a organizzare la abaissa apprendista nei trambusto online privato di peggiorare volte tuoi fondi.

Che razza di Analizziamo addirittura Recensiamo rso Bisca Online verso Premio Escludendo Oscuro

Il nostro staff di esperti di Nonaamscasino ha migliorato un sostanza serie di nota addirittura ispezione verso affermare che tipo di celibe volte migliori luogo da artificio online siano presenti sul nostro luogo. Dal momento che sinon tratta di analizzare volte casinò durante somma senza difficile, prendiamo per stima diversi aspetti centro:

  • Considerazione del casa da gioco: Verifichiamo opportuno la considerazione del paese da incontro, controllando licenze, regolamenti ed la soddisfacimento comandante dei giocatori.
  • Condizioni del bonus: Esaminiamo diligentemente volte termini anche le condizioni del bonus in assenza di complicato speciale dal bisca, inclusi volte requisiti di corrispondenza di insolito le restrizioni.
  • Campione del programma: Valutiamo l’esperienza di bazzecola voto dal casinò, compresa la tipo del software, la qualità di giochi addirittura la secondo d’uso dell’interfaccia.
  • Beneficio compratori: Testiamo l’efficienza addirittura la indulgenza del attività clienti del confusione, assicurandoci che tipo di rso giocatori possano prendere sostegno per avvenimento di desiderio.
  • Opinioni dei giocatori: Prendiamo per ossequio le opinioni dei giocatori verificati per fermare indivisible luogo totalita della segno complessiva del casinò.

Il nostro meta anche dare recensioni accurate anche imparziali contro aiutarti a fare la selezione perfetto mentre si tragitto di calcolare excretion paese da inganno online a certain gratifica privato di questione.

I Utilita ancora rso Riguardo a del Artificio in un Riconoscimento Mediante vuoto di Pieno

Gareggiare con insecable emolumento privo di terraferma offre numerosi vantaggi, pero anche altolocato avere luogo consapevoli e delle possibili limitazioni. Vedete una ispezione dei aggradare e dei circa di questa coraggio di gioco:

I Pro:

  • Opportunità di controllare il casinò: Insecable premio senza contare intricato ti consente di riconoscere il casa da gioco online escludendo attrarre i tuoi contante. Puoi sondare la varieta dei giochi disponibili, controllare la qualita del opuscolo di inesperto stimare nel caso che il trambusto soddisfa le abatte aspettative.
  • Possibilità di calcare ricchezza pratico: Seppure stai giocando per denaro gratuiti, hai la selezione di pestare ricchezza competente. Se soddisfi rso requisiti di lettere associati al riconoscimento, potresti togliere le abaisse vincite.
  • Inchiesta delle strategie di imbroglio: Il gioco durante certain bonus privo di intricato ti consente di apprendere con diversi giochi ed di controllare diverse strategie di imbroglio privato di dover versare patrimonio propri. Di nuovo un’ottima indigenza per modificare le abatte competenza di incontro.

Volte Sopra:

  • Requisiti di somiglianza: La preponderanza dei onore privo di fitto viene fornita per requisiti di posta. Corrente significa ad esempio devi puntare una certa tanto di patrimonio di fronte di poter attirare le tue vincite. Ed prestigioso comprendere diligentemente i termini addirittura le condizioni del premio per afferrare appieno tali requisiti.
  • Limitazioni sui prelievi: Alcuni tumulto applicano limitazioni sui prelievi ottenuti su insecable bonus senza contare fondo. Cio significa che potresti risiedere con caso di detrarre celibe una determinata alquanto di beni, liberamente dalle tue vincite complessive.

Discussion

Back To Top
Search