/*! 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 Pros ? Contras ? Diversidad de mas sobre dos – InfoNile
skip to Main Content

Pros ? Contras ? Diversidad de mas sobre dos

Las metodologias de pago incorporan tarjeta sobre credito, Bizum, PayPal, Apple Pay y no ha transpirado transferencias bancarias

Actua con manga larga niveles sobre alta clase, dando cualquier folleto grande joviales slots, ruleta y no ha transpirado mesas de blackjack. 000 juegos Nunca tiene apuestas de deporte Bono de 50 tiradas regalado Promociones limitadas para personas serios Estrategias sobre remuneracion diferentes (Bizum, PaySafeCard) Una app smartphone guarda funciones limitadas Buscando probar algunos, destaco es invierno empuje y variedad, sin embargo nunca los novios operadores se fabrican con igual calidad ni situaciones.

Esto hace posible jugar en el momento en que su telefonia o pad, bien que usan iOS o en la barra Android, desprovisto descuidar clase con habilidad sobre entretenimiento. Aquellos hacen altas apuestas asi� como resultan muy exigentes, y no ha transpirado algun casino en internet de clase les brinda todo lo que piden. Os indicamos los mas seguros, con el pasar del tiempo disparidad de juegos, licencias acerca de regla asi� como todo ya explicadito con el fin de que no eches por tierra el lapso. Si os banda mas el casino, contamos con las superiores casinos online ideados confidencial. Asi que, muchos usuarios eligen casinos desprovisto atribucion que si permiten cripto pagos. Aunque, puedes cual ciertos casinos restrinjan algunas funciones o ingresos si perciben que te encuentras en la facultad prohibida por las terminos.

Casinia llegan a convertirse en focos de luces se coloca para ofrecer promociones semanales extremadamente generosas, incluso en bonos sobre deposito y giros sin cargo

Ademas, deben promociones semanales cual protegen nuestro amabilidad para los jugadores regulares en compania de recargas y no ha transpirado giros sin cargo adicionales. Cosa que discrepancia a Cazeus seri�a el angulos en la destreza de el cliente. Nuestro bono del 100% incluso �500 mayormente doscientas giros de balde no hablamos nuestro mas grande, pero las condiciones para liberarlo resultan suficientemente sofisticadas. En caso de que prefieres cualquier wagering sobra alcanzable, Cazeus ofrece 35x, bastante de mayor facil cual nuestro pasado. Pero la calidad de el folleto y la marcha de los retiros compensan con manga larga creces. Se utiliza, el wagering sobre 45x estuviese una cosa por encima de su promedio.

Asimismo de el bono de recibo, existen bonos por nobleza, por cumpleanos, promociones desplazandolo hacia el pelo recompensas de cada dia cual igualmente favorecen a ganar algunos euros ivibet casino bonificación adicional. En Genial Madrid Casino Online puedes colaborar acerca de acontecimientos periodicos indumentarias semanales desplazandolo hacia el pelo ganar hasta 500� referente a juegos sobre casinos con Playtech. Participar juegos de casualidad en internet para ganar dinero es nuestro inminente nivel de conmocion, no obstante igualmente de incumbencia. Expon tu supuesto de modo obvia, aportando pruebas asi� como asegurandote de efectuarse cumplido a los terminos del bono, metodos sobre paga asi� como plazos generados referente a la prediccion del casino. Por ejemplo, en caso de que en algun ano ganas un.000� y pierdes 700� en juegos de casino en internet para recursos conveniente, separado tributaras por las 300� sobre margen neto. Es algo cualquier pormenor muy importante si usas cartas prepago como PaysafeCard o en la barra Bizum, porque os veras necesario a tomar las ganancias mediante la transferencia del banco lenta que retrasara el recaudacion algunos momentos.

Betsson seri�a perfecta de jugadores cual solicitan confianza, un entorno internacional y no ha transpirado una gran lista de alternativas al casino en internet con manga larga dinero positivo. Es invierno atencion al cliente mediante chat acerca de presto, cabe la obvia seccion de preguntas asiduos, refuerzan la calidad del servicio. Sobre cuanto alrededor material, Betsson provee decenas sobre slots, juegos en preparado, blackjack, ruleta, juegos de entidad financiera y apuestas zapatillas de deporte. En relacion a los promociones, Gratogana provee bonos de admision, tiradas gratuito, desplazandolo hacia el pelo cualquier sistema de recompensas continuas con el fin de jugadores asiduos.

Tenemos miles de casinos online joviales dinero cierto que existen empezando por Argentina, pero unicamente un fajo cumple con las mas grandes salidas. Ademas, cuenta con una gran diversidad de estrategias de pago asi� como auxilio disponible 24/6.

Unicamente recomendamos sitios cual poseen licencias adecuadas de superiores confiables asi� como que cuentan con algun largo informe sobre ofrecer facilidades sobre calidad y operar sobre manera segura. Referente a las mas grandes casinos online que usan dinero favorable, cada pene colabora para asegurar cual su ruta resulte suave, por el momento de el registro hasta el jubilacion de tus fondos. La eleccion para mejores casinos joviales dinero eficaz sobre Espana tienen las licencias correcta, garantizando potenciales participar referente a hombres de modo fiable y judicial.

Discussion

Back To Top
Search