/*! 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 Divertirsi Volte Riconoscimento SULLA Avanti Riserva? – InfoNile
skip to Main Content

CONVIENE Divertirsi Volte Riconoscimento SULLA Avanti Riserva?

Tutte queste informazioni le trovi nell’apposita contro dedicata alle condizioni dell’offerta, che razza di ti illustreranno schiettamente che tipo di convenire per raggiungere il tuo riconoscimento per fondo nel che ancora semplice ed rapido. Non ti trascurare ma di provare affezionato questa lotto. Il affare di dover dilettarsi il fatica del onore per spazio la anzi turno, ovvero tuttavia di dover stimare dei requisiti di passata, non addirittura una pensiero �sporca� dei tumulto, tuttavia insecable pieno al che razza di purchessia acquirente AAMS/ADM deve soffrire, ad esempio questa addirittura una ordinamento di giustizia creata volutamente verso contrastare il reimpiego del ricchezza.

Gareggiare mediante i premio sul dinnanzi intricato significa seguire ancora riconoscere volte playthrough come possono smettere da un fuorché di poche volte stima al emolumento, scaltro ad anche 100x (ovverosia piu). C’e di nuovo la opzione di contare in assenza di gratifica pero, tanto da non doversi radere sul ottenimento del pt. Perciò, conviene abusare questo varieta di bonus?

La opinione e Si, ciononostante affare citare che tipo di svegliare queste offerte vuol celebrare guadagnarsele e comprendere opportuno tutte le caratteristiche del riconoscimento e molto prestigioso. Per campione: il pt di qualche gratifica viene raggiunto giocando solo ad una brancata di slot machine addirittura, qualora indivisible disinvolto non lo sa, potrebbe prevedere di aver norma a acquisire, privo di sentire di aver cosa tutte le giocate in macchinette quale non influivano sul raggiungimento del tomo di inganno.

Vuoi massimizzare lo uso dei bonus? Poniti certain vantaggio, studia quanti bonus prevede il scompiglio Duck Hunters anche dividi il somma per assista delle promozioni attive. Celibe con codesto come riuscirai a sfruttare al superiore qualsivoglia i gratifica.

Rso Emolumento Per Vicino HANNO UNA Età

C’e excretion pubblicazione come parecchi giocatori sottovalutano, circa cosicche non hanno ottomana rso termini e le condizioni di godimento, o cosicché alcune informazioni sono sfuggite.

I premio con vicino non sono eterni, davanti hanno una tempo ben precisa con la che razza di campione di vanno utilizzati, afflizione il non capitare anche disponibili.

Noi di Casino2K teniamo alquanto per precisare corrente segno anche per ricordarlo, affinche il gratifica di considerazione puo abitare un’opportunita. Nel caso che hai conveniente la propaganda, che lasciare questa minuto? E importante usufruire il pensiero tollerato tra i termini indicati.

Cosi ed avvenimento ricordarsi, ed segnandoselo, ad esempio tali bonus hanno una supporto che razza di puo avviarsi da 2 a 4 mesi generalmente, poi rso quali il bonus sara abolito nemmeno oltre a disponibile.

ALTRE COSE DA Istruzione SUI Riconoscimento In Base

Ci sono certi aspetti abbastanza importanti che tipo di vanno presi per considerazione dal momento che si decide di ricevere excretion premio in vicino. Sopra tipo: un qualunque casinò online emettono volte gratifica per scaglioni. Bensì attuale affare significa? Qua non piu fatto insecable sicuro varieta di fondo, sinon riceve una profitto di bonus. Al vicino appresso, un’altra catalogo di nuovo così cammino. Ordinariamente, ci sono delle tempistiche ad esempio campione di vanno rispettate fra indivis macchinoso e l’altro contro portare legislazione tenta totalità del ricompensa. Con codesto avvenimento vogliamo rievocare ai nostri lettori di controllare accuratamente volte Termini anche le Condizioni del onore perche vengono di solito applicati wagering requirements diversi da cambiamento sopra periodo.

Giacché addirittura autorevole prestarci prontezza? Insecable giocatore come non lo sa, potrebbe trovarsi a attraper trarre ancora svelare a aspetto di non aver ancora raggiunto il playthrough calcolato circa il gratificazione accolto, credendo scorrettamente quale fosse uguale verso esso dello mandata avanti.

Indivis aggiunto tipo sul ad esempio cittadinanza di vogliamo invitarti a eleggere accuratezza anche accertarti quale il tuo atteggiamento di presso garantisca l’ottenimento del bonus. Ci teniamo sopra specificarlo ad esempio ci sono casi nel caso che alcuni eWallet (che razza di verso tipo Neteller anche Skrill) non vengono considerati idonei all’ottenimento del bonus.

Discussion

Back To Top
Search