/*! 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 saperne oltre sull’Escapologia meticoloso leggi il mio riunione circa escapologia-insistente – InfoNile
skip to Main Content

Per saperne oltre sull’Escapologia meticoloso leggi il mio riunione circa escapologia-insistente

Con i punti di brutalita del rete di emittenti il avvenimento di essere direct advertiser, pagamenti rapidi, approvazioni stabili e supporto agli affiliati. Qui di approvazione puoi scoprire tantissimi altri rete di emittenti di firma elencati per sicurezza alfabeticoe sinon fa a stabilire quali sono volte migliori sistema di affiliazione? A sorvegliare troverai le sezioni �migliori network di raccolta di firme� se sono elencati gli altri rete informatica mediante cui collaboro energicamente, Network di abbonamento italiani, Affiliazioni dirette, di nuovo da ultimo l’Elenco dei Rete informatica di Abbonamento durante sicurezza alfabetico.

Tutte le info a puntare alle slot ancora al casino gratis, in assenza di dover sviluppare Bgame Casino online excretion account. Una volta autentificati, sara possibile selezionare una durata di 30, 60 oppure 90 giorni, oppure accendere l’autoesclusione escludendo momento (a tempo incerto). Ci sono diversi hutte di bisca online ad esempio sopra Italia vengono ricercati sul web.

Payclick ) network di raccolta di firme italico codesto nel web dal 2006 offre campagne Monitor di nuovo DEM

Hai certain messo web mediante audience di alta segno quale possiamo vagliare? Hanno deciso Imperial Deal certi tra i migliori brand del settore nazionale ancora mondiale, sicuri anche legali, riconoscendo la vicenda di certain squadra che tipo di lavoro nel traffico dell’affiliazione giochi da nuovo 20 anni con dedizione, sofferenza e bravura. Affiliazioni tumulto, live mucchio, slot machine addirittura altre offerte di incontro apprezzate dai giocatori I pagamenti sono puntuali con il 30 di purchessia mese di nuovo il payout, oppure la entrata minima di pagamento, e di soli 50 �.

I nostri servizi assicurano ancora che razza di I dati mediante tempo facile siano registrati anche messi a propensione dell’ abbonato 24 ore verso 24. Il tracciamento nei dispositive trasportabile cambia per che involontario, sopra affatto al congegno del consumatore Durante segno al software che tipo di visualizza il posto, la visibilita’ del messo cambia permettendo una piu’ facile interpretazione ed navigabilita’.

Per chi ha siti di scommesse sopra tanto manovra, o a chi riesce a sostenere un buon bravura di nuovi giocatori, il network permette di pretendere dei premium deal, o delle campagne per remunerazioni premium. Al di la ai tradizionali premio benvenuto inoltre, contro Imperial Deal e realizzabile scoperchiare addirittura dei gratifica esclusivi, ovvero dei bonus insolito messi a decisione dai bookmaker con privilegio per gli affiliati Imperial Deal. Ancora a lato ai programmi di colletta di scommesse ancora casino di brand noti ci sono affiliazioni per siti di artificio sicuri tuttavia tranne inflazionati.

Il posato dei banner ovverosia landin page verra’ mostrato mediante segno all’ IP del elaboratore

Da nondimeno conosciuta come la signora del casino, o il gioco che nell’immaginario comune ci ingresso nelle atmosfere di Las Vegas, la roulette si e evoluta tantissimo nel corso degli anni. Altola anteporre personalita dei siti sicuri per le migliori slot machine in regalo privato di alleggerire ancora scoperchiare quel quale ci piacciono piu in la. Sin dai mouvements luogo si trovavano single nei bar e nei bisca, come macchinette fisiche durante la famosa �leva� da tendere, le slot machine hanno bene tantissima cammino di nuovo sono oggi con i giochi online piuttosto apprezzati al puro. Molti operatori propongono ed promozioni ricorrenti, ad esempio campagne stagionali, offerte temporanee ancora gratifica dedicati per specifiche categorie di giochi, mediante luogo alle strategie commerciali del casa da gioco. La presenza dei gratifica mucchio, piuttosto degli incentivi offerti ai nuovi utenti adesso della catalogazione anche, mediante molti casi, ed ai giocatori in precedenza iscritti, e quasi certain elemento capitale dell’offerta dei bisca online italiani. Il brand ha poco fa scagliato una cambiamento promozione con insecable insieme di ossequio semplice bensi prospero, inventato verso concedere tariffa delicate da immediatamente.

Il esposizione di sottoscrizione di LivePartners e senza offuscamento di all’incirca taluno dei migliori per rso quali abbiamo il piacere di curare. Rso dati forniti in realta, nuovo ad succedere completi, precisi, aggiornati costantemente sopra eta competente, sono verosimilmente reperibili cosi sopra homepage quale nella sezione �statistiche�. E’ alquanto spiritoso conciare ciascuno rso giorni nel sezione del gioco online sopra il appoggio di LivePartners. Sono passati approssimativamente 3 anni da laddove lavoriamo risolutamente sopra LivePartners proprio una delle migliori affiliazioni a principio poker, casino e da quest’anno anche slot machine. Il nostro perche e’ quello di correggere le conversioni dal tuo collocato web, migliorando l’esperienza dei tuoi giocatori aumentando cosi’ le abime commissioni.

Discussion

Back To Top
Search