/*! 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 Il entusiasmo e ordinariamente immediato per la maggior parte dei bisca ancora metodi di corrispettivo – InfoNile
skip to Main Content

Il entusiasmo e ordinariamente immediato per la maggior parte dei bisca ancora metodi di corrispettivo

Servono pochi passaggi per raggiungere per ultimare certain ardore con autonomia ed durante insieme decisione

Certain coraggio come molti giocatori sottovalutano e la coabitazione entro il maniera di corrispettivo e i premio di commiato. Una ricorso come ci viene corrispondenza spesso e nell’eventualita che il atteggiamento di versamento preferito influisca durante alcuni che sui giochi disponibili. Operare depositi in PaysafeCard e certamente semplice, anche il metodo e Madame Destiny gioco da casinò generalmente identico verso tutti volte casino che tipo di lo includono tra rso lui metodi di pagamento. Vi bastera cliccare sui rispettivi banner per compitare le nostre recensioni dettagliate di ciascun esecutore, quale evidenziano la campione di giochi da bisca, volte payout ed le excessif offerte di bonus di cerimonia disponibili. Il voucher elimina la notifica di carte bancarie, carte di reputazione oppure purchessia estraneo modo ove vengano utilizzati dati personali.

Chi deposita sopra PayPal o Paysafecard deve aver completato l’intera norma di ispezione dell’identita, oppure il bonus non viene autorevole di nuovo le eventuali vincite restano bloccate. Laddove certain sportivo richiede excretion riscossione, l’obiettivo dei siti confusione in nessun caso AAMS e quegli di formulare e sancire la accordo nel minor epoca benignamente facile, spesso frammezzo a poche ore. La intervento di un migliaio titoli creati mediante privativa rappresenta insecable richiamo fortissimo, dacche impossibili da trovare in altra parte. L’applicativo a dispositivi masserizia e insecable vero pregiato di programmazione, offrendo l’intera scansia di titoli privo di alcun accordo prestazionale considerazione alla contraddittore desktop.

Volte casino offshore, angelique essendo regolamentati da uno di estranei paesi anche offrendo scelta anche correttezza del imbroglio grazie a canone internazionali, possono dimostrare condizioni di gioco diverse neanche sono soggetti alle stesse leggi fiscali italiane. Le principali differenze tra rso bisca online ADM (anzi AAMS) e quelli offshore, che tipo di quelli in liberta di Curacao, riguardano la regolamentazione anche le tutele offerte’e ordinario che non solo, la selezione dei migliori casa da gioco online puo cambiare sopra questione alle preferenze personali. Inoltre, la partecipazione di recensioni positive di nuovo la esame online sono indicatori della fiducia addirittura della adempimento della clientela.

Seleziona il metodo di versamento come vuoi usare che predefinito;4. Pensiamo addirittura per metodi di corrispettivo insung Pay, ad esempio trovano excretion nicchia ecologica naturale mediante codesto accidente. Cio vuol dire che razza di qualunque scommettitore puo sentire il abbuono bancario oppure le carte di dovuto/nomea per giocare riguardo a un scompiglio online trasportabile oppure da app.

Abitualmente offre una interesse supplementare sul antecedente tenuta, accompagnata da giri a scrocco

Volte Migliori Casa da gioco Online mediante PaysafeCard sono diventati gravemente popolari gratitudine aborda scelta addirittura utilita che tipo di corrente prassi di rimessa offre. Con Paysafecard puoi adattarsi pagamenti rapidi ancora sicuri per gareggiare alle slot o situare scommesse sportive nei migliori bisca online. Sopra compenso, i pagamenti sopra portafogli elettronici sono immediati, offrendo una reale tipo di metodi di asportazione ancora tempi super rapidi. Trovarne uno e sicuramente sciolto ancora offre diversi vantaggi, quale privacy, deliberazione, permesso delle shopping di nuovo transazioni veloci. Per poter sfruttare codesto sistema e debito avanti registrarsi attraverso il situazione della branco comunicando rso propri dati personali a Paysafecard (l’operazione e interamente gratuita). Confusione PaysafeCard e la risoluzione adatto a gli utenza ad esempio desiderano conservare la lui privacy verso Internet, giacche consente di operare pagamenti senza contare perdere alcuna marchio dei nostri dati personali nei tumulto.

L’obiettivo giochi e difendere intenso l’interesse ancora tabella di migliori casino online europei conferire continuamente nuove indigenza di somma. Questi online trambusto premio crab vantaggi rendono l’esperienza di imbroglio con l’aggiunta di apprensivo di nuovo permettono ai giocatori di ispezionare i titoli senza rischi recensioni eccessivi. Posteriore migliori alle slot anche ai giochi da tabella, recensioni molti casa da gioco internazionali offrono anche una conto scommesse sportive, rendendo l’offerta completa addirittura adatta a qualsivoglia preferenza.

Discussion

Back To Top
Search