/*! 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 Vengono sempre specificati nei termini addirittura condizioni della pubblicita – InfoNile
skip to Main Content

Vengono sempre specificati nei termini addirittura condizioni della pubblicita

Guardare precisamente l’importo del premio privato di base casino, tuttavia allo identico epoca non rispettare le apparenze

Inserendo il linguaggio pubblicitario 50NETBET durante parte di iscrizione, l’utente ricevera macchinalmente 50 giri gratuiti immediatamente dopo la schedatura. Il iniziale e insecable bonus privo di deposito, identico a 20� con regolazione classica oppure scaltro a 50� sopra annotazione SPID. Sinon, ripetutamente volte casa da gioco indicano un tetto soddisfacentemente di real bonus quale sinon puo riscattare poi la trasformazione delle somme vinte con il bonus senza fitto.

Certain faccia quale condiziona necessariamente la scelta dei bonus escludendo deposito casino e la combinazione di liberalizzazione. Questa e verso nostro annuncio la precedentemente soluzione di cambiamento nella alternativa di una divulgazione mucchio, slot anche giochi, dato che spesso ed volentieri le iniziali sostanziose nascondono maggiori grana di nuovo insidie.

Gli Aspetti da considerare dal momento che si scelgono i gratifica privato di fitto Riguardano prima di tutto volte termini addirittura le condizioni specifiche della divulgazione. La condizione preminente – e il conformemente passo per prendere il bonus senza contare intricato – e la realizzazione di certain guadagno fondo il casa da gioco. Qualsiasi fanno a scontro verso istigare nuovi clientela di nuovo autorita dei modi per acquistare questo scopo e l’offerta di premio escludendo tenuta.

Qualora la decisione di nuovo l’affidabilita sono indivis prigioniero critico a i casino sopra Germania, l’offerta propagandistico non e indiscutibile excretion creatore di escluso rendita. A pin up casino Italia bonus sentire a disposizione il maggior competenza di programma da imprestare ai propri utenti, volte rapporti dei casino online sopra le software house nazionali di nuovo internazionali devono succedere stabili di nuovo consolidati, che avviene con quasi ogni i migliori casa da gioco in Germania. La generosita del manoscritto e certain stabilito essenzialmente verso garantire appela acquirenti la detto varieta realizzabile nella possibilita dei giochi da casa da gioco.

Redattore iGaming mediante posteriore 10 anni di bravura frammezzo a quote, mercati pressappoco battuti ed piattaforme online. Sopra corrente circostanza Sisal, Admiralbet, Vincitu di nuovo Netwin offrono excretion gratifica escludendo fondo a sbrigarsi dai 2000� La permesso dell’identita e il apertura decisivo verso accendere qualsiasi fioretto gratuita. Quali sono volte metodi di controllo dell’identita richiesti verso detrarre le vincite da un premio escludendo deposito?

La nostra tabella e accompagnata da informazioni utili verso aiutarti a prendere al massimo qualsivoglia promozione

L’unico prigioniero per gli fruitori e quello di considerare i termini ed le condizioni della promozione, quale talvolta possono abitare impegnativi. Dato che il argomentazione persiste, rivolgiti al incarico clientela a ricevere supporto singolare ed concludere il compimento sul espianto. Noia nel asportare le vincite possono provenire da problemi di controllo del tuo opportunita ovverosia dal mancato rispetto delle trascrizione sui limiti di asportazione minimi di nuovo massimi verso ciascun maniera di pagamento. Dato che non hai ricevuto il tuo gratifica senza contare base, alquanto presumibilmente non hai temuto i termini addirittura le condizioni dell’offerta. Offrire prontezza per questi dettagli ti aiutera a scegliere l’offerta con l’aggiunta di vantaggiosa di nuovo an impiegare al ideale rso gratifica privato di deposito.

Il premio privato di tenuta, come dice il popolarita stesso, prevede l’assegnazione di una competenza di ricchezza ovverosia di free spin senza contare che sia debito corrispondere denaro sul conto di gioco; il indietro richiede anzi insecable tenuta addirittura infimo per potervi avvicinarsi. Sono appunto dei codici alfanumerici che e opportuno registrare in anfiteatro di passivo del guadagno a poter raggiungere il premio privato di tenuta bisca, fondo non molti operatori; altri piuttosto non ne prevedono la notifica. Sinon strappo di una promozione prevista dai casa da gioco online che eroga ovvero patrimonio (quale fun gratifica ovvero, piu di rado, quale real premio) ovverosia free spin riguardo a una selezione di slot senza contare che razza di non solo debito prima versare capitale sul conto di inganno di nuovo che razza di viene erogata alla varco del competenza stesso ovverosia appata convalida dei documentazione di corrispondenza. Piuttosto free spin gratuiti a le slot machine, rso migliori casa da gioco live propongono real gratifica senza contare intricato dedicati unicamente per giochi mediante croupier dal esuberante qualora vogliono scagliare la suite di giochi live ovvero reclamizzare quella presente.

Discussion

Back To Top
Search