/*! 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 Bisogna incrementare addirittura quale i tumulto propongono programmi Grosso calibro dedicati agli utenti oltre a parrocchia – InfoNile
skip to Main Content

Bisogna incrementare addirittura quale i tumulto propongono programmi Grosso calibro dedicati agli utenti oltre a parrocchia

I portacarte elettronici, che razza di PayPal, Skrill ed Neteller, garantiscono transazioni immediate, privato di calare vuoto mediante fiducia

Addirittura verso raggiungere una porzione ed antenato di nuovi utenza, le nuove piattaforme sinon fanno prima mediante premio escludendo fruity chance casino fruity chance casino accedi base. Finalmente, guardiamo per un capacita di valutazione di considerazione l’esperienza complessiva per gli fruitori. La tipo del ausilio riflette la fama ed l’impegno ad esempio un casino ha circa rso propri utenza. Indivis buon casino deve comprensione come riconoscere ai suoi utenti un’esperienza fluida anche completa addirittura da so ancora il disegno di scelta somma del casa da gioco, verificando la partecipazione di firewall, l’autenticazione a paio fattori ed equipaggiamento di bazzecola responsabile.

Winshark e personalita dei casa da gioco online europei ad esempio offre espianto veloce ed pagamenti rapidi passaggio criptovalute di nuovo wallet. La trampolino offre oltre 5.000 giochi da trambusto anche prelievi per opportunita pratico, ripetutamente in fondo volte 10 minuti per metodi digitali. Uno dei migliori confusione durante asportazione veloce, Need For Spin e inventato a chi desidera pagamenti istantanei ed un’esperienza user-friendly. Il tumulto Mr. Pacho supporta carte di fama, portadocumenti elettronici e criptovalute.

A approfondire l’esperienza di incontro da dispositivi arredamento, assemblea la nostra pagina sui casino suppellettile

Il squadra di Betzoid ha collaudato successivo 80 piattaforme attive in Italia per sancire lesquels che mantengono veramente la offerta di prelievi rapidi. Verso CasinoItaliani scrive telegiornale ed duplice sul artificio corretto, la programmazione, i bonus ancora rso metodi di pagamento. Le opzioni con l’aggiunta di diffuse sono le carte di reputazione addirittura rso portafoglio elettronici che razza di PayPal, Skrill o Neteller.

Le carte di reputazione ed rso bonifici rimangono tuttavia opzioni di pagamento solide e affidabili, come ma non brillano verso carriera. Pure il casa da gioco emettesse all’istante il pagamento, difatti, gli istituti bancari impiegherebbero nonostante al minimo indivisible ricorrenza verso formulare la accomodamento, di nuovo le tempistiche possono sollevarsi verso 2-3 giorni nel caso dei bonificie dicevamo, a motivo dei balancements tecnici le carte di reputazione ed rso bonifici non possono assicurare prelievi immediatie puoi notare, in singolo dei tre i prelievi immediati sono disponibili solamente durante volte portafogli elettronici. Solitamente questi ritiri istantanei sono possibili grazie ai portacarte elettronici, ad esempio PayPal, che razza di hanno rivoluzionato le transazioni nel ripulito digitale.

La decisione delle transazioni e una delle prelazione assolute nei bisca mediante espianto pronto ed di modo che perche vengono adottate tecnologie avanzate verso riparare tanto volte depositi quale rso prelievi effettuati dai giocatori. Operando sotto la concessione ADM, seguono rigorosi norma di grinta ancora di equita, offrendo ai giocatori la giustezza che le lei transazioni siano protette ancora come volte giochi siano corretti. Gli fruitori possono verosimilmente dirigere il se vantaggio, operare depositi addirittura comportare prelievi di fronte dall’APP, mediante la autenticita che tipo di le loro transazioni saranno processate per modo convinto anche rapido.

Fra rso casa da gioco mediante espianto veloce, Sisal eccelle sia mediante le carte che con gli addirittura-wallet. La foglio iniziale di Eurobet, per giochi ancora funzione My Slots per primo piano. Eurobet e il bisca sopra ritiro spontaneo ideale per chi desidera prendere proprio a sbrigarsi da 5�.

Verso esaminare il paura grinta, raduno la nostra trattato ai tumulto sicuri ADM. I prelievi presso operatori durante emancipazione ADM sono protetti dai medesimi canone di decisione delle transazioni bancarie online, per cifratura SSL e protocolli antifrode.

Tali promozioni, ordinariamente tanto generose, prevedono condizioni oltre a vantaggiose, limiti di scorsa superiori di nuovo prossimo benefici esclusivi verso rispondere le esigenze di questi utenti speciali nei bisca mediante asportazione pronto. Il bonus senza base rappresenta un’opzione vantaggiosa nei casa da gioco per prelevamento diretto, offrendo ai giocatori la selezione di gareggiare ancora sbattere somme sopra denaro fedele in assenza di la insistenza di eseguire un intervento chirurgico indivis tenuta sul adatto account di imbroglio. Nella graduatoria ad modo scritto abbiamo permesso quali sono i scompiglio che miscredente all’istante, ciononostante, ciascun imprenditore ha delle tempistiche diverse per ciascun maniera di versamento. Facciamo indivisible focus sui casino Visa non alcuno giacche cosi in mezzo a rso oltre a veloci metodi di deposito pero giacche e certamente una lista diffusa; una difetto delle carte di nomea e che non tutelano il vostro anonimia. Bet365, per esempio, offre il �gift� di una transazione gratuita qualunque sette giorni, pero il fedele presente e la calma. Le promozioni dei casino mediante prelievo spontaneo sono soggette verso requisiti di puntata, non solo quale accade a tutte le offerte presenti sui siti di casa da gioco in bonus.

Discussion

Back To Top
Search