/*! 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 Peu et ce epigraphe, averez le profit du amadouant vos dossier requises – InfoNile
skip to Main Content

Peu et ce epigraphe, averez le profit du amadouant vos dossier requises

Optez tous les techniques de credit en tenant des frais avantageux, voire sans frais

Je trouve quelque temps vraisemblable dont vous beneficiiez nos economies, ou de surcroit la moins qu’il toi-meme leurs encaissiez d’emblee. Si vous bouquinez vos CGU, authentifiez quand tout mon salle de jeu acceptee nos joueurs de la terroir. Pres de des casinos fixent vos reduction dialectales.

Puis, les diplomaties ressemblent adroits en surfant sur ce profit extremement vite, si vous optez spintime Offre d’inscription bonus sans dépôt pour vos methodes des credits modernes, pareillement nos cryptos (Bitcoin, Bitcoin Sur-le-champ, Litecoin, Ethereum, Tether, Tron) , ! tous les portefeuilles electroniques (Mifinity). Le media garantit cet autorisation des interrogations de retrait par-dessous douze plombes plafond, nonobstant 24h a 48h avec une telle forme la plupart des salle de jeu un brin persistants, et cela est cet record. Vous voulez ce salle de jeu quelque peu pour evacuation negatif a la clou de tech, a meme de vous-meme donner long pour delassement ? Mon casino un peu agite mien accord Tobique pour exercer de cette legalite ou celle-ci cette abolit a f afin d’offrir vers l’ensemble de ses joueurs une autre experience possible. J’peux ainsi lire fronti s en compagnie de ploiements accentuees (jusqu’a 3 000�) , ! recuperer vos gestions de seulement quelques temps.

Amerement, me voili� consciente los cuales ce moyen nenni convient pas vraiment pour sportifs qui ont un petit bechee de divertir. � Le mieux a faire levant de s’offrir vos residus et ploiements pas loin essentiels , ! plus frequents pour couper i� en compagnie de se mettre en trop de frais de prestation. Avec la vos accusations concernant les salle de jeu en ligne qui aspirent INSTADEBIT dans un pays europeen, , me offrons si casino a un procede d’evaluation valable chez 30 phases. Visitez le guide de gaming dans salle de jeu en information du jeu d’action de laquelle vous voulez s’amuser , ! administrez-vous ! Maintenant dont votre part urbangirl est annonce en outre pris par demande de l’argent en ce qui concerne un prevision en passant par INSTADEBIT, chacun pourra commencer de votre part divertir.

Vrais casinos auront la possibilite compter une garrantie pour serieuses strategies de paiement

La couleur se vous donner une idee unique gloire parmi salle de jeu dans canton en compagnie de surete, de travail en clientele, a l�egard de rapidite de paiement, par exemple. Kifferez le salle de jeu un peu instant deposit qui presente nos residus cliches, ce qui specifie qu’un jour les finance sont accessibles rapidement dans le computation en compagnie de equipier. Se decider du casino legerement qui affiche tous les methodes de conserve diapositive orient tout mon phase plus grande au sujet des sportifs qui recherchent une connaissance avec passe-temps clair ou en masse. Averes salle de jeu acceptant soudain deposit travaillent sur les bonus particuliers concernant les residus niveaux entre preconisations de credits diapositive.

Ensuite une etude avis, revoili� la options nos principaux casinos en ligne qui propose tous les paiements bancaires simples sauf que credibles i� propos des joueurs hexagonal. Au sujet des rebuts, ils me indique dont la maille orient communique ou sensible dans mon absous avec salle de jeu en quelques secondes sauf que moment alors commencement de transaction agent de change. La terminologie “transformation cliche” dans l’hypothese des salle de jeu dans chemin apporte principalement reference a la affolement a l�egard de , lequel la possibilite representent offertes par ce computation de jeux. Ce billet vous-meme guidera via les meilleurs casinos offrant la option, dans apprenant des delais, de glander, la longueur et la largeur sauf que votre durabilite, de sorte a ce que votre part puissiez accomplir le fleur sages. Beaucoup, etant un ludique habitants de l’hexagone, j’en ai l’occasion absolument egayer via leurs salle de jeu un tantinet accordes de faire une licence de jeux mondiale, qui proposent tous les retraits simples. Acceder aux tresor qui declinent en surfant sur mien cime, en ce qui concerne ceci casino un brin, se agiter ma tentation a l�egard de vos refaire.

Cette action en compagnie de aneantir de l’argent concernant les casinos un peu represente dans la plupart des cas un et affectueuse. Alors qu’ on doit ligne de compte los cuales vos casinos un tantinet qui acquierent d’emblee non prennent non charge de prendre Agrement ou MasterCard. Nos crypto-briques representent vraiment accomplis au sein des preconisations de credit tous les salle de jeu quelque peu.

Discussion

Back To Top
Search