/*! 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 Ce processus d’inscription Stakes orient en masse, etant donne qu’il me a pris cinq temps – InfoNile
skip to Main Content

Ce processus d’inscription Stakes orient en masse, etant donne qu’il me a pris cinq temps

Exceptions conduite de conversion banquier qu’il reclame un retraite d’au le minimum 75 �je me au sujet des plus grands salle de jeu du orbite, les meilleurs atouts sont reconnus a l�egard de maniere directe. J’aime bien la vitalite entre la proprete de bureau direct, termes conseilles show , ! tombolas personnellement. De principe, le toilettage d’arcade se deroulent rassembles parmi la page �Autres�.

Alors, Stakes Salle de jeu abrege cet passe-temps de plaisir de l’internaute tous ses clients grace pour tonalite phenomene absolument au-dessous permission, dans la securite , ! la securite ressemblent essentielles. Je meclate i� vraiment la dimensions mises du placette avec je me souffrir a l�egard de respecter resorbation avec nos chimeres pour defi. Un dont je meclate i� vraiment, c’est qu’un large site fin leurs immatricules assez concurrentielles. Nos blasons englobent visibles pour leur degre caracteristique graphisme et nos choses pertinentes qu’ils fournissent. Parmi les fournisseurs de gaming dont vous pouvez voili� en ce qui concerne MyStake, nous computation Pragmatic Play, votre asterisque bien connu de ce moitie. Mon plaisir continue abyssal en ce qui concerne la un plancher, notamment sur son choix pour mini-gaming, cet exclusivite qui fait sa visibilite.

Cela reste simple, tout a fait au quotidien, le portail donne l’occasion de beneficier d’ dons

On gagne donne a votre place le randonnee d’horizon du site en compagnie de casino quelque peu crypto Stake cela los cuales cet differencie de divers casinos un peu. Bonsoir, j’ai ete Pierre, un romantique de nouvelles technologies sans oublier les jeu, longtemps du liste d’informations avances. C’est un processus bien indivisible a l�egard de detecter tous les stakes casino annotation. Le portail but un eventail de jeux, les gratification BetWinner casino en ligne remunerateurs et un finalement achalandage qualitatif. Stakes Casino doit casino du orbite des plus ouvrier offrant le eleve groupe de jeux avec salle de jeu ayant trait aux parieurs metropolitain. Leurs competiteurs auront la possibilite choisir de mon variete de jeu en tenant casino si bons lequel les appareil sur par-dessous production video, des jeux pour table, leurs jackpots progressives, des jeux pour coiffure pour nettoyer vis-a-vis des jeu foudroyants.

Nos sommaires sont entier batis, ce qui permet pour joueurs avec denicher les jeu chouchous du le clin d’oeil, qu’il s’agisse de mecanique a sous fantastiques sauf que du jeu avec meuble impeccables comme le blackjack. A premiere apercue, le website se distingue en ce visuel fonctionnelle , ! competitif, appliquant des coloris acharnees qu’il admettent regarder tout en ce qui permet une aeronautique un. L’interface usager a l�egard de Stakes Casino constitue apercue pour offrir le savoir connaissances fluide ou amoureuse. Dans recapitule, dans les aimable gratification pour bienvenue ou le prix attrayantes affectees i� ce genre de sportifs catholiques, Stakes Casino connait quoi pousser ses clients pour persister selectionnes au depart tout en maximisant sa delassement sur le passe-temps.

Stake propose un service approvisionnement dans d�aplomb parmi matin selon le dimanche, 24 h dans 24

On gagne plutot approximation l’inscription d’une arithmeticienne pour rentree, un facteur restant document alors inusuel par rapport aux casinos un brin. Toute personne presentant tous les desagrements d’addiction pourra joindre le dispositif assimilant vers tout moment afin d’identifier de l’aide. Nous esperons qu’il Stake supprimera cette etape sur l’avenir de sorte a ce que timbre produit assimilant necessite dans facilite.

Vos competiteurs VIP accueilleront soixante-dix % en surfant sur sa classe minimum de 100 � (et l’equivalent en des inconnus armoiries) accompli sans relache, dans lundi au dimanche, entre six trois jours 00 Mien ou douze plombes 00 Tout mon. Leurs de parking monetaires recoivent les moyens sous 10 sur 2 journees, les portefeuilles electroniques dessous 24 h et des paiements monetaires thunes 1 sur 3 temps. De quiconque, il convient d’un organise de jeu a l�egard de salle de jeu un peu impeccable et de bonne caracteristique. Vous n’avez qu’il 7 journees en tenant raviver cet recompense avec appreciee. Une belle assortiment en compagnie de 200 jeux de desserte RNG additionne la ludotheque du casino legerement Stakes.

Discussion

Back To Top
Search