/*! 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 Asi� como sin perder sobre poner al dia y no ha transpirado desarrollar los juegos de casino en internet ti�picos – InfoNile
skip to Main Content

Asi� como sin perder sobre poner al dia y no ha transpirado desarrollar los juegos de casino en internet ti�picos

Todas los posibilidades sobre pago mas profusamente utilizadas en los casinos online son, pienso, los cartas de credito asi� como debito. Las formas sobre pago resultan nuestras opciones para elaborar nuestros depositos desplazandolo hacia el pelo admitir modelos ganancias en las casinos online.

Otro aspecto tactico en la hora de elegir adonde juguetear son las metodologias de paga ofrecidos por el casino en internet de recargar nuestro saldo de el su juego asi� como para realizar las retiradas de medios empezando desde el perfil. En el presente, casi la totalidad de juegos sobre casino fueron migrados a las tecnologias HTML5, cual permanece considerablemente soportada tanto sobre ordenadores sobre sobremesa y no ha transpirado portatiles, como referente a tablets desplazandolo hacia el pelo smartphones. Anticuada, sin una llegada de los smartphones, los juegos sobre casino en internet estaban basados sobre la ciencia Flash, desplazandolo hacia el pelo llegan a convertirse en focos de luces conocian igual que �juegos flash�. Todas estas cosas son buenas en una personalidad, pero no todos las tienen o las saben usar, para el licencias son otorgadas por Gestion Generico sobre Orden del Esparcimiento (DGOJ), el viscera regulador de el esparcimiento online acerca de Espana. Los casinos online presentes acerca de resultan completamente fiables dentro del permanecer sobre posesion de la licencia espanola adecuado para ofrecer sus facilidades. Los novios casinos trabajan a los metodos sobre pago de mayor ti�picos, no obstante no las parejas casinos hacen el trabajo bien con demasiadas posibilidades que hay disponibles en la actualidad, por lo tanto sobre la resena sobre cualquier casino se muestra el listado para los metodos de retirada asi� como deposito que si no le importa hacerse amiga de la grasa se fabrican con.

Jugar en juegos sobre casino en internet desde apps moviles es una habilidad amena asi� como sencillo. Mediante dichos proveedores, los jugadores podran disfrutar de valores cual combinan tecnologia evolucionada desplazandolo hacia el pelo creatividad, adaptandose a cualquier tipo de preferencias y no ha transpirado clases. Los niveles de software de casino son importantes para presentar vivencias sobre esparcimiento sobre alta clase.

Tu nobleza a las excelentes casinos en internet igualmente si no le importa hacerse amiga de la grasa pago

Las casinos online llevan un tejido de diversos estrategias de remuneracion de elaborar ingresos con el fin de cargar venta asi� como para elaborar http://verdecasinos.io/es/codigo-promocional retiradas sobre medios. Las bonos sobre recibimiento desprovisto tanque consisten sobre cesion promocional con el fin de participar. Las bonos de bienvenida con el pasar del tiempo tanque suelen consistir referente a una descuento de el inicial tanque igual que liquidacion extra promocional de participar. Entre la estilo de casino acerca de preparado se podri�an mover revisan las juegos ofrecidos, que grados sobre tecnologia se usan y no ha transpirado cual otras caracteristicas poseen, igual que chat o micro juegos, dentro de diferentes.

Para las metodologias de paga desplazandolo hacia el pelo retiro, tambien llegan a convertirse en focos de luces asegura tal como serian confiables

Bastantes de estos casinos apuestan por localizar sus acontecimientos referente a castellano, mejorar las estrategias sobre paga asi� como soltar promociones en competencia de diferenciarse. Estos operadores emergentes normalmente marcar por presentar plataformas diferentes, interfaces adaptadas dentro del cliente espanol y no ha transpirado catalogos de juegos novedosos. Es posible ver nuestros productos para los bonos de audiencia de casinos y las bonos sobre recibimiento sobre apuestas de deporte si lo te gustaria. Tambien, bastantes operadores complementan levante bono con manga larga giros gratuito referente a tragaperras usadas.

Bono del 500 % alrededor del inicial tanque inclusive 1500 � + 250 giros de balde Procurar una suerte es nuestro fin de los jugadores de casualidad, aunque hallar los mejores casinos en internet nunca posee lo tanto cual examinar a la fortuna. Muchos casinos online se fabrican con versiones gratuitas o ‘demos’ de las juegos, cual permiten a los usuarios competir desprovisto colocar recursos cierto.

?Comienza an instalarse la experiencia Betfair cliqueando referente a “Apuesta debido a” desde nuestro banner enseguida! Sus metodos de paga resultan especialmente grato, con el pasar del tiempo depositos asi� como retiros veloces y no ha transpirado montos minimos permitibles, lo cual posibilita la entrada a cero millas jugadores. Betfair seri�a un operador de extendida prueba que destaca para mostrar cualquier ambito seguro desplazandolo hacia el pelo la vivencia simple para algunos que priorizan algun casino con total seguridad. Trabaja con manga larga completo decision en Bet365 Ciertas zonas de espana registrandote en el momento en que el banner luego. Su plataforma seri�a veloz, intuitiva y se coloca para su envite debido a la innovacion, en compania de importes Megaways, jackpots progresivos y variedad sobre ruletas en vivo atendidas para crupieres reales.

Con materia variadas, nadie pondri�a en duda desde mitologia incluso aventuras espaciales, asi� como utilidades como giros gratuito o en la barra jackpots progresivos, enganchan al instante. Las excelentes casinos online ofrecen un abano sobre juegos, siendo maravillosamente listos de presentar extension en cientos de jugadores.

Discussion

Back To Top
Search