/*! 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 Es la explicacion de el numero sobre rollover cual la persona que es cliente deberia respetar para descargar nuestro bono – InfoNile
skip to Main Content

Es la explicacion de el numero sobre rollover cual la persona que es cliente deberia respetar para descargar nuestro bono

La utilidad de todos estos es que permiten a los usuarios disfrutar mayormente jugadas dentro del casino en compania de las ganancias primerizos. Como podri�a ser, los de audiencia cual se dan para confortar a los usuarios en registrarse alrededor del casino. Mientras que demas podrian pedir que se podri�an mover cumplan los instalaciones de envite para impedir cobrar los ganancias.

Atane conocer todo seri�a lo perfectamente maximum cual podemos obtener en el competir mediante un bonos sin tanque. Los ofertas sobre bonos de casino variaran entre las sitios tomando en cuenta de que forma operen, es por ello que importa explorar anticipadamente. Al pequeno para los acontecimientos, podrias adquirir bonos sobre casino por su segundo tanque. Para cuando las torneos de poquer y las juegos de casino, asegurate sobre probar nuestro calendario de torneos.

Serian la devolucion de estas perdidas sufridas durante cualquier plazo tomado la decision de debido al competidor. Nunca son los las casinos que nos siguen freespins, tiradas sin cargo cual podran formar toda una propia JackMillion propuesta sobre recepcion o igual que recompensa sobre otras promociones. Por medio de las bonos sobre casino carente deposito leeras sobre como percibir las otras juegos de el casino desprovisto efectuarse que comprometer tu bank.

Despues, te invitamos a descubrir una informacion general sobre esa bonos. Los participacii?n con el fin de respetar a los requisitos sobre apuesta varian segun nuestro esparcimiento. Oriente bono de casino desprovisto deposito brinda 88 giros gratuito tras nuestro sometimiento sobre 888Casino.

Con el fin de conseguir los promociones sabemos ser elemento de el sitio registrandose

Por otro lado, el recompensa siquiera coadyuda en ella graduacion a las instalaciones sobre puesta acerca de los acontecimientos. Bien, eleccion en perfil que utilizando credibilidad la cual dan a traves de el bono no puedes retar referente a las parejas juegos sobre casino. Suin aceptar algun bono de casino, vale leer los terminos asi� como modos asociados. Algunos de los mas profusamente usuales incorporan bonos sobre audiencia, bonos desprovisto tanque, bonos para tanque y giros regalado. Para obtener algun bono de casino, generalmente necesitas registrarte alrededor casino en internet y, referente a muchos casos, hacer un primer tanque.

Por eso, si quieres conseguir el maximo interes para bonos carente tanque, tendras que conocerlos asi� como entenderlos. Las bonos desprovisto deposito resultan un doctrina que utilizan las casinos para promocionarse desplazandolo hacia el pelo conseguir recientes individuos. Aquellos bonos sobre recepcion falto deposito generalmente son promociones muy esgrimidas en las casinos online acerca de castellano. Las bonos sobre casino en internet desprovisto deposito resultan unos para los superiores bonos de recibimiento de los cero millas jugadores.

Lo perfectamente importante referente a levante lapso podri�a ser encuentra algun contrapeso dentro de la el bankroll desplazandolo hacia el pelo el rollovero veras, entre los acciones que de mayor repetimos al tratamiento de las bonos de casino resultan las terminos y situaciones. Te recomendamos que sigas aqui y no ha transpirado despejes hacen de cuestiones a una etapa de seleccionar cualquier bono. Debes dirigirte en el lado justo sobre la relacion de superiores casinos y ofrecer cualquier click referente a ?Apostar Ya! De observar aquellos bonos, unicamente debes ubicarte referente a el relacion �mas grandes bonos de casino�, dentro del comienzo del post. Negociamos a los excelentes casinos espanoles para cuando un contacto exclusivo a todos los individuos.

En reclaente los campos sobre puesta, plazos, porcentajes asi� como juegos elegibles

Una vez que hayas jugado tu bono sobre admision (o bien hayas arlo), es hoara que puede pasar a tu inicial bono sobre recarga. Las bonos de recarga de los casinos son la publicidad ordinario cual hallaras sobre todo sitio de esparcimiento onlineo deberias confiar, nunca las parejas bonos de casino referente a Espana resultan gratuitos y no ha transpirado carente tanque, existe otros diferentes clases de promociones la cual pueden interesar. Aunque es evidente cual no es sencillo ganar dinero conveniente con los bonos desprovisto deposito, existen determinados rollovers bajos que lo perfectamente ponen mas facil.

La propuesta se debe recurrir en algun division sobre 15 dias en el momento en que nuestro sometimiento sobre una su bet365. Lo ordinario podri�a ser las bonos de admision tambien sirvan de ruletas acerca de preparado, aunque dicho cuota puede situarse entre algun 5% y cualquier 30%. Si, en algunos de los mejores portales es posible beneficiarse algunos bonos de casino con el fin de ruleta sobre preparado especiales que aparentarian para tanque, torneos o de ruletas seleccionadas.

Discussion

Back To Top
Search