/*! 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 necesario encontrado nuestro bono sobre recibo de 500% hasta doscientas� + 25 Giros Regalado! – InfoNile
skip to Main Content

Es necesario encontrado nuestro bono sobre recibo de 500% hasta doscientas� + 25 Giros Regalado!

En Mega Casino deseamos ofrecerte la habilidad sobre casino en internet comoda y fiable

Levante website guarda informacion relacionada en compania de juegos sobre azar asi� como no acarrea los menores de edad. Es posible alcanzar a la ruleta referente a listo que Mega Casino Portugal ofrece un par de sencillos ganchos. Esa misma https://slotstars-es.eu.com/ os proporcionara apuestas sobre quienes es posible acrecentar su adquisicion sobre manera fiable apostando con incumbencia. Acerca de este tipo de resena de Mega Casino, te comentamos cuales son los ventajas asi� como desventajas de el website. Deberias registrarse sobre Mega Casino de usar nuestro bono sobre 11 euros regalado.

Las juegos de casino de Mega Casino superan los tres

Accediendo desde nuestro navegador sobre nuestro celular, es necesario podido disfrutar de todo el grande catalogo de juegos de casino sobre forma satisfactoria y con el pasar del tiempo un monton de caracteristicas. La coleccion sobra sobre 20 mesas con manga larga crupieres y no ha transpirado automaticas conforman la excelente coleccion sobre ruleta sobre listo de Mega Casino Ciertas zonas de espana. Tambien, los slots de bingo (slingos) son otro de las puntos fuertes con una oferta sobre pocos 30 importes.

Big Bass Bonanza es una de estas slots mayormente populares debido a dicho tematica entretenida de pesca, graficos coloridos asi� como grandes alternativas de conseguir. Nuestro bono sobre recibo de Mega Casino estuviese pensado para que los nuevos jugadores puedan empezar a juguetear que usan cualquier liquidacion extra tras el inicial deposito. Tambien, la conexion dentro de el casino y no ha transpirado nuestro procesador sobre ingresos se podri�an mover hace mediante protocolos fiables, cosa que promueve guarecer una documentacion asi� como an acreditar una integridad sobre cada operacion. Por eso disponemos de la gran diversidad de metodos sobre remuneracion de depositos desplazandolo hacia el pelo retiradas, con el fin de que elijas quienes mejor llegan a convertirse en focos de luces acople en las necesidades. En Mega Casino, es posible disfrutar sobre precios como Slingo Rainbow Riches, Slingo Sweet Bonanza, asi� como bastantes importes sobra.

Enteran una amplia variacii?n de emocionantes mesas de casino acerca de avispado en Mega Casino. ? Oriente sitio web es algun estudio independiente y no ha transpirado nunca se encuentre afiliado en Mega Casino. De requerir el bono sobre recepcion, debes registrarte sobre Mega Casino y realizar algun deposito diminuto. Profesional acerca de confianza sobre retribucion, Manuel hallan revisado decenas de casinos en linea desplazandolo hacia el pelo han ayudado a miles de jugadores a encontrar las superiores sensaciones sobre esparcimiento. Los agentes se encuentran con experiencia de solucionar consultas de bonos, pagos, verificacion de perfil y enfoque tecnicos del lugar. Opciones adicionales incluyen email sobre soporte con manga larga replica en 24 situaciones desplazandolo hacia el pelo la division de preguntas comprometidos total.

000 alternativas entre slots, juegos de banco de casino tipicos, tragaperras con manga larga hojalata escalonado y juegos sobre clase crash, arcade asi� como video bingo. Con el pasar del tiempo unas tres.000 juegos de casino, retribucion desprovisto comision desplazandolo hacia el pelo tuercas, tornillos y bicicletas de entretenimiento importante, Mega Casino es uno de los casinos online en Ciertas zonas de espana con tragaperras exclusivas sobre criterios igual que Pragmatic Play, Amusnet y Play’n’ Go. Mega Casino resulta una medio sobre juegos de casino online cual brinda la amplia escala sobre juegos, contenidos tragamonedas, juegos de entidad financiera asi� como alternativas de casino referente a preparado. Joviales mega casino en internet, el disfrutar de retiros veloces, ayuda al usuario 24/seis en castellano y estrategias de remuneracion efectivas. Estos valores proporcionan diversidad de jugadores cual solicitan sensaciones otras a los slots y juegos sobre entidad financiera tradicionales.

Las personas podrian comunicarse con el casino mediante chat sobre presto, e-mail eliminar otros canales a tu disposicion en la medio. La escuadra sobre asiento seri�a experto, afable y no ha transpirado estaria listo para solucionar preguntas relevantes ingresos, bonos, asignacion o problemas peritos. Nuestro servicio de atencion al cliente de Mega Casino esta disponible con el fin de favorecer a los jugadores al mi�nimo instante. Un monton de promociones se encuentran desarrolladas en compania de modos definidas y transparentes con el fin de cual los usuarios le permitan disfrutar de ellas sobre forma sencilla desplazandolo hacia el pelo segura. Tambien, nuestro casino organiza torneos, sorteos y no ha transpirado campanas temporales que permiten obtener recompensas adicionales.

Discussion

Back To Top
Search