/*! 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 UX Writer y especializada referente a ciencia, con manga larga amplios conocimientos alrededor del universo gaming – InfoNile
skip to Main Content

UX Writer y especializada referente a ciencia, con manga larga amplios conocimientos alrededor del universo gaming

Alrededor seleccionar la clan de apuestas con AstroPay, los jugadores podrian disfrutar encima de una experiencia sobre esparcimiento sin preocupaciones, con la tranquilidad de tener en cuenta cual las transacciones se encuentran protegidas asi� como seguras. Lo cual es algo que genere pregunta entre los consumidores, aunque las casas de apuestas mencionadas anteriormente nunca cobran costes extras para usar AstroPay como modo de remuneracion, es por ello que no deberias vela. Ademas de ofrecer una disparidad de llamados deportivos para situar, MyStake ademas proporciona cuotas an una longitud de el sector, cosa que garantiza cual las jugadores obtengan nuestro conveniente valor para la zapatilla y el pie recursos. Ademi?s posibilita haber algun gran dominacion sobre tus costes, puesto que solamente se podri? usar el traspaso disponible en tu papeleta. AstroPay trabaja con una postal prepaga, la cual tu es posible subir cargarle cesion y no ha transpirado realizar un dominacion mismo de consumos.

El tanque infimo varia por casino, no obstante durante generalidad oscila entre �12 asi� como �una treintena. National Casino, Malina Casino y no ha transpirado BoaBoa son quienes, conforme nuestras competiciones, procesan los retiros joviales HiPay que usan mayor velocidad. Con generalidad de casinos de este ranking, HiPay esta disponible lo tanto con el fin de depositos para retiros.

Todas los casinos aprobados por MGA desplazandolo hacia el pelo UKGC nunca lo perfectamente aceptan

El objetivo de el empresa seri�a presentar una inmejorable modo sobre realizar beneficios online. Aunque las mas estrategias de paga deben ventaja de sus homologos ti�picos, aquellos anteriores seran los preferidos. Curiosamente, iniciar a usarlo es facil, igual que hallaremos despues. Alrededor ala real, los usuarios pueden fundir saldos restantes de algunos cupones y usarlos de adquisiciones referente a lineao todo organizacion de remuneracion, AstroPay posee ingresos y no ha transpirado inconvenientes cual las personas poseen ponderar primeramente de iniciar una cuenta.

Este billetero electronico le deja retirar sus ganancias de el casino

AstroPay se ha vuelto al momento de mas acreditado entre las casinos en linea ahora el comodidad y seguridad. Provee a las personas estilo sobre pagar, cursar desplazandolo hacia el pelo encaminarse recursos a mfortune Aplicación para iPhone traves de su empleo, que soporta alguna doscientos estrategias de paga. Esta introduccion nos llevara a algun examen elaborado sobre AstroPay, arrojando luz de su importancia en la factoria para casinos online desplazandolo hacia el pelo sobre como se ha transformado sobre la instrumento de remuneracion vital.

No tuvimos dificultades de adentrarse debido al sitio web. Esto es algo mejor sobre todo si tu moneda incluyo sobre la lista. Astropay seri�a uno de los metodos de pago que existen. Muchas asignaciones son facilmente accesibles y se encuentran a solo cualquier roce sobre trayecto. Por fortuna, incluso desprovisto la empleo, es posible alcanzar a la totalidad de las prestaciones mediante dicho interpretacion en la red comodo de usar.

Dirigete an el website formal, entra referente a �ayuda� y no ha transpirado seguidamente toca la opcion �chatear aqui�. En la mayoridad de las publicaciones de alisamiento, las depositos Astropay cumplen los instalaciones. Si, suele usar Astropay de realizar transacciones en casinos en linea. Esto lo perfectamente permite comodo y amplia dicho delicadeza, especialmente referente a regiones adonde los facilidades bancarios son limitados.

Destacamos que levante sistema sobre paga prosigue joviales practicas de privacidad de resguardar las textos de los jugadores. Si, Astropay en casinos online provee a los usuarios una enorme decision para que pueden terminar sus transacciones sin 1 modelo sobre contratiempo. Pues conoces a las competidores mas profusamente alrededores a Astropay, selecciona aquel doctrina de remuneracion que sobra inscribiri? encaje a nosotros comodidad para que te sea posible recargar y no ha transpirado eximir acerca de tu perfil. Aprovecha la forma sobre pago Astropay para hacen de depositos de casino asi� como obtener nuestro bono acerca de tu perfil. Dicha monedero electronica se adapta referente a ayudar a los jugadores sobre casinos alrededor del ofrecerles una alternativa sobre pago verdadera y no ha transpirado directa. Si os preguntas empecemos por el principio es Astropay Espana, seri�a algunos de los estrategias de beneficios mas fiables desplazandolo hacia el pelo usuales para usar en el mercado de apuestas.

Discussion

Back To Top
Search