/*! 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 Rso contenuti sono organizzati in diverse categorie, facilitando l’esplorazione verso praticita ovverosia particolarita di imbroglio – InfoNile
skip to Main Content

Rso contenuti sono organizzati in diverse categorie, facilitando l’esplorazione verso praticita ovverosia particolarita di imbroglio

Il premio di convenevole SpinBara clicca sulle risorse regala ai nuovi giocatori il 100% astuto per 500� sul anteriore tenuta, con l’aggiunta di 200 giri gratuitamente ed 1 Bonus Crab esclusivo. I gratifica verso SpinBara offrono ai nuovi giocatori vantaggi esclusivi che razza di un ampio fagotto di ossequio ad esempio combina excretion gratifica sul passato base, giri gratuiti anche la specifico funzione Gratifica Crab. L’esperienza impegno da SpinBara Confusione e poi arricchita da una generosa divulgazione di benvenuto addirittura da una incontro dedicata alle scommesse sportive. Inizia improvvisamente la abaissa abilita autentica su SpinBara Casino, scopri tutti i giochi e approfitta delle offerte speciali riservate ai giocatori italiani! Scegliendo il casino SpinBara Italia, volte nuovi iscritti ricevono certain caritatevole bonus di benvenuto del 100% scaltro a 500� sopra 200 giri a scrocco anche una funzione privilegio �Gratifica Crab�.

Il limite del bonus di benvenuto e realmente aggiunto verso i giocatori italiani?

Il luogo Persona importante e determinato per punto all’attivita degli ultimi 90 giorni anche include tomo dei depositi, cronologia dei prelievi e impiego dei premio. Volte prelievi vengono generalmente elaborati entro tre giorni lavorativi, nonostante volte bercements esatti possono modificare durante segno al metodo selezionato. L’intero situazione e ottimizzato per i browser masserizia di nuovo offre accesso intero a giochi, pagamenti, gratifica ancora praticita di ausilio escludendo la necessita di rimuovere programma aggiuntivo. Inoltre, offre molteplici metodi di rimessa, tra cui carte tradizionali, certi portadocumenti elettronici addirittura criptovalute. Certain deposito piccolissimo di �20 attiva un gratifica del 100% sagace a �500, accordo per 200 giri gratuiti.

Il base minimo e di recitatifs 10�, rendendo la programma facile a ciascuno i giocatori

Le promo possono mutare mediante luogo al Paese ed ai metodi di deposito disponibili. I limiti di asportazione variano mediante luogo al luogo Persona importante del sportivo, sopra importi giornalieri addirittura mensili prestabiliti.

Codesto ti permette di sviluppare strategie efficaci avanti di puntare con contante facile. Questi giochi verso 3 rulli offrono meccaniche semplici di nuovo payout diretti per chi preferisce l’esperienza vintage. Conserviamo il attrazione delle slot machine classiche in simboli tradizionali che tipo di frutta, campanelle anche Bar. La nostra partnership sopra NetEnt, Pragmatic Play, Microgaming ancora Evolution Gaming ci permette di prestare slot certificate mediante RNG verificati di nuovo payout garantiti. Le carte di fama Visa ed Mastercard offrono transazioni istantanee con la adagio deliberazione.

Riguardo a spinbara bisca trovi addirittura calcio d’angolo, cartellini, tiri per apertura anche combo durante casa personalizzata. La prassi scura aiuta di tenebre, dal momento che il multi-view permette paio confronto unita. Contro spinbara casino le scommesse sportive da mobile offrono quote live reattive di nuovo un’interfaccia riordinata. Verso spinbara bisca puoi estendersi da indivis quadro all’altro senza contare ridare la carica la consorteria, mantenendo la data puntate anche la chat aperta.

Verso rso giocatori italiani il premio superiore sul antecedente tenuta e 150� (durante altre regioni acceda magro a 500�). Posizione 1 – Entrata luogo Tutte le promozioni norma disponibili. La nostra infrastruttura tecnica si basa sul prassi Soft2Bet, qualcuno degli stack oltre a affidabili dell’intero dipartimento iGaming. Gli high rollers apprezzeranno volte tavoli Vip sopra limiti furbo per � addirittura account personali mediante limiti di estrazione mensili di �.

Indi aver inserito le credenziali, clicca sul bottone centrale “Accedi” a abbracciare. Accedi mediante complesso sicurezza al tuo account a riprendere il imbroglio da dove lo avevi ignorato addirittura essere in vita un’esperienza di gioco completa ed personalizzata. La spianata promuove il inganno affidabile offrendo corredo di autolimitazione ancora autoesclusione, con mezzi quasi certamente accessibili agli utenti italiani.

Rso giocatori possono godere di indivis bonus di saluto del 100% fino a �500 oltre a 200 giri in regalo. Spinbara Scompiglio Italia offre un’esperienza di gioco completa sopra nuovo 9.000 slot. Inaspettatamente indivis teatro compiuto dei principali vantaggi e svantaggi che caratterizzano l’esperienza di gioco verso questa ripiano. Presente ausilio fedele chavire l’esperienza di inganno piuttosto sicura ed piacevole verso qualunque gli fruitori del bisca online.

Discussion

Back To Top
Search