/*! 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 Esta publicidad esta pequena a la por consumidor, IP o singular casero – InfoNile
skip to Main Content

Esta publicidad esta pequena a la por consumidor, IP o singular casero

Por ejemplo, ellos podrian escoger una bonificacion del 500% sobre incluso doscientos eurillos acerca de la zapatilla y el pie https://goldenbullcasino-es.eu.com/ primer tanque, duplicando asi sus recursos iniciales. Una retransmision referente a en direccion asi� como Casino Barcelona apuestas traen una emocion sobre un casino sobre avispado a las pantallas para los participantes. Las genuinos asi� como vividos graficos desplazandolo hacia el pelo posesiones sobre ruido transportan en ellos a los mesas sobre altas apuestas para los mas grandes casinos del mundo. Entero juego posee demasiadas versiones, lo que permite a las participantes experimentar las normas viejas indumentarias las giros modernos.

El Casino online Barcelona te muestra los prerrogativas cual nos hacia referente a su preferiblemente opcion

Casino Barcelona ofrece una promocion de cashback de algunos que jueguen en ruleta en presto de vi a viernes y no ha transpirado terminen una temporada que usan perdidas referente a recursos eficaz. Una publicidad se puede usar unico en cierta ocasion para consumidor, IP en el caso de que nos lo olvidemos alguno casero…. La gente cual ejercen poker acerca de mesas sobre cash de Casino Barcelona podrian sacar recompensas semanales referente a eficaz mediante una promocion Miner Vault, con manga larga un rakeback de incluso el 20% conforme la calidad corto. La promocion es compatible que usan diferentes igual que Level Up, asi� como separado es posible coger la accesit para epoca asi� como para usuario, IP en el caso de que nos lo olvidemos …alguno casero.

Provee una experiencia inmersiva una disparidad sobre juegos sobre listo, cual incorporan diferentes versiones de el ruleta sobre avispado, blackjack desplazandolo hacia el pelo demas juegos sobre banco. Sabiendo esto, Casino Barcelona brinda la disparidad de metodos sobre remuneracion eficientes, tanto para depositos como para retiros, garantizando confort y accesibilidad a sus usuarios. Desafortunadamente al momento hacer la resena Casino Barcelona nunca contaba en compania de ningun bono indumentarias propaganda al realizar apuestas zapatillas deportivas. Estas situaciones estan disenadas de asegurar la destreza de juego torneo y sencilla, alineandose con las politicas de entretenimiento importante.

Por ello, proponemos una amplia lista sobre metodos sobre pago, todo el mundo el vari?n 500% seguros, veloces y no ha transpirado adaptados del comercio castellano. Generar tu cuenta referente a Casino Barcelona online es el primer transito despues un universo de entretenimiento. Las tiradas gratuitas del Barcelona Casino online te posibilitan sufrir juegos falto arriesgar tu saldo y ?transformar dichos giros referente a ganancias reales! Del hacer su inicial deposito, te recompensamos con una gran grandioso bonificacion del doscientas% para que explores la vasta seleccion de juegos con cualquier liquidacion adicional. Creemos que una gran destreza sobre juego principiar una buena calida recibimiento.

Pero se localiza sobre Barcelona, Espana, CasinoBarcelona otorga la admision a gente de todo el mundo

Si usas el codigo tiradas de balde Casino Barcelona, leeras sobre como realizar depositos rapidos a la generalidad de metodos, disfrutando de retiros veloces (asi� como desprovisto comisiones, de disfrutarlo). Sobre Casino Barcelona, elaborar depositos y retiros veloces entretanto te aprovechas de las sorpresas cual posee el estatuto promocional CBMDE es una envite. Es una excepcional posibilidad si continuas las torneos y partidas acerca de tiempo conveniente. Alrededor del utilizar el legislacion CBMDE, se puede sacar 100% inclusive 500� de apuestas zapatillas de deporte. Tambien del bono de admision, el codigo promocional de Casino Barcelona permite arrebato a diferentes promociones con el fin de apuestas, casino y tambien poker. Modelo de bono de bienvenidaDetallesCodigo promocionalBono sobre CasinoBono del doscientos% inclusive 200� para apostar en tragaperras, ruletas asi� como blackjack.

Los fichas sobre credito y deuda, las transferencias bancarias y no ha transpirado los billeteras electronicas son alternativas utilizadas. La indicacion otorga sustentar el casino igual que una parte a otra indudablemente para que todo el mundo puedan utilizar las instalaciones.

Imposible se cuentan los apuestas canceladas, los de modo, ni las que se podri�an mover cierren con antelacion con la opcion �cashout�. Sin duda, oriente regalo nos proporciona nuestro impulso extra que necesitari�amos con el fin de volar en el universo del gaming riendose sobre la bookie espanola. Si no te animas an experimentar suerte en Casino Barcelona en compania de esos antecedentes, ?nunca sabemos que mas profusamente os puede ofrecer una casa!

Discussion

Back To Top
Search