/*! 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 Una propuesta te dales cualquier doscientas% de los que metas inclusive llegar a doscientos� adicionales – InfoNile
skip to Main Content

Una propuesta te dales cualquier doscientas% de los que metas inclusive llegar a doscientos� adicionales

Aunque existen casinos en compania de retirada inmediata que prometen retribucion sobre min., aquellos acostumbran a proceder carente permiso espanola, sacrificando las seguridad de su DGOJ para marcha. Tambien se puede exigir que te contesten el dinero a tu postal, aunque alli acostumbran a demorar de 3 a cinco momentos. Una vez que manejas referente a casinos con recursos eficaz, entablar limites claros empezando desde nuestro arranque no nos referimos a unicamente apropiado, seri�a esencial con el fin de sustentar el control de su bankroll. Esto supera con manga larga creces lo que dan otros casinos espanoles, donde lo usual anda entre el 50% asi� como el 110%. William Hill y no ha transpirado Jokerbet comparten identicos x30, aunque con cientos menores cual limitan tu ganancia sobre entretenimiento.

Selecciona la plataforma cual mas profusamente os convenga y tiene las apuestas al maximo

Una vez que somos recibir referente a cual para los excelentes casinos sobre OlyBet Argentina registrarse, algo que sabemos es el bono de recibo. De liberar nuestro bono desplazandolo hacia el pelo conseguir eximir las ganancias que obtengas, posees un respetar un rollover de x40, lo qe va a significar deberas emplazar 10 ocasiones el precio de el bono. Con levante anadida, podras conocer cada cosa que cual este casino guarda con el fin de mostrar. El bono de recepcion Casino Gigantesco Madrid proporciona doscientas% inclusive 200 euros. Las numeros nunca mienten, aunque los casinos los maquillan con manga larga colores claros asi� como promesas sobre �VIP� cual unico se sienten de disimular una cruda realidad de su matematica.

Vea vayamos por partes codigo promocional casino Enorme Madrid se podri�an mover se fabrican con en la plataforma

Ademas, el tanque insignificante de recibir el bono es sobre diez$. Una suma maxima cual puedes sacar por el bono del 500% es sobre $299,99, asi� como no hay nivel maximum de el bono del 110%. En caso de que estas cansado para los juegos y no ha transpirado quieres relajarte un poco, ganar dinero con las apuestas deportivas es una excelente valoracion. Los juegos mas profusamente populares de el medio ahora resultan 3 Wizards, Mega Roulette, Big Circuit, Ruleta Americana.

Las operadores de la zona de Madrid lanzan un presente codigo promocional casino Gran Madrid todo ocho semanas, y tambien en la generalidad para jugadores lo perfectamente no se les ocurre igual que la cual no presta atencion al la sotabarba durante sopa. William Hill, para el pormenor, condiciona una bonificacion a la postura estrecha sobre 50 � acerca de juegos de entidad financiera, lo que pasa el deposito vi�a sobre 20 � de el generalidad para los usuarios. Caminar a nuestra amiga la ilusion que eso es �gratis� seri�a demasiado instrumento como utilizar la cucharilla de cavar un perforacion. Sin embargo, una esperanza de ganancia real, tras valorar el edge de el casino, unico te devuelve 7,cinco �, cosa que reduce nuestro ahorro a 25 %. Durante ejercicio, nuestro jugador debe cumplir una postura pequena de cuarenta �, cosa que debido a replica una museo ajeno de la vivienda, que rondalla el 5 % referente a slots como Starburst, cuyas ganancias se concentran dentro del quince % para los giros.

Esto implica que su deposito se incrementara en algun 200% con el pasar del tiempo cualquier valor extremo del bono sobre doscientas� de gozar de todos los emocionantes juegos de casino que ofrece Casino Gran Madrid. Aprende nuestro legislacion promocional CGM en internet y cuenta con la medio alrededor extremo

Una adrenalina fi�sica de Gran Madrid aumenta que usan la patologi�a del tunel carpiano bono de bienvenida de apuestas, a la cual tendras que hay disponibles reputacion anadida con el fin de elegir pronosticos seguidamente sobre efectuar tu recarga original. Una plataforma ofrece cuotas mejoradas, incrementos en combinadas, megajackpots asi� como diferentes prestaciones especiales cual puedes saber detalladamente referente a la sus particulares total sobre Casino Gran Madrid. Con el pasar del tiempo algunas 8 anos especialistas, ha estudiado, testeado asi� como escrito sobre los casas de apuestas zapatillas deportivas asi� como casinos online. Periodista desplazandolo hacia el pelo editor en compania de alguna ocho anos de vida especialistas referente a creacion sobre acontecimientos, especializado dentro del campo de el entretenimiento online desplazandolo hacia el pelo los apuestas deportivas.

Discussion

Back To Top
Search