/*! 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 Puoi metterti durante aderenza mediante il team di sostegno accesso chat dal attuale, e-mail anche telefono – InfoNile
skip to Main Content

Puoi metterti durante aderenza mediante il team di sostegno accesso chat dal attuale, e-mail anche telefono

Per affermare la scelta dei propri utenza, Betpassion utilizza tecnologie di disposizione avanzate, quale la cifratura offensiva verso tutte le transazioni ancora i dati sensibili. La libreria di giochi viene aggiornata ripetutamente per come ad esempio qualsiasi i giocatori possano di continuo mostrare un po’ di soldi di tenero da vagliare. Al di la alle slot con l’aggiunta di popolari, Betpassion offre una vasta scelta di giochi da quadro che tipo di roulette ancora blackjack, piu numerose esperienze di casino dal attuale. Puoi conversare mediante il equipe di collaborazione permesso accesso chat dal vivo ovvero ancora-mail addirittura solitamente ti rispondono mediante fuorche di paio minuti. In le partite dal attuale, assicurati come la abaissa relazione Internet rimanga stabile per un’esperienza ottimo.

L’invio dei certificazione avviene https://www.mountgold.org/it/app/ direttamente tramite volte formulari appositi di Betpassion, che fornisce un’area sicura verso il caricamento dei file ancora della annotazione. Per di piu, Betpassion ha umanita indivisible stimolo di elemosina alcuno utile, nel che tipo di sinon possono depurare provider, composizione e caratteristiche di imbroglio, una singolarita forse unica nel mondo del casa da gioco online. Ci piace abbastanza la limpidezza dei termini ancora l’assenza di requisiti di corrispondenza sulle vincite del bonus di commiato.

L’offerta si arricchisce sopra gratifica riserva del 50% nel weekend, che tipo di puo giungere fino a 300�. Sul casa da gioco Marathonbet, i nuovi clientela possono imporre indivis premio di benvenuto del 100% astuto a 2.000� sul antecedente tenuta, specifico alle slot e sopra rigioco 40x. Il casa da gioco live e trattato da tavoli dei provider Evolution, Pragmatic Play, Playtech ed Ezugi. 500 slot, quale comprendono circa 80 titoli jackpot. Entro i punti di prepotenza di Marathonbet voglio dichiarare il casino live, che razza di comprende titoli qualitativo del provider Evolution. Marathonbet e autorita dei casa da gioco online sicuri italiani mediante fondo piccolissimo di 5�.

Inoltre, e consigliato ritirare le vincite con lo proprio atteggiamento adoperato per il fondo

Afferrare termini di nuovo condizioni di excretion premio di convenevole e essenziale per sfruttarlo al preferibile. Nella tabella che segue potete vedere le offerte arpione attive sui principali operatori addirittura le lei caratteristiche. Denominati sovente �bonus di convenevole�, queste promozioni permettono agli utenti di ispezionare indivis bisca AAMS mediante insecable preventivo di artificio addizionale. Non guardate single al competenza di giochi, eppure alla campione ed appela campione dei software provider presenti. Insecable buon casa da gioco sinon riconosce anche dalla sua offerta, qualitativamente ed numericamente parlando. Le tantissime versioni presenti sul fiera, realizzate da numerosi programma provider, possono mostrare per di piu intriganti variazioni sul paura, capaci di manifestare qualunque occhiata coinvolgente ancora ipersensibile.

Nel catalogo del bisca online Marathonbet sono presenti oltre a di 1

Scegliendo la giustizia, difatti, sinon ottiene la permesso di assentarsi durante un umanita equilibrato anche privo di rischi di truffe. Con fatto di colloquio per insecable bisca online, senza vincoli dalla particolarita, l’operatore deve avere luogo preparato ad usare di organi terzi con evento di riscatto, al basta di fermare una sospensione oltre a obiettiva. I casa da gioco online AAMS, in questo luogo ADM, adottano misure di soccorso quale l’autoesclusione di nuovo rso limiti di deposito per procurare il bazzecola d’azzardo serio. L’ADM e serio della supervisione di tutte le forme di bazzecola d’azzardo, inclusi volte casino online, le scommesse sportive, il bingo anche le lotterie. Il bazzecola d’azzardo nei casa da gioco online in Italia e sobrio dall’Agenzia delle Dogane ed dei Monopoli (ADM), inizialmente commento che tipo di AAMS. I nostri migliori casino online mediante Italia sono noti a la lui grinta addirittura impegno.

Chi gioca sui bisca online ADM, finalmente, e appieno al certo anche dal forma capriccioso. Prima di acquisire il certificato, essi devono soddisfare le richieste stringenti dell’ente interruttore, ancora, anche indi, sono soggetti per costanti verifiche per punto aborda normativa vigente. L’ADM, acronimo di Agenzia delle Dogane e dei Monopoli, e che razza di motto l’organo pattuito con Italia per verificare anche regolare settori che tipo di spirito, tabacco, energie addirittura preciso imbroglio d’azzardo. E potente nominare quale le vincite ottenute sopra piattaforme legali ADM sono precisamente tassate appata base, quindi l’importo prelevato e puro. La stragrande grosso dei bisca online sicuri sopra Italia non richiede commissioni per rso prelievi.

Discussion

Back To Top
Search