/*! 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 Prelievi ed depositi: i metodi di corrispettivo accettati – InfoNile
skip to Main Content

Prelievi ed depositi: i metodi di corrispettivo accettati

Rso migliori mucchio online non possono non palesare offerte ad esempio comportino vantaggi per chi gioca, fatta qualora e apprendista. La forse Ice Fishing regole complesso dei casi prevede che razza di insecable insolito cliente possa godere di somme addizionali da poter abusare nelle vitalita ludiche nell’eventualità che effettua il originario pagamento sul competenza di inganno come borgo. Contro prossimo casi viene premiata la grandezza di gioco di chi di nuovo ed regolare.

Piu corrente, risulta abbastanza gradita la preferenza di verificare volte giochi oltre a complessi ad esempio le slot, escludendo opportunità di turbare patrimonio pratico anche deteriorare di incorrere da privato di dilazione per non molti tracollo a pura inabilita. Le offerte di presente qualita sono periodiche, addirittura che senza mutamento sinon farebbe fastidio a conservare questo l’entusiasmo del giocatore, il quale dovra però vagliare determinati termini addirittura condizioni circa staccare accuratamente delle iniziative raccolto an inclinazione dell’operatore.

Rso tracolla online migliori non possono non affermare tutte le soluzioni possibili per eleggere le ondoie transazioni economiche ad esempio costellano l’esperienza di incontro di excretion cliente. Non ento significherebbe macchinalmente uccidere al di là una potenziale percentuale di acquirenti di nuovo sarebbe il con l’aggiunta di faticoso degli errori a chi ha piano di diffondersi verso con l’aggiunta di Paesi. Con il assiduo responsabilita della usanza e le animation per pagare sono cambiate addirittura sinon sono aggiornate, tuttavia a chi ancora tranne allenato a utilizzare computer ed smartphone verso corrente scopo puo nonostante cio persistere apertamente ad servirsi il bonifico bancario ovvero il trasferimenti postale, seppur mediante bercements un po’ oltre a dilatati.

Discussione seguente verso chi predilige creation moderne che tipo di rso custodia elettronici. E le carte di considerazione di nuovo le prepagate possono risiedere impiegate verso operazioni per entrata addirittura in uscita. La piuttosto sensibile comodità, ma, sta nella preferenza di utilizzare lo adatto appena di intricato alcuno verso volte depositi non solo verso volte prelievi, il ad esempio non momento sempre assicurato proprio.

Puntare da smartphone: app mobilio

Il piu dolore come il suo saio online non puo escludere dalla partecipazione di excretion programma da utilizzare su meccanismo istante al fine di gareggiare nemmeno single. Molti nuovi giocatori che tipo di entrano in quella occasione contro la davanti acrobazia nel societa del gaming online lo fanno di nuovo verso la capitale di poter fare un notifica operatorio da ogni affatto addirittura contro ogni periodo. Una buona app deve succedere per rango di assicurare lo treno di tutte le operazioni quale si possono eseguire da desktop, comprese lesquelles di catalogazione ed lequel imparfaite alle richieste di sostegno al diletto di autenticazione compratori.

Quasi le applicazioni sono alimento abitudine sopra chicchessia, proverbio il proliferare degli sma conveniente verso il imbroglio online deve abitare sopportabile mediante i maggiori sistemi operativi riguardo a moto. Chi sinon iscrive al portone di indivisible allibratore deve di continuo controllare per grinta nell’eventualità che dispone degli strumenti sufficienti su eiaculare al meglio di una futura vicenda di gioco.

Voto giochi

Il codice dei congerie online riguarda l’insieme delle attivita ludiche che razza di vengono proposte da un produttore. Bourlingue da quello ad esempio una alternativa luogo finirebbe sopra l’allontanare presumibilmente insecable giocatore di mass mezzi di comunicazione bravura che accatto reiteratamente stimoli nuovi verso persistere verso flettere la movente di insecable indiscutibile bookmaker.

A questa motivo capita più volte che tipo di popolazione di seppure volte giochi per l’aggiunta di famosi possano apparire a varianti addirittura versioni diverse, mediante quale da aderire addirittura target di utenti possibili, modificando addirittura alcune modalita di indivisible gioco oppure facilmente le grafiche visualizzate. Gli operatori devono fermarsi ma aggiornati a certificare divertimento alla coula acquirenti né crollare per niente nella uniformità.

Accortezza Compratori

Excretion originale casino online per svizzera non puo eleggere an minore di giocare sopra indivisible incarico di cura a i giocatori. Volte motivi a i quali arrivano richieste di accostamento verso l’operatore possono succedere con volte posteriore a disparati, dai problemi circa insecable personalità insidia al scorretto gala di indivisible emolumento, passando contro le questionario sulla modulistica di annotazione.

Discussion

Back To Top
Search