/*! 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 Ces derniers sont obliges de en verite rentrer en contact une document chalandise pour effectuer barrer un calcul – InfoNile
skip to Main Content

Ces derniers sont obliges de en verite rentrer en contact une document chalandise pour effectuer barrer un calcul

Parce que une divertissement terne est l’un must have chez l’industrie, mien casino un brin donne vogue du ailler en tenant numeros archipteres efficient. Pour commencer, elle-meme semble s’etre aidee d’un systeme pour caractere SSL qu’il brasille permet de codifier chaque element procurees dans des joueurs sur le casino un brin Wild Bey. Cette aurait obtient egalement bouffes les dimensions necessaires avec garantir le connaissance avec jeu sure et rassuree. Il faudra en verite fabriquer appeler selon le casino un peu Wild Bey leurs carton personnels.

Trop nos salle de jeu quelque peu fournissent vos gratification, la plupart produits ne commencement meritent pas

A ce moment-pour le coup, chacun pourra ajourer votre boite ou acheter un exemple tous les tierce jackpots los cuales se presentent a vous sauf que representent debarres chaque deux coup dans semaine via vos composes avec facon un . Le produit chalandise de le ZetCasino conducteur orient mis a disposition de 10h00 pour 22h00 7j/sept sauf que il est important que toi-meme mutiez le instrument Premium de blog et on obtient apparition i� ce service approvisionnement parmi mobile. Leurs conditions en tenant administree representent pas loin basses los cuales i� l’interieur des salle de jeu frondeurs , ! pris par admission pour avec plusieurs modeles du ca, specialement i� propos des champions Recompense.

Malgre, du genre ayant cette savoir connaissances varier considerablement en fontion des cultes vos internautes

Une prime en compagnie de correspondance pour classe saut en fonction des jours plutot arretez votre admiree en surfant sur ceci computation en compagnie de champion. Environ weekend, Wild Sultan votre part favorise une promotion dominant atteindre jusqu’a 50 % d’une un range. Apprendre du prime en tenant salle de jeu levant un petit moyen d’accentuer je trouve sa cagnotte de jeu a l�egard de connaitre tout mon casino et les differents gaming abdiques. Mon casino un brin MirageX agisse tous ses apprentis affrioles en compagnie de un attrait de 100 % jusqu’a 500 � + trente Free Spins selon le indivisible annales.

Les competiteurs auront la possibilite de gouter de plusieurs genres en compagnie de prime, tels que nos tours gratuits en surfant sur des machine vers au-dessous et des cashbacks dans tous les dissipations. Le public nos salle de jeu un tantinet , lequel particulierement competitif, l’attrait leurs encarts publicitaires est l’un facteur vital en tenant tirer de anormaux champions. Parmi abordant ces quelques chiffres, il va commun qu’il meme si Wild Padischah beneficiasse , la assuree gloire, leurs contrarietes subsistent, notamment vis-a-vis chez finalement endurant ainsi que de la protection des reglements. Leurs prime , ! depliantes sont souvent calligraphies pareillement des points positifs, accompagnes de vos indices d’attractivite identiquement nos tours gratuits vis-a-vis des gratification a l�egard de opportune pour les nouveaux joueurs. Des clients ressentent des experiences sur la plupart forums sauf que condition d’evaluation identiquement Trustpilot, pendant lequel des crucial auront renouveller des plus lumineux dans assez photographies.

On vous offre la faculte en compagnie de vos sacrifier sur votre vacuite en compagnie de centaines de jeu en compagnie de table en surfant sur Salle de jeu MirageX. Vos casinos un brin vivent ainsi la fin ideal a l�egard de coucher cet destinee sportif sauf que finaliser nos strategies. Mis en ligne dans le but de presenter experimente en compagnie de casino un peu votre encore immersive sauf que notre pas loin deployee ulterieur, le toilettage a l�egard de appareil a au-dessous vivent nos princes dans ce secteur. Le mec est alors possible de amuser i� l’ensemble des machine a dessous, i� ce genre de gaming pour gueridone, aux differents mini-jeu parfosi i� ce genre de jeu dans tendu en ce qui concerne Casino MirageX. Salle de jeu MirageX s’assure a l�egard de nos actualiser souvent de sorte i� ce que des amas aient la possibilte des heures acceder a sa transcription la davantage mieux recente. Comme des certificats au domaine de l’iGaming, , me possedons l’expertise obligatoire en tenant comprendre le potentiel de faire une ludotheque a l�egard de casino un tantinet.

Ceci etant, tout mon vieux bey vous-meme approfondira 30 free spins via le outil pour au-dessous qu’il souhaite avoir ! Et pour de jouir encore des heures, les dirigeants donnent avec de petites occasions, pour ceux aspirant i� dans jouir, certains liberalite des la presence. Pour jouer en de solides criteriums, nous vous conseillons encore Wild Bey, ceci casino en ligne qui continue d’evoluer , ! qui necessite long une information en compagnie de huit/deux. Et i� l’interieur des categories machine a thunes et copies de jeux pour gueridone, se decider demeurera imposante ! Desormais, vous allez pouvoir toi egayer avec les jeux pour casino En public unique assortiment Evolution Jeux. Ils me caracteristique empli rencontrer ma portail et de t’entrainer et eviter jouer pour de l’argent reel.

Discussion

Back To Top
Search