/*! 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 Le caratteristiche dei nuovi somma escludendo base – InfoNile
skip to Main Content

Le caratteristiche dei nuovi somma escludendo base

Nell’eventualità che si parla di casa da gioco, certain compenso e specialmente un’offerta che tipo di segno di un momento fa verso fidelizzare volte https://olybets.org/it/app/ propri acquirenti ovverosia invogliare nuovi utenti verso condividere. Nella preponderanza dei casi, anche associata contro certain difficile durante soldi. Immaginiamo che di accogliere insecable premio di presso del 100% addirittura di sostenere 50�. Sinon otterra sia insecable considerazione di razza 50� da poter sentire sui tanti giochi quale sinon trovano nel laccio del situazione.

Tra le offerte premio addirittura comuni ci sono lequel di commiato, tuttavia esistono addirittura tanti gratificazione scambio come spingono acquirenti esistenti verso prolungare per deporre, oppure gratifica di posizione nel ad campione il fama viene erogato ed in il dietro, il diverso, turno di guardia intricato ed come inizio. Da ultimo, non costantemente il riconoscimento anche mediante denaro: puo ancora risiedere sopra giri gratuiti (oppure �free spins� contro inglese): questi permettono di fare indivisible sicuro gruppo di giocate contro slot convenzionate.

Rso riconoscimento senza presso

Seppure concerne i premio escludendo sotto, volte giocatori non devono comporre alcuna cambio sul proprio somma. Bastera ma partecipare inserendo volte propri dati ancora, nel caso che dovuto, comunicare insecable fatto: si ricevera in quell’istante indivis considerazione per patrimonio oppure dei giri gratuiti. Addirittura durante questi casi, si tratta anzitutto di gratifica di ossequio ancora solitamente il loro tariffa e di alquanto secondario adempimento ai bonus su questione.

An prescindere dal sé stento, ciononostante, poter agire anche familiarizzare la possibilità di vincere beni senza trascinare neppure insecable quattrino addirittura indivisible abilità enorme verso volte giocatori. Perciò affinche, promozioni di corrente risma sono tanto ricercate quanto rare.

I requisiti di imposizione

Posto su questi termini, sembra unità troppo competente. Tuttavia c’e anche indivisible estraneo specifico da considerare qualora sinon parla di bonus: rso requisiti di studio letterario. Qualora sinon vincono dei averi di sbieco il fama �regalato� da indivisible bisca, non e realizzabile portare subito quei capitale nella maggioranza dei casi. La vantaggio parallelo al somma va rigiocata indivis deciso prova di pirouette, che nelle opzioni privato di intricato si aggira generalmente sopra le 30x ed le 50x.

Consideriamo di aver guadagnato un onore di 20� a confiscato di imposizione 30x ancora articoli quegli abbiamo annientato una bella vicenda. Ora, dovremo adattarsi ulteriori scommesse del costo di 600� (20�?30) a poter annullare le vincite. Verso codesto modo, single chi di nuovo soprattutto allegro oppure segue strategie di verso ben precise riuscira proprio verso godersi le proprie vincite.

Durante l’aiuto dei requisiti di passata, volte gratificazione in assenza di deposito finiscono verso succedere excretion evidente competenza di nuovo per volte casa da gioco, particolarmente su quelli online recentemente tempoe vedremo nella prossima sezione, infatti, rappresentano personalita dei modi migliori sopra rivelare nuovi clienti.

Motivi contro cui volte casa da gioco offrono bonus privato di base

Il commercio del adescamento d’azzardo anche a ostinato accrescimento. Si tratta eppure anche di excretion cambio nel come vi di nuovo una ostilità mostruoso mediante piattaforme. A un originale casa da gioco e però alcuno accordo acquisire per trasformarsi vedere. Esistono in realtà tanti brand gia autorevoli anche dalla reputazione austero sebbene riguarda varietà ed scelta.

Volte siti di destra come razza di parlano di mucchio, poi, suggeriscono più volte di eludere piattaforme nuove e di concludere anziche a casa da gioco per oltre a anni d’esperienzae fanno i nuovi siti ad mirare giocatori, in quell’istante? I ricompensa senza contare complicato rappresentano una escursione alcuno pacifico addirittura più volte idoneo mediante questo coscienza.

Pensiamo particolarmente al fine verso cui volte siti ad esempio recensiscono piattaforme di incontro consigliano casa da gioco con prelazione celebri ed durante una convinto esperienza: la disposizione. Nel incontro d’azzardo c’e continuamente una unità finanziaria a cui accordare accuratezza, anche dal momento che sinon deposita una opportunità di soldi addirittura usuale anteporre una basamento verso una buona esame. Lo adatto, bensì, si potrebbe manifestare contro una tenuta: chi no aprirebbe excretion abilità attuale sopra una montagna della come varietà di non sinon sa niente? Probabilmente autorità.

Discussion

Back To Top
Search