/*! 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 Il sostegno clientela e allenato verso accordare volte segni di imbroglio soporifero addirittura fornire controllo appropriata – InfoNile
skip to Main Content

Il sostegno clientela e allenato verso accordare volte segni di imbroglio soporifero addirittura fornire controllo appropriata

Iniziato nel 2021 addirittura gestito da Rabidi N

La trampolino allevamento in una arbitrio mondiale come le permette di dare in prestito rso suoi servizi durante numerosi paesi, inclusa l’Italia, garantendo MaxBet bonus casinò excretion ambiente di artificio regolato e sicuro. La limpidezza e garantita da una quantita scatola chiara di nuovo dettagliata, ove e realizzabile rendere visibile ogni i limiti minimi ancora massimi per purchessia accomodamento. La dirigenza dei denaro e excretion coraggio che razza di Dolly Scompiglio strappo durante la adagio fama, offrendo ai giocatori un’ampia genere di metodi di rimessa sicuri, veloci anche convenienti. Per chi cattura un’esperienza di gioco che combini la ricchezza dell’online durante l’autenticita ancora l’adrenalina di indivis autentico casino, la partita Live di Dolly Trambusto e una arrivo imperdibile. La partita dei giochi da quadro e indistintamente ricca, in moltissimi varianti di Roulette, Blackjack, Baccarat ed Poker in versione programma. E importante mostrare che razza di Dolly Mucchio non e immediatamente associato ovvero sponsorizzato da Dolly Parton.

Dolly Casino offre diversi metodi di pagamento a mettere ancora detrarre denaro per Italia

Il messo e interamente ottimizzato per dispositivi mobili, permettendo un’esperienza di gioco fluida sia da elaboratore quale da smartphone o tablet. Il bisca utilizza le piu moderne tecnologie di crittografia SSL a coprire rso dati dei giocatori addirittura garantisce un umanita di artificio certo ancora coscienzioso. Presente metodo non solo rispetta la legislazione, bensi garantisce ed come le abaisse vincite vengano pagate quatto quatto ed che razza di il tuo account resti al indiscutibile da accessi non autorizzati.

Dolly Tumulto fornisce corredo completi verso il inganno severo, inclusi limiti di intricato, sconfitta e posta, periodi di sosta anche opzioni di autoesclusione. Questa permesso significa che tipo di Dolly Confusione rispetta rso severi requisiti della ordinamento giudiziario di Curacao sui giochi d’azzardo online, inclusi la soccorso dei fondi dei giocatori, i giochi equi, il inganno severo, la prevenzione del riutilizzazione di denaro e la appoggio dei minori. La trampolino viene sottoposta per controlli regolari di nuovo aggiornamenti del programma verso assicurare la adagio scelta dell’ambiente di bazzecola.

Assenso, Crazy Time di Evolution Gaming e scarico nella conto casa da gioco live. Indivisible seguente luogo celebre e che razza di Dolly Mucchio non ha la arbitrio AAMS (ADM), cosi non e regolato mediante Italia. Dolly Scompiglio e indivisible collocato di giochi online per tante opzioni, come slot, giochi da tavolo di nuovo bisca dal vitale. Il bisca appuya in sviluppatori ad esempio Big Time Gaming, NetEnt, Nolimit City, Yggdrasil, Red Tiger anche Evolution Gaming, garantendo giochi di alta modello per grafiche avanzate anche funzioni innovative.

La annotazione protegge i tuoi denaro ancora attiva le funzioni di inganno severo. In insecable vantaggio efficace entri nei tornei, ricevi promozioni mirate ed offerte di commiato chiare. Siamo Dolly Tumulto Italia per pochi click apri il somma anche accedi verso bonus, tornei, jackpot che scalpitano. Ricorda sempre che verso raggiungere il massimo dai tuoi vantaggi e autorevole sperimentare responsabilmente le offerte anche istruzione laddove anche ad esempio use bonus funds sopra modo adatto. Oltre a cio, i prelievi diventano ancora rapidi anche hai inizio verso regali esclusivi, che gratifica speciali, inviti verso tornei privati e premi legati a eventi stagionali. Mediante le gratifica promotions Dolly trambusto, il primo andatura dentro il casa da gioco online diventa un’esperienza ancora ricca anche escludendo fretta di sperimentare senza indugio insieme il proprio bilancio.

Sprecato nel 2021 da Rabidi N.V., codesto bisca online sinon distingue verso il proprio design unico ispirato agli anni ’20 con spazio da plateau malia. Dolly Casino e una programma di artificio online gradevole ad esempio combina grazia addirittura passatempo di anzi rango. Risultati istantanei, superiore gara addirittura vincite rapide ti aspettano! Algoritmi provably fair garantiscono chiarezza tutto. Riguardo a Dolly trovi roulette live per croupier professionisti addirittura versioni simulate di alta tipo. Dolly ti ingresso un lista adeguatamente di slot, giochi da tabella addirittura live casino per qualsiasi i gusti.

L’offerta include varianti esclusive come Associazione Royale Roulette, Crazy Time addirittura Monopoly Live, che combinano elementi tradizionali del bisca per esibizione televisivi interattivi. L’esperienza del casa da gioco live di Dolly Confusione ricrea rigorosamente l’atmosfera dei bisca terrestri per streaming in alta lemma ed dealer professionali poliglotta. Il Baccarat presenta tanto la variante canone che razza di quella Punto Banchetto, dal momento che la quantita poker include Caribbean Poker, Hold’em ancora Aces & Eights. La insieme ludica di Dolly Casino comprende al di la 4.000 titoli diversi, spaziando dalle slot machine tradizionali ai giochi da tavolo ancora sofisticati. V., presente bisca online ha subito conquistato una circostanza di rilievo nel mercato italico del gaming digitale.

Discussion

Back To Top
Search