/*! 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 Frecven?a ca?tigurilor ?i valoarea acestora interesat jucatorii de cazino, iar noile cazinouri ?tiu deja pe deplin acest Situa?ie – InfoNile
skip to Main Content

Frecven?a ca?tigurilor ?i valoarea acestora interesat jucatorii de cazino, iar noile cazinouri ?tiu deja pe deplin acest Situa?ie

Suplimentar pe un kilometraj ar putea primi placuta, cazinourile au ob?inut aplicatii tipuri de pentru fiecare pentru fiecare adus on Rolul

Cum ar fi, la sloturile care au volatilitate mica, jucatorul are Impresia unul tot ca?tiga, totu?i, deci cand se va uita la balan?a, observa ca valoarea ca?tigurilor este destul de mica. Operatorii de cazinouri I folosesc de la plin tehnologiile inovative pentru a-in timp ce cre?te nivelul de atrac?ie prezent din cauza jucatori. Jucatorii unitate ?i, prin urmare, se inregistreaza on RoySpins casino Exploit bonus din cauza primirea, Extra cashback, Fillip din cauza reincarcat, Bonus adaugat in la criptomonede ?i Acces programul din loialitate. Portofoliul cu mult peste 7500 din preia tind sa fie pacanele, Reint gratuit locuit, show-uri care au dealeri umani, performan?e de cina, bingo, keno, lozuri razuibile sau altul. Betify casino straluce?te la pia?a din Romania pur ?i simplu din cauza ei selec?iei SISABIL din pariu, impreuna cu 7500 din titluri in portofoliu.

Excelbet Casino este Un exemplu bun concret de platforma care ofera retrageri rapid cu card depozit – o facilitate apreciata in moduri fin de jucatorii care nu vor sa a?tepte. Durata de via?a a procesarii in jur finalizarea unei retrageri depinde atat de metoda aleasa, cat ?i de politica interna un bun fiecarei platforme. Re?ine unul depunerea minima pe activarea bonusului din primirea poate go diferita prezent din depunerea minima standard bun platformei. Doar pu?in platforme, in special Conti Casino, randament este cu siguran?a un bonus in cazul in care procesarea to Seclude ie?ire aer anumita limita a energiei tale – un juramant reala un eficient vitezei. Unii bonusurilor la cazinouri pe internet cu privire la Romania try exprimate la RON (lei). Ca?tigurile aduce off Twisting gratuite sunt adesea creditate ca stimulent ?i necesita indeplinirea unor Scenariu din rulaj inainte de Seclude.

Intr -adevar acolo gase?ti bonusurile preferate de jucatorii romani, dar ?i din moment ce po?i revendica toate stimulent pentru a avea un galvanize mai moon princess 100 câștig maxim benefic atunci cand alegi cazinouri online licen?iate. Toate ofertele SuperCazino este de fapt verificate De asemenea, ?i actualizate vreodata, ca caci acces la Tipuri va primi sigure De asemenea, ?i I bonusuri din cazinouri licen?iate.

Po?i juca pe un venit real aceste pacanele Outback, cu toate acestea ele vin astfel incat ca Creare gratis cu platformele din cazino telecomanda licen?iate in Romania. Play’n Devine este unul dintre care dintre ei poate ob?ine intalni?i provideri in la cazinouri telecomanda. Simplitatea De asemenea, ?i mecanica de performan?a fluida incearca sa faca off Shining Crown tu sa unul dintre cele get selectate jocuri de noroc on -line la Bonus adaugat de primirea. Favoare cu siguran?a cazinourile recomandate, face o distribu?ie ?i porne?te la vanatoare si favoare performan?e care au configurare favorite. Valorile bonusurilor-jackpot virtuale nu au legatura care au valorile celor reale, totu?i ini?ierea rundei ?i desfa?urarea acesteia a fi similara cu cea cu privire la pacanele telecomanda la numerar real.

Prefera tipul de Promove I?i place ?i incepe experien?a pe cazinouri sigure!

Daca exista Un software dedicata, aer po?i descarca de la surse oficiale, precum site-ul cazinoului, Google Play Teatru de operare App Store. Sentimentul on cazinou se bazeaza in primul rand din Aparat-ul platformei De asemenea, ?i al jocurilor, Out of RTP ?i volatilitate, to grafica De asemenea, ?i inova?ie. De indata ce alegi o intreprinderi de jocuri de noroc telecomanda, este important sa verifici daca acest tip de colaboreaza care au furnizori de instrument renumi?i pe pia?a. Impreuna cu mesele clasice, doar pu?in cazinouri da varia?ii de ruleta care au jackpot, care au multiplicator altfel care au joc stimulent. On jocurile de ruleta exterior, verifica doar ce tip de mancarea sunt disponibile De asemenea, ?i ce limite din cauza BET are.

In plus, jocurile noi Render adesea De asemenea, ?i da exclusive, ?i asta ar putea include atat sume din numerar, cat ?i alte recompense atractive. Pe platforma GetsBet se gasesc neincetat pariu noi de casino, care ofera jucatorilor un calificat din cauza joc inedita De asemenea, ?i plina din Subliniaza. Ruleta Dwell get jucatorilor sa parieze la o roata reala, de cand blackjackul De asemenea, ?i baccaratul randament o experien?a din participant din car?i autentica, care au dealeri reali. Acestea ar putea varia din Fillip din bun venit la casino pe noii Jucatori, la promo?ii saptamanale in timp ce oferi?i speciale pe jucatorii fideli. Jucatorii sunt capabili sa fie capabili alege intre corect-cunoscutele Poker, Blackjack, Baccarat ?i Ruleta, Toate acestea au fost deja disponibile intr-Cateva dintre Lansare motiv suficient pentru Mai multe mize. In plus, cazinoul promoveaza jocul in mod sensibil, Dand jucatorilor riscul de un mare-?i seta limite de depunere, de un mare solicita oarecare slabire cu privire la Folosind Sala de opera?ie din un eficient se autoexclude.

Discussion

Back To Top
Search