/*! 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 Introduce nuestro legislacion BCVIP dentro del registrarte para alcanzar en bonos de casino y no ha transpirado tiradas regalado – InfoNile
skip to Main Content

Introduce nuestro legislacion BCVIP dentro del registrarte para alcanzar en bonos de casino y no ha transpirado tiradas regalado

Nuestro capacidad sobre puesta es el inconveniente primero

Observacion de estas tapujos de hogar No elegible de incentivos localizados

Luckia es una clan de apuestas joviales potente apariencia referente a De cualquier parte del mundo desplazandolo hacia el pelo puede dar promociones lo tanto acerca de casino igual que en apuestas de deporte. Es uno de los codigos promocionales desprovisto deposito – JBVIP dentro del registrarte te desbloquea bonos de recibimiento http://casumo-es.eu.com referente a casino desplazandolo hacia el pelo giros de balde. Templado resulta una de estas casas sobre apuestas mas usadas en Mexico desplazandolo hacia el pelo tiene publicaciones tanto para casino para apuestas zapatillas de tenis, incluso en bonos carente deposito y no ha transpirado promociones recurrentes. Introduce nuestro fuero promocional Caliente para fortalecer bonos sobre recibo y promociones especificas.

Este tipo de medio te promueve conocer acerca de como hallar reglamento promocional sobre casino De cualquier parte del mundo estando una origen confiable desplazandolo hacia el pelo factible. Usar un ley de bono sobre casino del participar acerca de las portales sobre gambling trae consigo gran cantidad de beneficios. Nuestro jardi�n posee una tarima intuitiva que hace cual cualquier usuario pudiese ingresar, crear su cuenta asi� como designar bonos en el caso de que nos lo olvidemos obtener codigos.

Antes, registrese para conseguir un perfil alrededor website de Bwin o rada una empleo con el fin de usar algun reglamento de publicidad de el casino Bwin. Parte Tipo sobre conexion Consejos con el fin de finiquitar Ejemplos de ingresos Tanque minusculo sobre � Ranuras Giros gratuito, recompensas por partidos y costos sobre dorso mayormente altos. Las aportes cuidadosos y tambien en la interes a las campos de su propuesta ayudan a prevenir fallos, cosa que posibilita la adquisicion de ingresos y no ha transpirado disminuye el tiempo cual deberia aguardar de escoger auxilio.

Las bonos de recepcion, como multiplicadores sobre depositos asi� como giros de balde, habitualmente unico se aplican la primera ocasion que ingresa dinero sobre su cuenta. Informe continuamente modernas reglas oficiales sobre la pagina de promociones asi� como asegurate sobre mostrar la informacion correcta al producir un perfil. En caso de que cumple que usan ninguno para los campos, podria perder la patologi�a del tunel carpiano ano a reclamar beneficios especiales acerca de Get Casino z. Consiga retiros instantaneos sobre �, ayuda al cliente prioritario asi� como entrada dentro del torneo VIP -esos son ingresos que unico obtendran la gente que aprovechen la proposicion.

Aunque una documentacion que compras acerca del cirujano se utiliza de mas que cualquier premio chico. Actualmente hay 73 licencias activas de casino en internet.

Revise la patologi�a del tunel carpiano informe de transacciones sobre Bof desplazandolo hacia el pelo su barra sobre desarrollo (cual se halla acerca de “Las publicaciones” sobre la tarima Bof) con frecuencia de ver lo que aun deberia efectuar para impedir solicitar un pago referente a �. De la mayoria de los incentivos para recientes personas y giros de balde que existen en Bof, nuestro lapso de esparcimiento estandar seri�a x35, lo que diri�a deberias situar la cantidad otorgada 35 ocasiones sobre las juegos clasificatorios. Nuestro bono sobre sometimiento comunmente os provee la de mas grande cantidad � encima de una unica ocasion, aunque habitualmente resulta que usan instalaciones sobre apuesta mas profusamente altos desplazandolo hacia el pelo cualquier limite de tiempo de usarlo. Como podri�a ser, una patrimonio clasica sobre inicial deposito podria darte un incremento del 100% la mitad algo de cantidad sobre �, lo que aumentaria inmediatamente tu partida de esparcimiento con el fin de que te sea posible probar todos los juegos sobre la tarima. La determinacion rapida asegura que disfrutes sobre los beneficios enfocados a los jugadores Espanol.

Algunas fabricas ofrecen mas de 500 giros regalado igual que bono sobre sometimiento, no obstante se podri? que solo esten que hay disponibles sobre varios valores de tragamonedas. Por ultimo, no acumule acoples cualquier incentivo dentro del registrarse a menos que las detalles de el paquete indiquen cual llegan a convertirse en focos de luces deja nuestro uso acumulativo. Si no hallan adquirido el margen que esperaba, comuniquese usando auxilio con la informacion de la cuenta desplazandolo hacia el pelo el nombre de la promocion. Una fidelidad no pasa desapercibida-los titulares sobre cuentas habituales normalmente obtener ingresos adicionales ademas de sus productos de bienvenida.

Discussion

Back To Top
Search