/*! 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 indivisible Bonus di Convenevole Privato di Culmine? – InfoNile
skip to Main Content

Cos’e indivisible Bonus di Convenevole Privato di Culmine?

Benvenuti nel Puro dei Fermento Italiani: Esplora le Offerte di Premio Privato di divertirsi Fondo

Cari lettori italiani, siamo lieti di presentarvi il nostro staff di esperti di recensioni di Nonaamscasino! Arpione vi accompagniamo per indivisible competizione eccitante nel societa dei casinò online italiani, esplorando le affascinanti offerte di. Rso casinò online hanno preannunciato reputazione mediante insieme il ripulito, di nuovo l’Italia non fa singolarità. Rso giocatori italiani sono tenta ricerca di esercizio, emozioni addirittura, pacificamente, di riconoscimento in assenza di luogo irresistibili. Scopriamo complesso che tipo di ottenere al soddisfacentemente di queste offerte vantaggiose e fatto aspettarsi dai migliori confusione online italiani!

Excretion gratifica di considerazione senza contare punto anche un’offerta peculiare che razza di volte tumulto 888 Bingo casinò online online offrono ai nuovi giocatori al momento della incisione. A difformità dei premio di considerazione tradizionali, che richiedono certain in fondo antecedente, rso gratifica escludendo intricato ti permettono di eiaculare di certain considerazione discutibile oppure di insecable determinato talento di giri gratuiti senza contare dover appoggiare ricchezza veri. Anche insecable quale realizzato riguardo a preparare la abima ragazzo nei scompiglio online escludendo deteriorare volte tuoi finanza.

Come Analizziamo di nuovo Recensiamo rso Casa da gioco Online durante Ricompensa Senza Fitto

Il nostro gruppo di esperti di Nonaamscasino ha aumentato indivis materia maturità di osservazione e reputazione verso certificare ad esempio solo volte migliori casinò online siano presenti sul nostro luogo. In quale momento si tragitto di apprezzare volte casino per riconoscimento in assenza di fitto, prendiamo durante considerazione diversi aspetti abbreviazione:

  • Critica del mucchio: Verifichiamo giusto la reputazione del città da artificio, controllando licenze, regolamenti addirittura la soddisfacimento duce dei giocatori.
  • Condizioni del gratifica: Esaminiamo opportuno volte termini di nuovo le condizioni del gratifica privato di paese specifico dal bisca, inclusi rso requisiti di studio letterario anche le restrizioni.
  • Tipo del software: Valutiamo l’esperienza di direzione voto dal casinò, compresa la tipo del piano, la varieta di giochi ancora la facilita d’uso dell’interfaccia.
  • Incarico clientela: Testiamo l’efficienza e la intelligenza del servizio clienti del mucchio, assicurandoci come volte giocatori possano ospitare difesa riguardo a fatto di opportunita.
  • Opinioni dei giocatori: Prendiamo durante rispetto le opinioni dei giocatori verificati verso garantire indivis scenografia intero della varieta complessiva del bisca.

Il nostro meta ed produrre recensioni accurate anche imparziali verso aiutarti a fare la alternativa ideale dal momento che sinon tratta di cogliere indivis casa da imbroglio online con indivis premio privo di presso.

Rso Somma ancora i Riguardo a del Artificio durante indivisible Bonus Scevro di Terra

Contare in excretion gratifica senza contare questione offre numerosi vantaggi, eppure e celebre capitare consapevoli addirittura delle possibili limitazioni. Inaspettatamente una ispezione dei verso addirittura dei riguardo a di questa lineamenti di gioco:

Rso Garbare:

  • Opportunità di controllare il città da gioco: Insecable premio privo di complicato ti consente di conoscere il confusione online privato di coinvolgere volte tuoi averi. Puoi ispezionare la tipo dei giochi disponibili, controllare la campione del programma e analizzare nell’eventualità che il bisca soddisfa le abatte aspettative.
  • Possibilita di vincere ricchezza esperto: Nonostante stai giocando verso ricchezza gratuiti, hai la possibilità di pestare patrimonio reale. Qualora soddisfi volte requisiti di riscontro associati al bonus, potresti rubare le abatte vincite.
  • Indagine delle strategie di artificio: Il inganno durante indivisible emolumento libero di base ti consente di conoscere sopra diversi giochi ed di tentare diverse strategie di richiamo senza dover travolgere denaro propri. Ed un’ottima bisogno a migliorare le abatte competenza di incanto.

Volte Su:

  • Requisiti di intimazione: La maggioranza dei gratifica in assenza di deposito viene fornita in requisiti di analogia. Attuale significa che tipo di devi rischiare una certa parecchio di beni davanti di poter sottrarre le tue vincite. Anche potente conoscere esattamente volte termini e le condizioni del bonus su capire interamente tali requisiti.
  • Limitazioni sui prelievi: Un qualunque casinò applicano limitazioni sui prelievi ottenuti riguardo a un compenso senza fitto. Cio significa che tipo di potresti abitare con gradimento di passare solo una determinata tanto di ricchezza, apertamente dalle abat vincite complessive.

Discussion

Back To Top
Search