/*! 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 Podri�amos simplificarte an efectuarlo con el pasar del tiempo los limites sobre entretenimiento asentado, adonde es posible delimitar de que manera experimentas – InfoNile
skip to Main Content

Podri�amos simplificarte an efectuarlo con el pasar del tiempo los limites sobre entretenimiento asentado, adonde es posible delimitar de que manera experimentas

En Genesis Casino tambien puedes participar a las juegos sobre slot para impedir efectuar algun deposito desplazandolo hacia el pelo utilizar dinero conveniente. Siempre, Genesis Casino es una medio fantastica cual ofrece la gran disparidad sobre juegos, bonificaciones y promociones bonitos, magnifico atencion al consumidor desplazandolo hacia el pelo seguridad y licencias de primer nivel.

Lo tanto si quieres ingresar en el momento en que algun mr rex computador igual que empezando desde algun mecanismo celular, nuestro pagina web del casino Genesis se halla estructurado de una modo obvia para que no desvies lapso navegando por su puesto web. Recientemente deberian acabado el licencia con el fin de mostrar sus facilidades en Ciertas zonas de espana, asegurando serian cualquier camara regulado por Administracion Generico de Orden del Juego, pero me pone de mal rollo operando empezando desde nuestro ano 2018 del resto sobre zonas puesto que cuenta con la atribucion de Malta. Ya posee una pagina web afiliado acerca de Portugal, guarda atencion alrededor del tema sobre SEO, lo que lo llevo en la novedosa peripecia espanola. Sin embargo somos un galardonado asi� como identificado cirujano internacional, Genesis Casino han sabido adaptarse perfectamente a los aficiones sobre los jugadores espanoles. En todo caso, si tendri�as cualquier inconveniente alrededor juguetear o en la barra incluso antes de fabricar tu perfil, se puede consultar una seccion sobre preguntas, dentro del recuadro una buena interrogacion �?

Genesis Casino invariablemente han acuerdo de traerte entre la mejor habilidad en compania de sus juegos de bandada en internet, para felicidad razon colocamos entre el catalogo las definitivos aplicaciones sobre Evolution De cualquier parte del mundo. Estan especi�ficos acerca de juegos de banco igual que la ruleta, blackjack, baccarat y no ha transpirado poquer, con versiones de juegos en vivo y tambien slots sobre jackpots progresivos. Sin embargo, con mayoria para sucesos seguramente lo perfectamente recibas automaticamente una vez que te registres o en la barra realices un deposito.

Geremy posee bastantes anos especi�ficos sobre la fabrica de los juegos sobre casino

Si precisas resolver todo pregunta entretanto te encuentras apostando referente a Genesis casino online se podri? intentarlo mediante su celular, el chat en presto o el formulario disponible referente a el www. Respecto a mi opinion nuestro asistencia de servicio al usuario seri�a peor, nunca he acabado contactar para telefono, no he durado explicaciones via formulario y no ha transpirado nuestro buzon de termino de Genesis no me define cual haga uso nuestro chat para descifrar las dudas. El trabajo sobre ayuda al cliente de Genesis casino brinda distintas formas de contacto, incluso en telefonia, chat sobre presto, algun formulario de e-mail desplazandolo hacia el pelo la division sobre preguntas comprometidos.

Bono sobre inclusive 200� a los dos principales depositos y no ha transpirado 50 tiradas gratuitas de como novedad individuos. Ademas, la zapatilla y el pie propuesta de como novedad personas seri�a, de largo, una mas profusamente grande de el sector, ya que se podri? sacar nada menor que inclusive iv.000� adicional que usan las iv primerizos depositos. Nos esforzamos por proveer a las personas documentacion preciada sobre las casinos online fiables desplazandolo hacia el pelo legales referente a Espana.

Evaluando la patologi�a del tunel carpiano choque colectivo sobre las personas y no ha transpirado en sus mercados

Por ultimo, durante seccion sobre asistencia tambien es posible hallar los dudas de mayor solventes elaboradas por las personas. No leeras sobre como exigir las ganancias y no ha transpirado las informaciones no estaran fiables. Las casinos en linea tambien poseen algun na? de mas grande de juegos (?alguna 1000!), bajos asi� como altos limites de apuesta, anuncios sobre bonos extremadamente atractivo y no ha transpirado bastante. Aqui te damos la oportunidad de que nos transmitas todas tus cuestiones y preguntas por e-mail en -en internet.es indumentarias comentario individual en Twitter.

Dispone de los mas grandes juegos sobre casino gratis en Chile, sin tener cual depositar recursos cierto. Nos tomamos el esparcimiento muy en serio, por eso dedicamos varias ratos cada mensualidad a percibir los precios como novedad que llegan a las operadores. Nuestro lugar dispone de asistencia sobre ayuda al cliente positivo por mediacion de la patologi�a del tunel carpiano chat en vivo, que usan tiempos sobre respuesta cual promedian el minuto desplazandolo hacia el pelo vi�a.

Las casinos de gigantesco medida generalmente son sobra seguros, pues tienen beneficios altos que les permiten pagar todo tipo de margen, para la mas superior que sea. Si durante el desarrollo sobre resena sobre cualquier casino descubrimos que se sirve juegos provocados, le rebajamos una valoracion desplazandolo hacia el pelo advertimos a los usuarios. No obstante, si tu pregunta seri�a en caso de que los casinos manipulan los juegos con el fin de disfrutar sobre una mayor utilidad de su especificada, no nos referimos a nuestro supuesto.

Discussion

Back To Top
Search