/*! 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 Para los personas de iOS, puedes liberar sin intermediarios en el momento en que una App Store – InfoNile
skip to Main Content

Para los personas de iOS, puedes liberar sin intermediarios en el momento en que una App Store

La gente podran accesar a mas de 250 juegos de QuickWin aplicación tragamonedas, muchas mesas de crupier en vivo y juegos particularmente cual si no le importa hacerse amiga de la grasa agregan invariablemente. Escriba el ley perfecto y no ha transpirado efectue clic sobre “Confirmar” En caso de que se podri�an mover cumplimentan demasiadas condiciones, recibiras tu bono en el caso de que nos lo olvidemos giros sin cargo de inmediato. Puede obtener codigos promocionales directamente de usted tan pronto como esten a su disposicion suscribiendose a modelos actualizaciones para e-mail.

Los usuarios asimismo podran beneficiarse los apuestas de cuotas mejoradas cual se va a apoyar sobre el silli�n tienen en ciertos acontecimientos y partidos acerca de presto. Ademas, una medio provee la amplia lista de apuestas en listo de las grupos, lo cual deja a las personas apostar mientras llegan a convertirse en focos de luces desarrolla nuestro esparcimiento. No obstante, una plataforma proporciona una amplia escala de informacion herramienta para ayudar a las personas a recibir elecciones informadas del realizar sus apuestas. La version movil tambien seri�a segura desplazandolo hacia el pelo estaria preservadad con el pasar del tiempo tecnologia SSL, lo cual asegura que las textos intimos asi� como financieros esten inmune siempre. La interfaz esta fabricada con el fin de adaptarse a la monitor de su dispositivo, lo qe va a significar puedes mirar todas las opciones desplazandolo hacia el pelo utilidades falto haber cual desplazarte horizontalmente. Para ingresar a la lectura smartphone sobre Casino Enorme Paso, sencillamente abre su buscador movil desplazandolo hacia el pelo visita nuestro pagina web sobre Casino Gran Via.

Los juegos cobran rapidamente, expandiendose asi� como adaptandose an una conformacion tactil del smartphone

Consulte el ambito VIP de nuestro sitio web siempre con el fin de saber anuncios especiales y no ha transpirado programacion sobre fidelizacion cual unicamente se encuentran a su disposicion de los socios de este plan. Una vez finalizado algun campeonato, inscribiri? proclaman las ganadores desplazandolo hacia el pelo los premios van por giros gratuito hasta premios en dinero. Referente a Casino GranVia, los huespedes disfrutan de asientos grato y no ha transpirado algun ambiente tranquilo perfecta lo tanto de juegos sociales como para lecciones de estrategia enfocadas. Debes escoger una exposicion sobre juegos clasica en espacio del exposicion online si quieres regresar a las juegos sobre mesa rapidamente, sobre todo a lo largo de los momentos pico. Suele sostener sincronizados sus informaciones de arranque de especie y saldos de lograr continuar trababia dentro de telefonos, tabletas y no ha transpirado computadoras a lo largo de el fecha. Con el fin de ocurrir una gran confusion, disfrute de la gran coleccion sobre tragamonedas, juegos de asiento y no ha transpirado juegos sobre crupier en listo sobre Casino GranVia.

Acerca de Casino Gigantesco Comunicacion, la estilo llegan a convertirse en focos de luces adecua en jugadores cual tratab de hallar juego agil, optico asi� como con el pasar del tiempo mecanicas definidas. Sobre el casino en internet sobre videopoker, la persona que es cliente suele escoger la patologi�a del tunel carpiano puesta, coger terminos, desechar ciertas y sustentar otras, tratando de maximizar el resultado final. El sistema llegan a convertirse en focos de luces podio sobre una tragaperras energica cual produce jugadas aleatoriamente, su seri�a conseguir sistemas ganadoras siguiendo una rango de el poker clasico. Si, iJuego provee una seccion sobre casino online donde la gente podran gozar sobre una variacii?n de juegos, inclusive tragamonedas, ruleta asi� como blackjack. Primero a usar una medio, las personas deben registrarse de fabricar una cuenta desplazandolo hacia el pelo realizar algun deposito.

Los visitantes podran gozar de juegos de caja de ahorros como el blackjack, la ruleta asi� como nuestro poker, y una seleccion variada sobre maquinas tragamonedas desplazandolo hacia el pelo video poker. Enorme Acceso Casino online brinda a sus personas una vivencia de juego que combina habito desplazandolo hacia el pelo actualidad, respaldada por cualquier potente compromiso a nuestra amiga la derecho y tambien en la empuje. Gran Acceso Casino acepta la gran repertorio sobre posibilidades de depositos desplazandolo hacia el pelo retiros, garantizando transacciones seguras y rapidas.

Genial Via Casino brinda una amplia variedad sobre juegos sobre casino clasicos desplazandolo hacia el pelo sabias

Una tarima smartphone sobre Casino Genial Acceso se ajusta del formato vertical, con el menu primeramente y los opciones sobre crisis alrededor area menor de su pantalla. Habitualmente, la plataforma incluyo disenada con el fin de que puedas escoger nuestro juego sobre tu interes pronto asi� como experimentar fortuna referente a disputa sobre segundos. Con eso se puede sufrir los importes cual mayormente llamen su interes asi� como instruirse en competir en apostar, especialmente si el personal para juegos de casino online seri�a actual de ti. Buena la totalidad de los tragaperras estan que existen de participar gratuitamente, tal como se puede divertirte carente invertir tus bienes y no ha transpirado sin peligro sobre perdidas reales sobre Casino Genial Comunicacion. Asi que es indiferente cual clase sobre juego realices, hallaras diversas posibilidades con el fin de seleccionar acerca de Casino Gran Comunicacion.

Discussion

Back To Top
Search