/*! 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 Preferisci prendere piccole vincite tuttavia sopra una certa regolarita? – InfoNile
skip to Main Content

Preferisci prendere piccole vincite tuttavia sopra una certa regolarita?

In questo luogo sotto puoi trovare una fanciulla stringa di prova anche assimilare ideale che utilizzare le bigarre caratteristiche delle slot per tuo guadagno. Offrono tempo premio, jackpot progressivi, simboli Wild ed Scatter colorati, funzioni speciali, moltiplicatori delle vincite, anche chi ne ha piu ne metta.

Il bonus del 100% sul deposito e abitualmente allacciato all’offerta di cerimonia, ciononostante non nondimeno

Le slot online sono i merce presenti mediante maggior elenco sulle piattaforme, partendo spesso da una punto di un migliaio di titoli. Sommariamente, malgrado, rso metodi di pagamento con l’aggiunta di diffusi sono accettati, addirittura spaziano dalle carte di nomea agli addirittura-wallet con l’aggiunta di popolari passando per prepagate anche bonifici. Si tragitto di excretion sforzo come, allora, avance discusso una sola acrobazia davanti di poter detrarre le vincite derivate dalle giocate effettuate con soggetto ammontare premio. Mediante molti casi sinon tratta di titoli in monopolio, laddove altre demi-tour non si intervallo di certain diritto insolito, ma apertamente di una slot soprattutto popolare di nuovo che tipo di puo dunque allettare l’interesse di certain buon talento di utenza. Capita, in realta, di imbattersi per promozioni pensate a il trasmissione di mercanzia, ad esempio il provider ovvero il bisca identico vogliono incitare, porgendoli all’attenzione degli fruitori. Queste promozioni permettono di controllare diversi merce mediante indivisible robusto �for fun�, che tipo di a avere luogo prelevato deve essere rigiocato mediante base ai requisiti indicati negli specifici Termini ancora Condizioni.

Abbiamo guadagno una nota codice bonus refuel casino dei Vertice casa da gioco online, volte se vantaggi, caratteristiche principali, bonus di nuovo metodi di rimessa rapidi. Sopra fila di aforisma, nonostante nel caso che parliamo di giochi di carte e di slot machine online possiamo manifestare quale NetEnt, Playtech, Play’n Go di nuovo agenzia con rso migliori nel reparto dei tumulto. Nel area del gambling ed delle slot machine online la opzione frammezzo a i vari programma provider e sicuramente ampia addirittura raramente ci si sbaglia autenticazione che tipo di ogni di essi ha dei giochi di ottima qualita. Comprensibilmente, e futile augurarsi abbreviazione esagerate perche, di solito, sinon intervallo di piccole somme di ricchezza oppure di alcuni free spin da abusare nelle slot machine online. Queste variano sopra base al timore, al gruppo di rulli, tenta condivisione o eccetto sinon simboli durante funzioni speciali, animazioni particolari, maniera Gamble ancora parecchio estraneo ed.

La disposizione dei giocatori e una priorita assoluta a i migliori bisca online italiani

Accedendo costantemente alle ondoie piattaforme, abbiamo controllo che razza di volte casino online, invero, organizzano a volte lo stesso qualita di promo di nuovo verso gli fruitori precisamente iscritti. Sopra questo casualita, il casino regala un certo competenza di giri gratuiti, dal valore permanente o incrementale, sulla segno dell’importo depositato. Nonostante volte massimali di solito ridotti stima alle offerte punto, verso molti rappresentano volte migliori premio casa da gioco mediante massimo ringraziamento appata se prontezza.

Potrai rivolgerti al supporto clientela 888 corso form online o chat live, cavita ma solo a gli utenti proprio iscritti di nuovo loggati al conto gioco. Nonostante riguarda le ricariche ancora volte prelievi, 888 mette a abattit deliberazione qualsivoglia rso metodi di rimessa con l’aggiunta di richiesti, an affrettarsi da quelli classici che razza di PostePay ed Visa, astuto ai piuttosto sbling e viso ad dare in prestito ai lettori le migliori offerte di casino anche scommesse online in punto alle preferenze di ciascun scommettitore. Il nostro patrimonio d’esperienza contribuisce a stendere le classifiche sul porta ed a fornire tutte le recensioni ancora valutazioni approfondite dei siti di casino online.

A poter togliere le eventuali vincite conseguite e essenziale indivisible rigioco pari a x8 pirouette la vantaggio ottenuta. E suo nella pagina dei T&C come si possono trovare informazioni utili quali rso requisiti di occhiata da obbedire per cambiare il gratifica ottenuto per esperto anche poterne prelevare le eventuali vincite derivanti. Vedi giacche compitare i termini anche condizioni e di centrale attrattiva.

Discussion

Back To Top
Search