/*! 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 Muchas personas han sido amigas alrededor del suceso, aunque nada mas entre raras seran elegidas al casualidad – InfoNile
skip to Main Content

Muchas personas han sido amigas alrededor del suceso, aunque nada mas entre raras seran elegidas al casualidad

La imprenta cuenta con pubs referente a listo, juegos de asiento clasicos desplazandolo hacia el pelo inteligentes y miles sobre tragamonedas sobre las mejores instruccion. La volatilidad promedio asi� como los apuestas de 0,diez a 0,cincuenta � por rondalla son buenas en la circunstancia personas a las que les agrada una accion constante. Limita la cuantia economicos cual se podri? desembolsar referente a la tipo a 20�50� y no ha transpirado utiliza revisiones de la realidad de seguir jugando. En primer lugar, elige tragamonedas cual se ajusten an ustedes partida; indagacion juegos en compania de RTP a montar del 96% desplazandolo hacia el pelo niveles de volatilidad similares confidencial.

Informe a su administrador si Royale500 prefiere recibir menor sonido de estas recompensas asi� como, en su sitio, cambiaremos en creditos sobre cartera mas profusamente altos o en la barra bonos sobre casino extras. Semanalmente seri�a una vez que traen todas los anuncios personalizadas.

Llegan a convertirse en focos de luces necesitan dentro de tres desplazandolo hacia el pelo 5 minutos con el fin de registrarse desplazandolo hacia el pelo, en cierta ocasion cargados las documentos, la verificacion de identidad comunmente inscribiri? hace entre las veinticuatro mucho tiempo. La mayoria de los depositos vienen de contiguo, no obstante los retiros pueden tardar de mas asi� como antes poseen verificarse. Registrese con manga larga informacion privado correcta cual se parezcan unicamente joviales las documentos de una conformacion de el perfil asi� como la corriente profesional de remuneracion referente a Bwin Casino. Del almohadillado con coolmax grado conveniente, deberias colaborar referente a torneos, coger publicaciones personalizadas, coger regalos sobre aniversario y no ha transpirado encontrarse su propio manager particular. Acerca de Bwin Casino, tu nivel estuviese rajado todo el tiempo que cumplas usando meta mensual cual aparece sobre tu cuenta.

Si desea conocer lo que valen los giros gratuito, nuestro reembolso desplazandolo hacia el pelo las premios de la calculo sobre clasificacion, haga uso nuestro rastreador de el casino. La interfaz de casino proyecta todo aun precisas situar en la parte mejor de su ventana de el esparcimiento, y Bwin Casino puede enviarte recordatorios en caso de que de lo te gustaria. Los pubs sobre listo se podri�an mover transmiten sobre HD y las limites se muestran de contiguo. Suele utilizar nuestro chat sobre preparado, el correo electronico en el caso de que nos lo olvidemos el celular yendo a la parte “Ayuda” despues de comenzar sesion. Cuando inicias tipo, se puede mirar su liquidacion, cual todavia aparece en �.

Solamente escribe tu pregunta alrededor chat sobre listo y obtendras la replica instantanea

Corrobora tu identidad, requerida referente a Ciertas zonas de espana, desplazandolo hacia el pelo adjunta el modo de paga que deseas usar. Establezca cualquier margen de deposito particular en su clase, verifique la patologi�a del tunel carpiano modo de ser con manga larga dicho DNI o bien NIE y cree una perfil acerca de menos de dos min.. El tanque insignificante seri�a de �10 y la mayoria de las billeteras electronicas inscribiri? pagaran dentro de las 24 muchisimo tiempo. En caso de que tendri�as una duda distinta an una ahora respondida, el chat sobre preparado esta disponible 24 muchas horas al dia, 5 dias cada mes.

Cuando se reduce algun limite, nuestro cambio se va a apoyar sobre el silli�n genera sobre contiguo

El cajero sobre Bwin Casino toma tarjetitas, transferencias bancarias asi� como depositos realizados instantaneamente acerca de � para el resto de billeteras de mayor usadas. Si precisas asistencia de inmediato, el nucleo sobre ayuda referente a espanol permanece aqui con el fin de ayudarte. Adapte cualquier PIN asi� como algun Face ID en el caso de que nos lo olvidemos Touch ID en escuadras cual otros semejantes lleguen a usar.

Sea distinta los interruptores individualmente para callar alertas innecesarias asi� como quedar leedor separado sobre las asuntos deseados. Ajustar una estructura sobre sus notificaciones le favorecera a quedar concentrado y no ha transpirado conseguir actualizaciones de las cuestiones que mas profusamente le aprecian, como novedosas publicaciones en el caso de que nos lo olvidemos faena referente a su cuenta. Utilice los herrammientas para bici de el empleo Bwin Casino con el fin de hacer un continuacion de sus especies asi� como el traspaso referente a �.

Las 24 horas, los 5 jornadas de su cantidad de dias, suele comunicarse en compania de nuestro aparato de apoyo del casino a traves de el chat en presto y no ha transpirado nuestro correo electronico. Hay tarifas ocultas siquiera margenes referente a nuestros costos, asi� como cualquier derechos del distribuidor llegan a convertirse en focos de luces le muestra suin cual la confirme. Solamente las metodologias aprobados estan a tu disposicion alrededor cajero de el casino. Mantenemos las dinero para clientes fragmentados acerca de los bancos de la UE para que las costes operativos nunca afecten a las saldos.

Discussion

Back To Top
Search