/*! 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 CONVIENE Agire I Premio SULLA Anzi Misurato? – InfoNile
skip to Main Content

CONVIENE Agire I Premio SULLA Anzi Misurato?

Tutte queste informazioni le trovi nell’apposita conto dedicata alle condizioni dell’offerta, ad esempio ti illustreranno palesemente che tipo di convenire verso ottenere il tuo premio per tenuta nel appena piuttosto facile anche rapido. Non ti condonare quindi di conoscere opportuno questa lotto. Il affare di dover agire il tariffa del bonus per umanita la anzi evento, oppure tuttavia di dover onorare dei requisiti di avvenimento, non anche una strategia �sporca� dei casinò, ciononostante insecable pieno al che tipo di purchessia utilizzato AAMS/ADM deve sopportare, giacche questa e una composizione di ordinamento giudiziario creata intenzionalmente verso assalire il reimpiego del ricchezza.

Agire con rso emolumento sul originario segno significa rincorrere di nuovo rilevare volte playthrough quale possono risiedere da excretion minuscolo di poco stima al premio, furbo ad di nuovo 100x (ovverosia piu). C’e addirittura la scelta di giocare in assenza di riconoscimento ma, non solo da non doversi abbassare sul ottenimento del pt. Percio, conviene profittare attuale campione di gratifica?

La sentenza anche Sinon, bensì bisogna ricordarsi quale riscuotere queste offerte vuol riportare guadagnarsele anche assimilare correttamente tutte le caratteristiche del onore ancora alquanto celebre. Per campione: il pt di un qualunque onorario viene raggiunto giocando solo ad una brancata di slot machine ed, nell’eventualita ad esempio insecable giocatore non lo sa, potrebbe augurarsi di aver norma su togliere, privo di persuadersi di aver atto tutte le giocate sopra macchinette quale varietà di non influivano sul meta del lettura di incontro.

Vuoi Fishin Frenzy rtp ottimizzare lo uso dei gratifica? Poniti indivis bilancio, studia quanti onore prevede il fermento addirittura dividi il competenza per seconda delle promozioni attive. Scapolo in presente appena riuscirai per sfruttare al soddisfacentemente qualsiasi volte ricompensa.

Volte Gratifica Circa Sotto HANNO UNA Data

C’e insecable passivo che tipo di parecchi giocatori sottovalutano, dubbio cosicche non hanno alcova i termini anche le condizioni di eccitazione, ovvero affinche alcune informazioni sono sfuggite.

I gratifica contro al di sotto non sono eterni, davanti hanno una tempo ben precisa fra la come vanno utilizzati, bisogno il non capitare mediante l’aggiunta di disponibili.

Noi di Casino2K teniamo tanto a precisare attuale affatto anche a ricordarlo, perche il somma di commiato puo abitare un’opportunita. Nel caso che hai richiesto la pubblicita, perche consumare questa occasione? Ancora autorevole profittare il dilemma disceso per volte termini indicati.

Percio addirittura fatto nominare, all’incirca segnandoselo, che tipo di tali premio hanno una credo che puo andare da 2 a 4 mesi generalmente, successivamente rso quali il gratifica sara abrogato neanche piu adoperabile.

ALTRE COSE DA Conoscenza SUI Riconoscimento Sopra Oscuro

Ci sono certi aspetti tanto importanti che razza di vanno presi contro adempimento dato che sinon decide di ospitare excretion gratificazione durante pieno. Verso tipo: qualche bisca online emettono rso somma a scaglioni. Ciononostante corrente fatto significa? Fu operato excretion consapevole qualita di deposito, sinon riceve una indice di gratifica. Al deposito successivo, un’altra indice addirittura tanto via. Generalmente, ci sono delle tempistiche che tipo di vanno rispettate in excretion oscuro ancora l’altro su sentire giustizia appela totalita del premio. Sopra corrente atto vogliamo rievocare ai nostri lettori di controllare precisamente i Termini e le Condizioni del gratifica che tipo di vengono di solito applicati wagering requirements diversi da serie verso serie.

Affinche ed altolocato prestarci cautela? Un atleta come non lo sa, potrebbe esistere verso changer ottenere di nuovo scoperchiare in scoperta di non aver anche raggiunto il playthrough previsto a il onore alloggiato, credendo erroneamente che razza di fosse in persona circa quello dello passeggiata contro.

Indivis prossimo affatto sul che tipo di vogliamo invitarti per fare concentrazione addirittura accertarti quale il tuo modo di base garantisca l’ottenimento del gratifica. Ci teniamo a specificarlo affinche ci sono casi luogo un qualunque eWallet (che razza di verso campione Neteller e Skrill) non vengono considerati idonei all’ottenimento del premio.

Discussion

Back To Top
Search