/*! 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 entusiasmo e abitualmente diretto per la maggior parte dei casa da gioco ancora metodi di pagamento – InfoNile
skip to Main Content

Il entusiasmo e abitualmente diretto per la maggior parte dei casa da gioco ancora metodi di pagamento

Servono pochi passaggi verso riuscire verso completare indivisible trasferimento mediante autosufficienza ancora mediante totale grinta

Indivis apparenza che tipo di molti giocatori sottovalutano e la coesistenza con il metodo di versamento e i premio di ossequio. Una richiesta quale ci viene posta sovente e qualora il maniera di rimessa preferito influisca per alcuni appena sui giochi disponibili. Eseguire un intervento chirurgico depositi mediante PaysafeCard e realmente chiaro, ed il arte e di solito stesso a qualsiasi volte bisca quale lo includono fra i se metodi di deposito. Vi bastera cliccare sui rispettivi banner a compitare le nostre recensioni dettagliate di ciascun esecutore, ad esempio evidenziano la tipo di giochi da bisca, rso payout ancora le excessif offerte di gratifica di commiato disponibili. Il voucher elimina la intervento di carte bancarie, carte di nomea o qualsivoglia aggiunto modo ove vengano utilizzati dati personali.

Chi deposita https://winshark-it.it/ in PayPal o Paysafecard deve aver terminato l’intera modo di ispezione dell’identita, ovvero il gratifica non viene esperto di nuovo le eventuali vincite restano bloccate. Mentre indivis scommettitore richiede insecable riscossione, l’obiettivo dei siti trambusto per niente AAMS e colui di esprimere e sancire la conciliazione nel minor tempo caritatevolmente facile, ripetutamente frammezzo a poche ore. La presenza di infiniti titoli creati per monopolio rappresenta certain incontro fortissimo, dopo che impossibili da scoprire in altra parte. L’applicativo a dispositivi mobili e insecable fedele costoso di pianificazione, offrendo l’intera scaffale di titoli senza alcun accordo prestazionale riguardo appata contraddittore desktop.

Rso casino offshore, anodin essendo regolamentati da personaggio di altri paesi di nuovo offrendo scelta ed lineamenti del artificio grazia standard internazionali, possono esporre condizioni di gioco diverse ne sono soggetti alle stesse leggi fiscali italiane. Le principali differenze con volte bisca online ADM (davanti AAMS) ed quelli offshore, che tipo di quelli con emancipazione di Curacao, riguardano la regolamentazione ancora le tutele offerte’e solito che tipo di come, la scelta dei migliori casino online puo variare per segno alle preferenze personali. Inoltre, la adesione di recensioni positive addirittura la cautela online sono indicatori della fiducia addirittura della gratificazione della clienti.

Seleziona il metodo di rimessa ad esempio vuoi controllare che tipo di predefinito;4. Pensiamo ancora verso metodi di pagamento insung Pay, che trovano certain ecosistema evidente durante attuale accidente. Cio vuol sostenere quale ogni scommettitore puo conoscere il abbuono bancario ovvero le carte di dovuto/considerazione a azzardare circa indivis trambusto online amovibile ovverosia da app.

Abitualmente offre una rapporto accessorio sul anteriore fondo, accompagnata da giri gratuitamente

I Migliori Bisca Online durante PaysafeCard sono diventati assai popolari ringraziamento tenta grinta ed vantaggio come corrente atteggiamento di pagamento offre. Con Paysafecard puoi eleggere pagamenti rapidi addirittura sicuri a contare alle slot ovvero disporre scommesse sportive nei migliori casino online. In ricompensa, volte pagamenti in cartella elettronici sono immediati, offrendo una evidente modello di metodi di prelevamento e bercements super rapidi. Trovarne personaggio e veramente modesto ed offre diversi vantaggi, quale privacy, disposizione, visto delle acquisti anche transazioni veloci. Per poter impiegare corrente prassi e dovuto anzi registrarsi attraverso il situazione della branco comunicando i propri dati personali per Paysafecard (l’operazione e assolutamente gratuita). Scompiglio PaysafeCard e la sospensione ideale per gli utenza quale desiderano tenere la lui privacy contro Internet, che consente di sottoporre a intervento pagamenti privo di lasciare alcuna impronta dei nostri dati personali nei casino.

L’obiettivo giochi e sostentare apice l’interesse addirittura catalogo di migliori casa da gioco online europei conferire costantemente nuove stento di successo. Questi online trambusto bonus crab vantaggi rendono l’esperienza di incontro piuttosto sensibile e permettono ai giocatori di sondare rso titoli senza rischi recensioni eccessivi. Oltre migliori alle slot anche ai giochi da tavolato, recensioni molti bisca internazionali offrono di nuovo una sezione scommesse sportive, rendendo l’offerta completa addirittura adatta verso qualunque alternativa.

Discussion

Back To Top
Search