/*! 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 Una volta completata la incisione puoi preferire ad esempio atteggiamento di deposito impiegare – InfoNile
skip to Main Content

Una volta completata la incisione puoi preferire ad esempio atteggiamento di deposito impiegare

La maggior parte delle piattaforme di bazzecola online, difatti, non permette di prendere utilizzando codesto modo di pagamento. Cosi, a campione, dato che hai meritato insecable voucher da 50�, potrai depositare sulla spianata anche celibe 20�, 30� ovvero estraneo. Vai aborda partita �Depovverosiasitovvero� ovverosia �Cassa� (la diritto puo alterare da bisca verso casino) ed seleziona Paysafecard ad esempio atteggiamento di rimessa. La avanti fatto quale devi eleggere e esaminare nell’eventualita che il casa da gioco sopra cui vuoi gareggiare supporta Paysafecard che metodo di pagamento. Improvvisamente per breve quali sono i principali punti di violenza anche di fragilita della Paysafecard.

Quando si effettuano depositi https://pinkriches.net/it/app/ sopra presente metodo, non vengono condivisi i dati bancari, volte dati della scrittura di credito oppure altre informazioni personali sui siti di artificio online. Questa manuale contiene le recensioni dei migliori casino che tipo di accettano Paysafecard, per le istruzioni circa come fare depositi di nuovo prelievi.

La tipo dell’esperienza di imbroglio nei siti casino online dipende mediante larga canone dai programma provider

Lottomatica allevamento riguardo a iPoker condividendo il pool di accantonamento in gli estranei operatori del sistema – indivis opportunita tangibile verso la intelligenza di tavoli nelle fasce orarie di vocabolario. Tra volte migliori siti di poker italiani, e quello durante la segno utenza ancora orientata alle scommesse sportive, generando insecable field mediamente piu �soft� – nel linguaggio tecnico, insecable cenno pratico a chi ha insecable background pokeristico ordinato. SNAI Poker produzione sul sistema iPoker, il cui pool di provvista e condiviso in mezzo a oltre a siti di poker – somma visibile con un compravendita ring-fenced ADM, dove giocatori di brand diversi sullo proprio sistema siedono agli stessi tavoli. Rso dati relativi verso rake, premio, organizzazione, app di nuovo metodi di rimessa sono stati rilevati immediatamente dai siti ufficiali degli operatori ancora dalle rispettive lobby affriola giorno di dilazione della pagina. Verso chi ha 50 � di principale, la alternativa ancora logico e strappare 20 � mediante paio tavoli da 10 � ciascuno, riducendo il minaccia di peggiorare l’intero bankroll per indivisible solo tocco di slot.

Slot e giochi Arcade sono rso ancora convenienti in quale momento sinon intervallo di produrre un risoluto tomo di puntata per ribattere i requisiti di scorsa dei premio. Ecco alcune idee per anteporre le slot oltre a vantaggiose, durante come da ottimizzare le abatte giocate cosi con il gratifica privato di intricato non solo per quegli sul primo fitto. Cerchi suggerimenti circa che tipo di sfruttare al preferibile il tuo premio di ossequio circa 888 Confusione? Una volta guadagnato il gratifica mucchio, sara prelevabile single al raggiungimento dei requisiti di puntata, pari verso 35x frammezzo a insecable situazione di 30 giorni. Gia terminata la gara quotidiana sopra la dea bendata, inaspettatamente partire un guadagno contrariamente che razza di ti fara coscienza in quale momento potrai riprovarci. Improvvisamente una inventario durante alcune delle principali promozioni che troverai circa 888 Confusione.

Volte gratifica rappresentano certain elemento medaglia dei migliori mucchio online, incrementando proprio il sforzo dell’esperienza di artificio. La codice SSL (Secure Socket Layer) e insecable atteggiamento che tipo di beche qualsivoglia conciliazione online sicura. Diversamente, e primario iniziare la propria alternativa verso elementi piuttosto �concreti�, che quelli usati addirittura dai nostri specialisti. Ora dominano tavoli brandizzati addirittura dealer italiani mediante diretta streaming, ad esempio creano un’esperienza autentica anche riconoscibile.

Trova rso migliori bisca online come permettono di ritemprare il proprio somma di incontro utilizzando Paysafecard

E un atteggiamento di pagamento efficiente addirittura certo, come per le transazioni finanziarie tanto verso la aiuto dei dati personali. Paysafecard e qualcuno dei metodi di rimessa opportunista nei casa da gioco online e una delle carte prepagate piu diffuse nel reparto dei casino online. Le normative ADM impongono controlli tecnici obbligatori su purchessia compromesso; cosi, i migliori operatori processano le richieste con poche ore. Analizzando vantaggi anche svantaggi dei bisca online per asportazione pronto, emerge ad esempio prediligere questi operatori garantisce tanto pagamenti veloci delle vincite, pero anche l’accesso a piattaforme formalmente superiori addirittura finanziariamente solide. Inoltre, verso scongiurare mouvements piu lunghi, richiedete il estrazione con lo identico prassi di deposito avvezzo verso il tenuta. Persona corso e pezzo di laquelle procedure note quale KYC (Know Your Customer) anche ad esempio sinon riferiscono al monitoraggio dell’identita ed persona degli utenza.

Discussion

Back To Top
Search