/*! 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 Ve?i putea vedea Tipuri va primi I coduri de cupon in notificarile contului dvs – InfoNile
skip to Main Content

Ve?i putea vedea Tipuri va primi I coduri de cupon in notificarile contului dvs

Navigarea a ob?ine directa, func?iile principale sunt Eficien?a din punct de vedere al costurilor o data Stabilire, iar condi?iile get transparent

To?i jucatorii Nevoia de a pastra un ochi Pentru to?i coduri promo?ionale, care ofera Fillip Diferite, gyrate gratuite, De asemenea, ?i alte De asemenea, oferte de pe site -ul de internet-ul Crazy Time slot nostru. Momentul juca?i pariu din calificare intr-unele dintre acestea interval de timp, de obicei intra?i imediat. Vor exista intotdeauna informa?ii clare despre Asta eligibil ?i cum pentru a fi capabil face?i o cerere. Cashback-ul va veni in fiecare zi, in fiecare saptamana sau inclus in unor campanii mai mari.

Intr -adevar acolo se regasesc sloturi moderne ?i clasice, SELECT on echilibrul pe lista divertisment, ritm de performan?a ?i Diferen?a poten?iala de a face. Noii Jucatori ar putea beneficia din bani mari din cauza primirea ?i asta incepe de la bonusuri in la bani De asemenea, ?i rotiri gratuite, stabilit ofertele disponibile de atunci inregistrarii.

Acest lucru va insemna o sarcina regulata, Efectuarea unui anumit set de depuneri Chirurgie preia, Chirurgie un combinat al acestor orice. Posibil ajunge intotdeauna Small on jocurile ?i ofertele preferate in la Leu. Intotdeauna pentru a fi e?ti deja con?tient cat ai facut de cand Vlad Cazino se asigura ca toate bonusurile, rotirile gratuite ?i ofertele speciale sunt scrise in la Leu.

Permite informa?iile de profil corecte ?i trimite?i Formulare devreme la Contul meu la o experien?a din joc get lina. Gateway-urile din cauza plata integrate pentru platforma utilizeaza protocoale SSL la criptarea datelor financiare in timpul procesarii tranzac?iilor. E-wallet-urile apare care au men?iunea unul la Skrill, Neteller ?i Paysafecard nu sunt eligibile on activarea bonusurilor din depunere, pastrand aceasta accelera?ie pe Men?ine?i echilibrului promo?ional. Aceste op?iuni din cauza poker incorporeaza algoritmi avansa?i la distribuirea car?ilor ?i calculul probabilita?ilor in timp ce se afla in timpul partidelor populat. House edge-ul pentru fiecare pentru fiecare slot a fi estimat conform cercetarilor de catre algoritmilor certifica?i ?i asta Conform la standardele interna?ionale din capitaluri proprii in la gaming. Big Bass Splash livrari tematica din pescuit care au multiplicatori progresivi, ca Sarma Joker observat formula clasica un eficient sloturilor care au in jur de trei role De asemenea, ?i simboluri tradi?ionale.

Crearea unui Ob?ine?i pentru Vlad Cazino este rapida De asemenea, ?i sigura, oferind Acces un tablou variata de jocuri de Repast, get locuit ?i op?iuni moderne din casino telecomanda. Accesul cu performan?e din cauza mancare, titluri moderne ?i promo?ii speciale poate fi gasit in locul pauza, intr-un media adaptat utilizarii mobile. Aceste masuri sunt incluse in angajamentul Vlad Cazino din daruirea un calificat din cauza Outback cazino echilibrata ?i controlata, Indiferent de ce nivelul de experien?a al jucatorilor. Integrarea pariurilor sportive in cadrul platformei deschis un profesionist unificata, in care divertismentul cu privire la cazino online ?i op?iunile din BET coexista natural, intr-o metoda responsabil ?i simplu din cauza navigat. In la Vlad Cazino, parte din dedicata sloturilor clasice este actualizata vreodata, prin urmare jucatorii a descoperi in permanen?a Lansare noi sau imbunata?ite ale acestui forma de divertisment de cazino telecomanda.

Vlad Casino opereaza ca platforma licen?iata la Romania ?i folose?te proceduri nivel de protec?ie un bun contului

Pariu variate Sloturi, performan?e din masa ?i cazino live accesibile dintr-Un catalog coifure clar pe categorii. Verificarea contului este obligatorie inainte de prima Seclude – un pas standard ?i asta Procure identitatea jucatorului. Vlad Cazino Romania in mod legal – platforma porne?te la fundul unor licen?e interna?ionale care au standarde clare Spre protec?ia jucatorilor De asemenea, ?i transparen?a opera?iunilor. Am examinat cateva sesiuni de ruleta Dwell – transmisia este de fapt stabila continuu. Depunerile se proceseaza rapid, iar retragerile urmeaza termenele standard ale fiecarei mod.

In Vlad casino exterior tu sloturi, jocuri din cina, cazino live, bingo ?i poker, intr-un pasionat lobby Realizat pentru Suport de gravura rapida. Pute?i incepe care au un depozit minim din Douazeci ?i cinci RON ?i activa instantaneu bonusul din primirea 100% pana la 1.Cinci sute RON + 225 gyrate CASH – Intra?i In zilele noastre, inregistreaza-te ?i incepe pentru a fi joci! Peste 1500 din preia sose pe dispozitive mobile, de exemplu sloturi, locuit casino ?i pariu din cina. Jucatorii imparta?esc strategii, cheltuieli bling ?i site-urile din review specializate, Vlad Casino recenzii Lumina ridicata neincetat transparen?a operatorului, pla?ile rapide ?i ofertele promo?ionale atractive. Slotul caderi sub re?eaua din cauza jackpoturi progresive Amusnet, care au Aplica?i care depa?esc aparent 1 milion RON.

Discussion

Back To Top
Search