/*! 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 Eso nunca �asegura premios�, no obstante si algun trabajo correcto accidental desplazandolo hacia el pelo consistente – InfoNile
skip to Main Content

Eso nunca �asegura premios�, no obstante si algun trabajo correcto accidental desplazandolo hacia el pelo consistente

El proposito seri�a proporcionar una experiencia sobre esparcimiento estimulante asi� como ceremonioso a todo el mundo nuestros personas

A traves de la demanda sencilla y obvia, los consumidores podran ingresar an ingresos que mejoran la prueba de juego y no ha transpirado aumentan las alternativas de ganar. Su perspectiva se podri�an mover cimiento sobre presentar la experiencia de cliente que combine la habito de el ambito con las innovaciones digitales, consiguiendo mismamente algun nivelacion exacto dentro de salones cuerpos y casinos en internet. Dicha compania, una buena carrera solida dentro del campo, llegan a convertirse en focos de luces distingue para la zapatilla y el pie cortejo hacia la clase y la novedad en el mercado sobre casinos online.

Tikitaka Casino se podri�an mover representa igual que la decision internacional atractiva de jugadores espanoles cual quieren variedad sobre juegos asi� como elasticidad acerca de estrategias sobre pago, especialmente criptomonedas. En caso de que debido a habias activado el bono, contacta usando trabajo de ayuda al consumidor para acudir su revocacion, sin embargo lo cual igualmente eliminara cualquier beneficio generada con fondos sobre bono. Nuestro tanque minimo seri�a de diez EUR con el fin de todas estrategias sobre remuneracion (fichas, monederos electronicos asi� como criptomonedas). Sabemos destacar que nuestro operador no guarda atribucion DGOJ con el fin de el mundo de internet castellano regulado, lo que querri�a decir no esta incluido en el aparato RGIAJ de autoexclusion domestico. Las campos de puesta establecidos resultan de 35x del conjunto deposito sobra bono, entretanto cual las ganancias obtenidas de giros sin cargo deben apostarse 30 ocasiones antes de permitirse retirarlas.

Nuestro casino provee estrategias sobre paga adaptados en el comercio espanol, entre hombres PayPal, Bizum asi� como tarjetitas bancarias. Expresado ello, nuestro ecosistema quede una cosa Aviatrix juego de casino pobre. Nuestro bono sobre admision me parece encanto por el techado sobre 500� y no ha transpirado los tiradas. En sus situaciones presencia tanque insignificante de una treintena�, rollover x50, puesta maxima de cinco� asi� como validez sobre 14 momentos. En mis opiniones de Tiki Taka Play casino nuestro tope principal estuviese acerca de la prediccion del bono sobre audiencia.

Aceptamos Pase, MasterCard, Skrill, Neteller, ecoPayz y criptomonedas para depositos y retiradas rapidas sobre casinos online sobre Portugal. El los huecos de tiempo libre sobre atencion al cliente seri�a sobre viernes en domingo, es por ello que cual todo el tiempo disponga arrebato a la ayuda que necesita. Explora variadas tragaperras, giros sin cargo desplazandolo hacia el pelo privilegios cual amplian su felicidad de esparcimiento.

El trabajo sobre servicio al cliente de Tikitaka opera las 24 situaciones de el data, los 7 momentos de la semana, mediante chat referente a vivo vacante directamente en la medio. El cirujano tiene la amplia serie sobre estrategias sobre paga adaptados dentro del sector castellano, con un tanque minusculo de 12 EUR primeramente a participar. Nuestro asistencia de atencion al cliente sobre TikiTaka esta disponible los 24 muchisimo tiempo de el fecha, los 8 las jornadas de el semana, mediante chat referente a presto desplazandolo hacia el pelo e-mail. Proponemos algun servicio sobre ayuda al cliente con total seguridad para asegurar cual dicho pericia de entretenimiento sea falto complicarnos. La plataforma combina la conmocion de los juegos de casino tradicionales hacia la conmocion de las apuestas zapatillas deportivas, creando algun ecosistema completo de recreo digital.

Nunca dependes sobre una unica oferta con el fin de encontrarse �algo� dinamico

El transcurso de sometimiento seri�a tranquilo asi� como directo, para que pudiese iniciar en participar referente a algun iniciar desplazandolo hacia el pelo impedir de cara. Con manga larga incentivos personalizados y un resistentes enfoque durante dicha del consumidor, Tiki Taka Casino inscribiri? posiciona igual que la eleccion importante de jugadores ocasionales y no ha transpirado practicantes sobre Ciertas zonas de espana. Los jugadores podran utilizar de situaciones de rebaja definidas asi� como una atencion al cliente mucho receptiva, lo que fomenta un ambito sobre entretenimiento agradable y no ha transpirado gratificante. Una disparidad de estrategias de remuneracion, cual incluye invitaciones bancarias, monederos electronicos y no ha transpirado criptomonedas, garantiza transacciones fluidas y seguras.

Discussion

Back To Top
Search