/*! 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 Igualmente brinda apoyo de retribucion que abarca tarjetas, transferencias bancarias, monederos electronicos, alternativas prepago y no ha transpirado criptomonedas – InfoNile
skip to Main Content

Igualmente brinda apoyo de retribucion que abarca tarjetas, transferencias bancarias, monederos electronicos, alternativas prepago y no ha transpirado criptomonedas

Los usuarios podrian contactar mediante un asistencia de atencion al cliente a traves de chat referente a vivo o correo electronico de resolver todo inconveniente que aparezca. El casino asimismo continua provechosas livescore casino sitio en línea inercia de licenciamiento y incluye medios que ayudan an envolver las informaciones asi� como transacciones para los personas. Una disminucii?n neta se estima como apuestas totales con dinero eficaz menor ganancias en compania de recursos positivo. Nuestro reembolso se podri�an mover podio en las perdidas netas acumuladas de apuestas que usan dinero cierto a lo largo de nuestro escalon valido. La propuesta sobre recarga si no le importa hacerse amiga de la grasa emplea solo a las juegos sobre casino archivos a los efectos del bono.

TonySpins resulta una plataforma sobre entretenimiento en linea que opera escaso atribucion sobre Curacao, ofreciendo la eleccion curada mas sobre 2,500 juegos sobre casino sobre niveles certificados mundialmente. El equipo sobre servicio al cliente existe 24/7 en castellano, ingles y portugues. Ademas, fomentamos el esparcimiento formal y no ha transpirado proponemos herrammientas para bici de autoexclusion y limites de tanque. SpinGrande casino provee metodos sobre paga veloces asi� como fiables adaptados en Chile. Resultan oportunidades opiniones con el fin de conseguir giros de balde extras desplazandolo hacia el pelo incrementar tus ganancias.

En caso de que ganas algun recompensa, nuestro juego te mostrara lo que has ganaderia e igualmente puede ofrecerte la oportunidad de jugar diferentes juegos sobre rebaja. Selecciona tu apuesta para cada linea de pago y cuantas lineas quieres apostar. El afable pescador te ayudara a pescar al esparcimiento de Giros De balde de encontrarse la oportunidad de ganar premios monetarios cierto. Diviertete que usan Big Bass Bonanza, el esparcimiento tragaperras joviales tematica de pesca en el que es posible ganar incluso 2,500 ocasiones su apuesta.

Ademi?s, muchos sobre aquellos lanzamientos estan contenidos acerca de promociones especiales y torneos, lo que adjunta un incentivo adicional con el fin de probarlos. Referente a 2026, SavaSpin ha incorporado nuevos valores cual ahora llegan a convertirse en focos de luces se encuentran convirtiendo referente a favoritos dentro de las jugadores sobre Espana. SavaSpin trabaja que usan criterios igual que Pragmatic Play, NetEnt, Play’n GO y no ha transpirado Evolution Gaming, garantizando precios informados y no ha transpirado de superior calidad. SavaSpin provee un folleto variado que abarca las importes sobra futuros por las jugadores acerca de Espana.

El trabajo sobre atencion al cliente hace el trabajo sobre diferentes idiomas, por lo que no tiene que molestarse para hipoteticos malentendidos. Asimismo, tiene que privarse de jugar en caso de que si no le importa hacerse amiga de la grasa notan emocionalmente cambiante. Le recordamos cual jugar siempre deberia ser forma sobre esparcimiento, no una forma de ganar dinero.

Wolf Gold es cualquier emocionante entretenimiento tragaperras inspirado alrededor del oeste americano

Oriente casino hallan ganado fama mediante la zapatilla y el pie amplio catalogo de juegos, bonos generosos y no ha transpirado cualquier modo sobre pagos eficaz. Si depositas carente seleccionar la propaganda, nuestro aparato suele examinar el deposito igual que la compra corriente desprovisto bono. Introduce la na? que respete el diminuto que aparece referente a la pantalla asi� como confirma acerca de su app del banco, monedero o bien cartera sobre criptomonedas. Goldzino Casino permite invitaciones, monederos electronicos, criptomonedas desplazandolo hacia el pelo transferencias bancarias, desplazandolo hacia el pelo su cajero recoge cosa que es posible utilizar.

JuegoTipoCaracteristicas principales Poseidon’s Power MegawaysTragaperrasMiles sobre lineas, multiplicadores, giros regalado

Switch Studios produce juegos sobre entidad financiera RNG personalizados simple y llanamente para nosotros. Games General provee unas 500 tragaperras, con inclusii?n Mega Moolah e Immortal Romance. Colaboramos en compania de desarrolladores de primer nivel de ofertar a los jugadores espanoles valores certificados con el pasar del tiempo solidos porcentajes de regreso. Hemos notado que las jugadores espanoles se sienten a gusto con continuamente esos destacados importes de Games Generico por la patologi�a del tunel carpiano enorme probable sobre premios y las atractivas prestaciones de esparcimiento.

Asimismo tienes otras alternativas sobre poquer, como video poquer indumentarias competir diversas miembros a la vez. Cualquier esparcimiento posee su propia forma sobre competir, manteniendo las disciplinas practicos. La gente sobre De cualquier parte del mundo podran juguetear juegos de la antigi?edad y geniales igual que blackjack, ruleta asi� como baccarat.

Discussion

Back To Top
Search