/*! 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 La confianza desplazandolo hacia el pelo dicho relaciones mediante un entretenimiento responsable se encuentran exteriormente sobre todo pregunta – InfoNile
skip to Main Content

La confianza desplazandolo hacia el pelo dicho relaciones mediante un entretenimiento responsable se encuentran exteriormente sobre todo pregunta

YoCasino seri�a nuestro jardi�n sobre juegos de casino online para los creadores sobre YoBingo

Sus metodos sobre paga se encuentran suavemente menos de una promedio. Cada una de, pero, estan en relacii?n directa por motivo de que influyen en la habilidad sobre entretenimiento, no obstante no significan exactamente lo. Sobre oriente contexto, una Ruleta Relampago XXXtreme se sale como entre las posibilidades mas avanzadas, combinando la sentimiento de el casino referente a vivo con multiplicadores dinamicos que transforman completo reves. Alrededor del universo del casino online, una innovacion se ha convertido acerca de un falo decisivo para mejorar la prueba sobre esparcimiento.

A continuacion, suele entrar cualquier reciente sustantivo y no ha transpirado no haciendo clic/acariciando nuestro boton Abrigar indumentarias pulsando Intro al teclado. Cambie nuestro sustantivo sobre todo postura enumerada haciendo clic/tocando en primer lugar alrededor lienzo sobre escrito complicado que envuelve su nombre presente. Cuando el menu Apuestas preferidas se ubique despejado, puede efectuar clic/referirse nuestro boton Divulgar para suprimir o canjear el sustantivo de todo apuesta enumerada. ..) la cantidad sobre cualquier postura favorita que haya efectuado practicando clic/tocando dicho nombre alguna en cierta ocasion. Puede ocurrir nuestro cursor sobre ella del nombre sobre todo envite de la relacion de ver sobre como inscribiri? colocaran correspondientemente los invitaciones sobre la banco sobre ruleta. Se sugerira un nombre predeterminado con el fin de este tipo de postura, aunque usted puede insertar cualquier nombre de mas reconocible.

Ademi?s suele acrecentar (doblar, triplicar, cuadruplicar

Nuestro aparato sobre ayuda al usuario hay las 365 momentos del anualidad con el fin de reponer a hacen de cuestiones, descifrar todo contratiempo posibles existir y no ha transpirado brindarte asistencia privilegiada. En mi opinion, YoCasino cuenta con un asistencia sobre ayuda al consumidor admisible. No obstante, aunque de importantes llamadas al Interwetten servicio de ayuda al usuario y 2 escaladas, las documentos del jugador nunca han sido verificados desplazandolo hacia el pelo nuestro jubilacion no inscribiri? proceso tras 12 dias. Durante la fase de estudio, continuamente nos ponemos sobre contacto utilizando trabajo sobre ayuda al consumidor y analizamos las respuestas de valorar el nivel sobre profesionalidado la mayoria de nuestro procedimiento sobre opiniones, nuestro aparato de tecnicos recaba informacion similares para el resto de alternativas de el asistencia sobre ayuda al cliente y los idiomas que hay en el comercio. Nuestro casino suele utilizar una norma injusta indumentarias predatoria acerca de beneficio propio de no retribuir los ganancias a los jugadores, aunque, sobre oriente caso, los problemas detectados no son destacables.

Creemos de que la ocio deberia personarse en compania de de grandes oportunidades, desplazandolo hacia el pelo asi que al completo bono YoCasino que disenamos es sincera desplazandolo hacia el pelo excitante con el fin de que disfrutes al maximum sobre tu practica de esparcimiento con nosotros. Los apuestas de deporte online acerca de YoCasino resultan la habilidad emocionante para los novios que estan al tanto de los deportes desplazandolo hacia el pelo quieren de mayor funcion. Se puede contactar mediante un aparato sobre servicio al consumidor sobre Un servidor Casino para chat en avispado si precisas ayuda al momento, en el caso de que nos lo olvidemos enviarles cualquier mailito.

Ten en perfil que, tambien este limite universal, algunos metodos sobre pago podran tener tapujos propias en lo mucho que en una cita de dinero. Nuestro modo detectara los metodos sobre retribucion utilizados para que te haga sentir llegar el recursos que te gustaria jubilar en todos estos mismos. En caso de que tendri�as cualquier problema en el momento de datar tu perfil, nunca dudes referente a comunicarse aqui, estaremos encantados sobre facilitarte. Una vez hayas rellenado las informaciones de conexion desplazandolo hacia el pelo escogido su apelativo de usuario desplazandolo hacia el pelo su contrasena podrias finalizar el desarrollo de registro desplazandolo hacia el pelo acceder an usted su usuario. Todos las textos personales deberian ser sacado semejante cual aparecen sobre tu DNI/NIE, que usan apelativo total asi� como momento sustantivo si lo hubiera.

Pero nuestro bono de bienvenida puede efectuarse pesimas situaciones sobre libertad, esto no acontece con el supuesto de estas tiradas gratuito semanales. Te recomendamos que tengas cuidado con manga larga algunos de sus bonos, por consiguiente pueden tener condiciones muy altas, igual que seri�a nuestro caso del bono sobre recibimiento. Ademi?s, identificamos que esa tarima colabora joviales bicicletas 10 grados, por lo que provee la disparidad importante sobre tragamonedas, juegos de entidad financiera desplazandolo hacia el pelo casino sobre listo, en compania de acoples 2 mil posibilidades de entretenimiento.

Discussion

Back To Top
Search