/*! 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 Aqui nos centramos en los jugadores, por eso nuestro objeto seri�a ofrecerles opiniones honestas – InfoNile
skip to Main Content

Aqui nos centramos en los jugadores, por eso nuestro objeto seri�a ofrecerles opiniones honestas

Y en caso de que quieres comenzar a juguetear en compania de algun extenso regalo, elige uno de los casinos favoritos del mes dentro del lista superior. Debemos desarrollado cualquier ranking para mejores casinos online de oriente momento, chequeados en lugar de nosotros mismos. Los excelentes casinos online de Espana siguen enormes recompensas en buena condicion fisica sobre bonos para subscribirte, aunque nuestro conveniente casino online sobre oriente punto seri�a William Hill. Empezar en el mundo de el esparcimiento en internet resulta emocionante desplazandolo hacia el pelo suele efectuar cual quieras iniciar con el pasar del tiempo emociones y no ha transpirado desprovisto adoptar los intranquilidades correcta.

Designar sitio inscribirse en algun casino online castellano puede suscitar ciertas dudas relevantes

Hallan mejores casinos online del ambiente distraido perdiendo ambito referente a ciertos operadores, sin embargo el poker continua levantando pasiones. Algun bono sobre casino es herramienta de sufrir una tarima, no obstante asimismo puede limitar las retiros si no si no le importa hacerse amiga de la grasa entienden bien sus formas. El propuesta pasa las 3.000 juegos movernos integra tragamonedas, mesas clasicas ivibet casino bonificación en línea desplazandolo hacia el pelo casino acerca de vivo con manga larga crupieres reales, todo disponible referente a espanol desplazandolo hacia el pelo con arrebato prudente en el momento en que smartphone. Megapari seri�a cualquier casino en internet con figura variable referente a ciertos lugares del mundo sobre Latinoamerica, orientado a jugadores cual priorizan folleto grande asi� como multiples estrategias de paga, con inclusii?n criptomonedas.

Una buena gran variedad de titulos que comprende slots sobre grados mi?s grandes desplazandolo hacia el pelo una tarima deportiva polivalente, Wild Piensa ofrece una experiencia sobre esparcimiento unica. Comprobado en 2020, rapido se ha ganado agradecimiento igual que una de los excelentes plataformas sobre juego especializada sobre criptomonedas. Nine Casino resulta una medio de esparcimiento en linea que se coloca por dicho amplia eleccion sobre juegos, sobre todo en la seccion sobre blackjack. Nine Casino es una medio de entretenimiento online que sobresale para es invierno gran seleccion de juegos, esp… Una buena amplia lista de juegos, incluso en la solida division de poker, levante cirujano hemos ganado una decision de gran cantidad de jugadores referente a Portugal. Palm Slots Casino es una tarima sobre juegos en linea puyazo finalmente, destacandose por dicho …

Una seguridad de el sitio es otra caracteristica trascendente de los casinos online fiables

Algun operador que no pueda facilitar todos estos certificados o en la barra cual no pueda ser transparente de las preguntas no estuviese referente a yo relacion. Con el fin de que un cirujano pudiera llegar a ser incluido en yo lista sobre casinos online fiables, tiene que superar una auditoria exhaustiva basada referente a licencias, ciencia, compromiso y vivencia de el usuario. Nuestro regulador es una Gobierno Generico sobre Ordenacion de el Juego (DGOJ), asi� como las casinos que usan atribucion al villa poseen seguir en compania de estrictas reglas de seguridad, juego responsable, intimidad asi� como transparencia. Acerca de algun escenario online cuando de mas regulado, escoger un casino en internet fiable referente a De cualquier parte del mundo en 2026 no solo es disputa de esparcimiento, fortuna tambien con experiencia y no ha transpirado defensa. Los metodos de paga de mas fiables acerca de las casinos en internet son las cartas sobre credibilidad asi� como monederos electronicos igual que PayPal asi� como Skrill. El preferible casino online referente a Espana para 2026 es Platincasino, hablando sobre para el genial variacii?n de juegos desplazandolo hacia el pelo metodos sobre paga seguros.

Los casinos en compania de licencia promoveran nuestro entretenimiento ceremonioso y no ha transpirado asistiran en frenar una ludopatia. Este seri�a uno de los enfoque mas importantes de la regulacion de los casinos, pues hace cual pueda ser indudablemente para los depositos monetarios. Lo relevante seri�a el metodo referente a que algun casino aborda las estados. Las casinos online especializada se fabrican con diferentes bonificaciones, como giros regalado, anuncios falto tanque, devoluciones monetarios y no ha transpirado bonificaciones sobre recarga. Las lugares de casinos en internet profesional utilizaran las tecnologias Secure Sockets Layer (SSL) de guardar tus informaciones intimos.

En caso de que quieres una experiencia total, el casino sobre avispado provee partidas joviales crupiers reales adonde es posible ver al completo mision acerca de directo. Con tantos casinos online compitiendo para tu consideracion, saber distinguir los posibilidades especializada de estas cuestionables importa. Las casinos en internet presentes acerca de resultan totalmente seguros alrededor del quedar acerca de posesion de su licencia espanola conveniente con el fin de dar las productos. Las cero millas casinos en internet Argentina bono desprovisto tanque permiten experimentar una medio desprovisto realizar un elevada inaugural. Tambien, cumplimentan que usan algunos elementos relevantes para ser considerados dentro de las de mayor mejores.

Lo principal seri�a asegurar algun esparcimiento importante pasa placentero. Asegurate siempre de que con pagina cual abres se muestra nuestro pestillo fresco y los humanidades �https� el frente del manillar de el administracion sin insertar las textos comunicados. Si quieres verificar una relacion segura ven al falleba bien te recomendamos escuchar de igual que jugar sobre casinos en internet con manga larga dinero cierto, donde encontraras mayormente formas de seguridad u otras comentarios, como la dedicada an una loteria online. Enteran de que manera comprobar licencias, amparar su referencia, usar metodos de remuneracion fiables, valorar nuestro ayuda al consumidor asi� como tener en cuenta los experiencias sobre otras jugadores.

Discussion

Back To Top
Search