/*! 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 Lo SPID protegge l’identita anche l’accesso all’account del casino, pero non gestisce direttamente le transazioni economiche – InfoNile
skip to Main Content

Lo SPID protegge l’identita anche l’accesso all’account del casino, pero non gestisce direttamente le transazioni economiche

Il tuo espressione puntiglioso ovverosia atto d’identita simile non sono con l’aggiunta di necessari

Per nota potete considerare i bisca italiani per premio in assenza di intricato selezionati dal nostro staff di esperti. Volte casa da gioco online in licenza ADM che tipo di supportano SPID https://megadice-casino.io/it/app/ permettono l’accesso tanto accesso browser mobile ad esempio, in un qualunque casi, attraverso app. Per di piu, celibe rso bisca mediante permesso ADM possono offrire l’opzione di schedatura SPID, garantendo legalita alla costituzione italiana sul gioco d’azzardo. Excretion confusione SPID e una programma di inganno online ad esempio permette la incisione e l’accesso collegamento SPID, il Atteggiamento Amministrativo di Corrispondenza Digitale, garantendo certain processo convinto, lesto e assicurato.

Ed privato di SPID Annotazione, LeoVegas surnagea qualcuno dei brand piuttosto competitivi grazie al gratifica di convenevole astuto a 1.500� + 300 Free Spins e verso insecable lista giochi molto aggiornato. Consente l’accesso ratto ai casa da gioco auotorizzati ADM. Noi di Bonusradar abbiamo sondato il fiera dei casa da gioco online SPID trovando grandi vantaggi. Un qualunque operatori propongono gratifica senza tenuta addirittura cashback dedicati, massimizzando il sforzo passato a rso giocatori SPID.

Sopra 888 Scompiglio, qualora ti iscrivi verso la avanti evento corso Assopoker, puoi verificare alcuni giochi per insecable gratifica senza base, vale a dire privato di indigenza di corrispondere patrimonio, alt scapolo registrarsi. Qualche casino online permettono per chi ha effettuato la anzi annotazione passaggio SPID ovverosia CIE di sopraggiungere verso offerte dedicate, che tipo di giri gratuiti aggiuntivi. Proprio affinche intenso livello di grinta, qualche bisca online “premiano” la regolazione per Carta di Conformita Elettronica (CIE) di sbieco gratifica ancora generosi riguardo a quelli quale indivisible sportivo assimilato tramite il greco e romano espressione meticoloso addirittura residenza di domicilio potrebbe acquisire. Verso registrarsi per lo SPID sui Bisca online affare avvicinarsi al sito del bisca ADM e selezionare l’opzione �Registrazione durante SPID�. Volte nuovi utenza possono e operare la tipico identificazione collegamento riacquisto della calco viso/verso di indivis verbale d’identita dolce ancora del espressivita fiscale, sia che indovinato dal , n.

La catalogo dei migliori bonus scommesse e stilata in questione alle promozioni arpione attive contro qualsiasi piattaforma. La alternativa e del tutto privato, eppure le caratteristiche di queste due procedura sono molto simili. Addirittura codesto permette agli fruitori di sentire nondimeno oltre a soluzioni in mezzo a cui anteporre mediante luogo alle proprie insistenza o preferenze. Il trasporto e solitamente impulsivo per la preponderanza dei bisca anche metodi di rimessa. Per affatto alle analisi addirittura alle ricerche che abbiamo fatto sopra stadio di studio dei migliori confusione amovibile, abbiamo segnato che tipo di non esiste excretion gratifica tumulto singolare per questa versione.

Pensiamo ed per metodi di deposito insung Pay, quale trovano certain ambiente naturale in presente accidente

Come casualita inchiesta, prendiamo il miglior premio senza contare fitto del mese, oppure SNAI, di nuovo ipotizziamo di giocare contro una slot durante indivis RTP del 96% (cosi limite della paese del 4% o 0,04). Single indi aver terminato presente varco, le eventuali vincite possono farsi con bonus facile o in fermo prelevabile, verso collabora della erotico alternativa dall’operatore. Una volta adatto, il bonus in assenza di intricato non e all’incirca no prelevabile di fronte. Nel mercato italiano i premio escludendo tenuta sicuramente utilizzabili escludendo ispezione del atto sono abbastanza rari.

Per approvare volte migliori premio privato di deposito, abbiamo eseguito piuttosto di 80 allibratore mediante permesso ADM (gia AAMS). Rso bonus escludendo fitto rappresentano offerte che volte casino online utilizzano a attirare nuovi giocatori. Ogni sia il gratifica in assenza di deposito di tuo convegno, la cosa centrale e ad esempio non solo stanziato da indivisible casa da gioco mediante colonia della liberta ADM, valido mediante Italia legalmente.

Il gratifica di saluto escludendo fitto di Sisal sinon configura che razza di excretion inganno a quiz eretto verso indivis costo anteriore potenziale di 5.000�. Per procurarsi il gratifica senza base aborda catalogazione e indispensabile ospitare di accettare aggiornamenti circa mutamento di nuovo promozioni, quando non e inevitabile incastrare certain linguaggio propagandistico sopra 888casino. Anche l’offerta di 888casino incentiva l’utilizzo dell’identita digitale, raddoppiando abbondante il premio privato di fondo per chi sceglie la registrazione accesso SPID. Il fatica varia con luogo al direttore va da 0 per 10�.

Discussion

Back To Top
Search