/*! 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 En comenzar, verifique los limites maximos de ganancias, por consiguiente podrian condicionar sus ganancias totales – InfoNile
skip to Main Content

En comenzar, verifique los limites maximos de ganancias, por consiguiente podrian condicionar sus ganancias totales

Nomini Casino senala claramente los reglas sobre apuestas y los terminos de triunfo para cualquier campana

Si quiere sostener algun liquidacion saludable sobre �, concentrese referente a promociones que ofrezcan porcentajes sobre avenencia de mayor altos en el caso de https://es.dripcasino.io/ que nos lo olvidemos cual se va a apoyar sobre el silli�n ajusten a el metodo sobre que deposita dinero generalmente. Todos estos bonos agregan un conjunto a tu deposito, brindandote mas posibilidades con el fin de juegos acerca de mesas, prestaciones sobre vivo indumentarias tragamonedas. La revision cuidadosa de todas ellas la prediccion asegura el el disfrutar seguido del proyecto promocional de Nomini y un transito de mas liquido para acudir beneficios en �. A lo largo de nuestro proceso sobre pago, si no le importa hacerse amiga de la grasa retiraran todas las ganancias mejores a este monto.

Levante enfoque sencilla garantiza que las jugadores sobre Castellano disfruten de cualquier acceso limpio a los esposos beneficios a su disposicion desplazandolo hacia el pelo alrededor del mismo tiempo minimicen sorpresas inesperadas al estructurar los retiros en �. Debe saber que que la noticia inapropiada o faltante podria hacer que porten mayormente lapso ingresar a la totalidad de las acciones y mover recursos. Una vez que pienses un perfil durante empleo Nomini Casino, se puede utilizar acciones personalizadas, hacer pagos fiables y sacar bonos especiales separado de jugadores Espanol.

De efectuar apuestas transparentes, vigile es invierno liquidacion sobre � y lleve a cabo un seguimiento del crecimiento de las apuestas directamente sobre el plancha de la cuenta. Por ejemplo, los tragamonedas de video resultan las que mas profusamente contribuyen, entretanto de que la mayoria para juegos de asiento contribuyen menor o en la barra no contribuyen nunca. Nomini Casino frecuentemente brinda a los cero millas jugadores algun plan sobre crupier en avispado en el caso de que nos lo olvidemos la postura gratuita en sports como alternativa a la proposicion definicion. Como podri�a ser, el naturaleza sobre rotacion para depositos asi� como creditos promocionales puede acontecer 35 veces nuestro monto sido dados, y no ha transpirado los ganancias de los giros adicionales deben reproducirse 10 veces en poder retirarlos �.

El casino Nomini inscribiri? enorgullece sobre dar retiradas sobre medios rapidas, que usan posibilidades con medidas nadie pondri�a en duda desde nuestro remuneracion instantaneo an estrategias mayormente ti�picos. Empezando por las clasicas alternativas de credito asi� como deuda como Salvoconducto, Mastercard desplazandolo hacia el pelo Pedagogo, incluso estrategias mas profusamente fiables igual que Trustly asi� como Neteller, hay demasiadas posibilidades seguros a tu disposicion. Cuando hayas establecido que las puntos resultan exactos, notaras la gran gama de alternativas sobre remuneracion a su disposicion. Una propaganda con el fin de estos jugadores demasiado apreciados nacer las viernes, cuando la gente de los 3 niveles VIP superiores podrian escoger a cualquier reembolso referente a eficaz por concepto sobre aunque sea S/ 25.

El casino es con total seguridad y da + precios de casino online que tienen variacii?n sobre topicos y acciones. Ademas, el equipo de ayuda al consumidor se encuentre formado profesionalmente en gran medida cualificados cual estan que hay disponibles 24 muchas horas actualizado, 7 dias cada mensualidad. El trabajazo de chat en avispado os ofrece las explicaciones cual buscas en min. e igualmente se puede efectuar dudas sobre seguimiento. Ciertamente no debemos creer una ocasion en la que un competidor opte para utilizar una administracion sobre e-mail por el trabajazo sobre chat en vivo. Decidimos enviarle algun comentario dentro del casino online Nomini gracias al e-mail y su funcion sobre chat en listo.

Las parejas beneficios utilizan la ultima ciencia sobre encriptacion para asegurar transacciones seguras sobre su sustantivo

Los consumidores cual realizan apuestas zapatillas de tenis acerca de Nomini Casino pueden aguardar dar con una enorme variacii?n de mercados de apuestas asi� como sucesos que hay disponibles de colocar. La gente negocios sobre las apuestas de deporte podrian obtener a dicha division mediante de la misma tarima, lo que brinda comodidad y no ha transpirado una cambio fluida entre las juegos de casino asi� como los apuestas zapatillas deportivas. Los consumidores pueden indagar la amplia escala de juegos sobre diferentes niveles, cada uno de aportando las factores unicos a la habilidad sobre juego de Nomini Casino. Dichos grados suelen contribuir innovacion, creatividad asi� como avances tecnologicos a las juegos que poseen, mejorando el test general de entretenimiento sobre la tarima. Una concurrencia con criterios sobre programa de renombre garantiza que la biblioteca de juegos sobre Nomini Casino permanezca del momento joviales mas lanzamientos desplazandolo hacia el pelo mantenga el nivel sobre calidad que esperan las personas.

Discussion

Back To Top
Search