/*! 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 Per finire il wagering senza calare il gratifica e importante gareggiare mediante mezzo graduale di nuovo esaminato – InfoNile
skip to Main Content

Per finire il wagering senza calare il gratifica e importante gareggiare mediante mezzo graduale di nuovo esaminato

Al di la al premio intricato magro verso 2

A conti fatti si strappo di un’offerta adatto addirittura cosi e potente anelare qualunque come verso acquistare il meglio. ?? Che afferrare se indivis wagering sul gratifica privo di fitto e sicuramente proprio?

Volte premio senza contare deposito vengono abitualmente accreditati che tipo di fun premio, il estrazione e basso punt casino al arrivo di determinati requisiti di puntata. Abbiamo scovato i migliori gratifica escludendo base del momento disponibili per Italia. 15384 ed soggiogato alle norme italiane per sostanza di appoggio del scommettitore. Con insecable bonus di commiato che aboutit a 1.500� sul passato fondo, ancora 250 giri gratuiti inclusi nel insieme, RichRoyal propone l’offerta promozionale ancora generosa in mezzo a qualsivoglia gli operatori esaminati. Con insecable po’ di campionamento, sinon puo indicare che la smacco attesa su indivis gratifica senza intricato e di su 0,95� a qualsivoglia euro speso.

Per il casino live Betflag prevede insecable vantaggioso fun bonus di benvenuto ad esempio puo capire furbo per 1.000�, da sfruttare per volte titoli Pragmatic Play. La perizia comprende sia il gruppo di provider addirittura di giochi live pero anche la segno, fra giochi da quadro, di carte, gioco spettacolo ed titoli originali. Se il giocatore ogni scommette 20 � prontuario, dovra agire al minimo 30 mani, oppure oltre a di un’ora di tavolato privo di garanzie. La maggioranza dei bisca senza KYC limita la assai di informazioni personali richieste, eppure e autorevole verificare le politiche di ciascun casa da gioco. Verso maggiori informazioni su qualora contare, raduno la nostra vicenda sui scompiglio Bitcoin verso indagare le migliori opzioni a indivisible gioco evidente ed escludendo intoppi.

Il premio commiato di StarCasino consiste con insecable gratifica cashback dal fatica somma di 2

Durante ancora l’operatore offre taluno dei migliori bonus senza deposito per 50 Free Spins, erogati poi la visto del conto gioco. 150�, di cui 50� riservati ai giochi “Crazy Time addirittura Money Time”. 000�, con codice promo BB_CASINO3000, in realta, l’operatore eroga 1.000� di welcome bonus senza contare deposito aborda incisione. Per di piu, l’operatore eroga certain bonus scompiglio in assenza di tenuta di ulteriori 100 giri gratuiti, da abusare copiosamente nella slot �Big Bass Bonanza�, in evento di catalogazione in SPID. Estranei fattori come possono esortare la partecipazione di indivis perfetto bonus escludendo base riguardano la condivisione di una app veloce di nuovo sperimentato anche promozioni legate ad essa. Incluso cio, ricordiamo, al stop di riscattare rso migliori premio privato di fondo casa da gioco sopra trasferimento.

Volte gratifica privo di intricato di 5� sono proprio volte piu popolari nei bisca online italiani. La discrepanza primario sta nel fatto che, nel caso che ciascuno i giocatori possono ottenere di bonus in soldi accessorio anche giri a titolo di favore, i bonus immediato privato di fondo anche privo di rapporto sono in cambio di solamente verso aggradare dei nuovi giocatori. Scorri la nostra top list a trovare il gratifica senza contare fitto che fa al evento tuo, ciononostante ricordati sempre di verificare quale l’offerta sia ed attiva. Qualora intendi ottimizzare le vincite provenienti dalle abats scommesse online, sfruttare al preferibile volte gratifica escludendo fondo puo avere luogo insecable alleato tanto altolocato. Dopo l’apertura del vantaggio di gioco purchessia tenero scommettitore ricevera 1.000 Free Spin addirittura 2.000� all’apertura di indivis ingenuo …opportunita di incontro verso .

Se l’idea sembra assai bella verso risiedere ricciolo, infatti non lo e perche una delle forme piu frequenti di gratifica privo di tenuta e quella dei giri in regalo. Se e il premio senza intricato la divulgazione che razza di vuoi avviare, potrai facilmente accedere al tuo guadagno di artificio ed cliccare sul bonus per attivarlo. Il premio in assenza di base e una divulgazione con questione appata ad esempio il scommettitore sinon registra al luogo di nuovo riceve prontamente, durante un attimo, una determinata competenza di denaro da gareggiare nel mucchio mediante ricchezza verie e comodo comprendere le slot machine sono di gran lunga il artificio piuttosto comune verso procurarsi indivisible premio senza deposito. Qualunque giocatore deve cercare di apprendere mediante rso requisiti di lettere sensitive da immediatamente, avanti anche di volere excretion bonus privato di tenuta.

Discussion

Back To Top
Search