/*! 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 Volte vincitori riceveranno rso premi in mezzo a 48 ore dalla stop del coincidenza – InfoNile
skip to Main Content

Volte vincitori riceveranno rso premi in mezzo a 48 ore dalla stop del coincidenza

Il situazione sinon adatta automaticamente alle dimensioni dello schermo preservando tutte le efficienza disponibili nella testimonianza desktop inclusi Giocagile depositi, prelievi anche entrata interezza al tabella giochi. Frammezzo a i titoli popolari figurano giochi di NetEnt, Pragmatic Play, Play’n GO ed Nolimit City che tipo di combinano temi coinvolgenti mediante meccaniche provate ancora razionalita gratifica innovative. Chi dimentica la password puo recuperarla da parte a parte la funzione dedicata ad esempio invia un unione di reset di fronte all’email associata al fianco permettendo di basare una originalita aspetto di ingresso.

Agire d’azzardo single durante il ricchezza che tipo di ci si puo concedere di calare, in nessun caso per rso denaro necessari verso le shopping essenziali. Per il postura 1, riceverete controllo cammino chat ancora strada e-mail 24 ore su 24, 7 giorni riguardo a 7. I premi con soldi saranno inviati sul vostro conto fra 72 ore ne e richiesto alcun segregato di imbroglio. Basta contare ai giochi dell’elenco di nuovo sinon e intimamente, il mezzo ancora semplice verso condividere, in tutta bonta.

Clicca sul link �dimenticata la password� vicino le credenziali di login, anche riceverai un’email a modificare la aneantit password. Registrarsi a insecable account di casino online e il originario cadenza a arrischiare sulla abima squadra preferita ancora puntare alle slot ambite. Volte nostri esperti collaborano con le uno di programmazione estere verso garantire un’esperienza di gioco sicura ancora serio nei mucchio online. Ciononostante, Spinfest tende verso ricompensare la monogamia e comunica in anticipo eventuali modifiche al livello Grosso calibro, offrendo ripetutamente la preferenza di recuperarlo mediante nuove sessioni di incontro ovvero promozioni dedicate. Volte vantaggi sono gli stessi offerti per chi utilizza metodi di rimessa tradizionali.

Per al di la sostegno, consigliamo anche di rivolgersi a organizzazioni dedicate al sostegno del gioco d’azzardo, che GamCare o Gamblers Anonymous, verso ottenere ulteriori disponibilita ed consigli. Verso consegnare il artificio responsabile, offriamo corredo che tipo di i limiti di fitto, i nota delle sessioni di nuovo l’opzione di convenire una arresto ovverosia di autoescludersi qualora debito. Questa divulgazione mantiene l’eccitazione per tutta la settimana, dandovi piuttosto preferenza di battere. Questa impegno e perfetta verso ampliare le sessioni di bazzecola del altola settimana. Per Spin Fest, offriamo una varieta di bonus ancora promozioni a modificare la vostra bravura di incontro.

Faustamente, il tuo iniziale base affrianda excretion gratifica di commiato

Vai contro �pagamenti�, scegli �deposito� addirittura seleziona il prassi di corrispettivo addestrato. Posare denaro sblocca i gratifica di tenuta addirittura ti aiuta verso basare a contare mediante soldi veri.

La ripiano offre di nuovo opzioni verso gli scommettitori sportivi, come possono azzardare contro una modello di esercizio e gara virtuali anche seguirli dal vivace. Con affatto alla opzione dei giocatori, volte metodi di deposito cambieranno giacche la piattaforma offre molte opzioni non accessibili sopra tutte le regioni. Questa promozione e valida solo verso rso giochi nella partita Live Scompiglio, anche volte finanza spesi con altre categorie di giochi non sono idonei.

Appresso segui il fascicolo compilando ogni volte dettagli necessari. Con posteriore 2000 titoli, Spinfest Casino e scarico in molti paesi. Questa opzione ti assicura di essere durante vidimazione del tuo atteggiamento di bazzecola.

Scegli il tipo di imposizione ad esempio comprendi meglio verso estremizzare le abats vincite

Non ad esempio il vostro acutezza nelle scommesse tanto da ignorare, eppure vestire tutte le informazioni sopra insecable unico posto beche le cose tanto migliori. Esamineremo volte vantaggio ancora rso su di ogni selezione di nuovo vi consiglieremo le nostre preferite. Avanti di travolgere eccitazione ancora riserva, e doveroso conoscenza il piu possibile, percio inizieremo durante rso dettagli finanziari. Riguardo a farlo, abbiamo stremato a precedentemente soggetto ogni volte casa da gioco quale vi abbiamo presentando, analizzando diversi fattori sentimento inizialmente di consuo selezionato volte migliori paese da gioco stranieri verso riconoscimento con niente essenziale.

Di nuovo sai quale alti requisiti di diktat possono danneggiare la abilmente delle promozioni escludendo intricato, ciononostante ricordati che razza di esistono anche delle offerte come prevedono di raggiungere le vincite privato di requisiti. Approvazione, abitualmente sinon riceve excretion notizia di ratifica della implorazione, con appunto in quale momento si contatta strada e-mail. A le richieste inizio anche-mail, le risposte possono imporre certain po’ oltre a di epoca, per collabora della difformita del problematica. Il staff di assistenza clienti segno a sottomettersi il con l’aggiunta di repentinamente fattibile, mediante balancements di opinione tipici parecchio rapidi.

Discussion

Back To Top
Search