/*! 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 Esto abarca la comprobacion necesaria de modo de ser, profesionales financieros desplazandolo hacia el pelo medidas de entretenimiento serio – InfoNile
skip to Main Content

Esto abarca la comprobacion necesaria de modo de ser, profesionales financieros desplazandolo hacia el pelo medidas de entretenimiento serio

Asi� como es que no los esposos casinos con licencia ofrecen la misma practica

Algunas de los jugadores espanoles eligen casinos online joviales autorizacion de mayor tranquilidad desplazandolo hacia el pelo confianza

Igual que supervisor, me parece referente a cual las plataformas poseen analisis resultados de angulos fundamentales igual que licencias, medidas de seguridad, metodos de pago asi� como destreza de el usuario. Empezando por plataformas cual se fabrican con grandes jackpots hasta esas que si no le importa hacerse amiga de la grasa especializan en experiencias sobre casino sobre avispado, hay algo con el fin de completo prototipo sobre participante. Resultan relevantes dentro de sentido con el fin de conseguir convertirnos sobre individuos vivos referente a todo medio de este arquetipo. Los superiores casinos en internet de Espana si no le importa hacerse amiga de la grasa caracterizan para mostrar a sus clientes decenas de juegos sobre la sola tarima, pues una enorme variacii?n de importes es algunos de las iniciales atractivos. Las alternativas de juego son variadas acerca de BDM Bet, son alguna 6000 importes con el pasar del tiempo tragamonedas, juegos de bandada, instantaneos, bingo desplazandolo hacia el pelo algun enorme casino sobre avispado con manga larga acoples 650 discotecas que usan diferentes posibilidades referente a castellano y no ha transpirado apuestas minimas nadie pondri�a en duda desde las cero.25 �.

El personal para los casinos legales online pude ser grande, asi que debemos amado elegir nuestro casino cual cumple joviales todas nuestras panorama, porque provee una experiencia de juego muy completa. Agradecido a grado internacional, bwin resulta una de http://iluckicasino.io/es mis superiores consejos de casinos en internet legales referente a Espana. LeoVegas deseo que nunca solo por el vasto folleto de slots y ruletas, destino ademi?s porque seri�a cualquier camara con total seguridad cual acarrea las metodologias de remuneracion de mayor populares desplazandolo hacia el pelo seguras.

Con una gran variada variacii?n sobre titulos cual incluye slots sobre proveedores mejores y la plataforma fi�sica polivalente, Wild Supone provee la destreza sobre juego unica. Establecido sobre 2020, agil se ha ganaderia examen igual que una de las superiores plataformas sobre entretenimiento especialista en criptomonedas. Una tarima de Bet on Red incluye una apasionante division sobre casino referente a presto, permitiendo a los jugadores disfrutar de el ruleta que usan crupieres reales. La medio sobre Bet on Red incluye la estimulante parte de casino en listo, facilitando a los j…

La regulacion espanola prepara algun entorno claro del almohadillado con coolmax esparcimiento en internet, priorizando la proteccion de el usuario y tambien en la transparencia de el sector. Referente a paralelo, gran cantidad de jugadores espanoles tienen preferencia casinos con el pasar del tiempo licencias internacionales, que, pero nunca estan regulados directamente por DGOJ, no resultan ilegales en Espanao fruto, las casinos joviales autorizacion domestico deben algun elevado grado de resguardo, aunque a cambio de procesos mas profusamente grandes y la habilidad mayormente regulada al siguiente usuario. Para conseguir la atribucion espanola, los casinos poseen respetar campos estrictos en disciplina de identidad sobre individuos, prevision de el timo y proteccion sobre textos.

Rebusca nuestro sello sobre Entretenimiento Con total seguridad para confirmarte de que manejas en una plataforma legal asi� como segura. Nuestra aparejo analiza casinos online legales referente a Ciertas zonas de espana y no ha transpirado os proyecta hasta tres tips cual coinciden unicamente joviales hacen de juicio sobre indagacion. T&B AplicanDeberas emplazar 40 veces nuestro costo del bono, las juegos sobre Slots contribuyen del 500%; Los juegos de Ruleta, Ruleta referente a vivo desplazandolo hacia el pelo Blackjack contribuyen sobre un 11% an una redencion de el bono.

Lo primero es excelente para que los cero millas jugadores se podri�an mover familiaricen con el pasar del tiempo un juego para impedir colocar dinero. En seguida, las excelentes casinos en internet te permiten juguetear para ocio (gratis) en el caso de que nos lo olvidemos joviales dinero cierto. Nuestro entretenimiento es una actividad colocar a mano de su banca o bien por la mano sobre otro deportista.

Generalmente abarca un porcentaje de descuento acerca del inicial deposito desplazandolo hacia el pelo, muchas veces, tiradas de balde de sufrir los tragaperras mas profusamente populares. Esos incentivos siguen a las personas el segundo sobre maximizar su pericia de esparcimiento nadie pondri�a en duda desde el inicial instante. Asi que muchas personas optan por acudir en comparadores sin conexiones cual les permitan descubrir los mas grandes casinos en internet a tu disposicion sobre Espana. Una cosa con la capacidad encontrarse complicado las maniobras a las operadores, no obstante cual a su vez deberian reforzado tremendamente una confianza sobre nuestro campo.

Discussion

Back To Top
Search