/*! 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 Trebuie sa ?tii la invarti roata doar numai daca A-zi – InfoNile
skip to Main Content

Trebuie sa ?tii la invarti roata doar numai daca A-zi

Cardurile bancare Visa, Mastercard ?i Maestro este scurt pentru op?iunile unitate mai populare pentru depuneri, Darea procesare Snap De asemenea, ?i protector maxima. Tururile gratuite saptamanale sunt date cu sloturile populare, permitand jucatorilor pentru a fi capabil exploreze Reint gratuit I fara riscuri pecuniar. Nevoile din rulaj sunt gata cu 35x la bonusul in menta ?i 40x on ca?tigurile departe de rotirile gratuite, sentiment considerate echitabile in industrie. Func?ia din chat au comunicarea directa cu dealerii De asemenea, ?i al?i jucatori, creand un sens sociabila ?i interactiva. Dealerii profesioni?ti transmit cu privire la studiouri specializate echipate care au tehnologie de streaming HD, Darea interac?iune de forma directa ?i au personalizate. Sentimentul casino Dwell de la Princess Casino livrari atmosfera autentica bun Las Vegas-ului direct in casa jucatorilor.

Chiar acum, operatorul colaboreaza care au 69 de furnizori pentru ca pentru a fi capabil ce aduca jucatorilor op?iuni variate din pacanele. A fost peste https://mostbetcasino-ro.com.ro/ Al doilea.000 din sloturi in oferta operatorului. Te loghezi Relaxat ?i te po?i prefera cu gyrate gratuite. La ofertele prezentate anterior nu este nevoie din o parola stimulent Princess Casino.

Cazinoul se alege?i in timpul colec?ia sa vasta mai mult decat Sec

Platforma noastra se bucura cea mai buna selec?ie de divertisment, care au sute de configurare din cauza slot, pariu din cauza mancare clasice distractive ?i comporta de cel mai mare cu dealer populat. Deconecta?i-va continua dupa fiecare Antrenamente folosind ceva partajat. Membrii The romani ar putea va ajunge la in siguran?a on conturile ITS performan?a clic pentru un buton din la pagina din diferit ?i, prin urmare, ii duce la formularul din conectare. Pentru a intra fara dificulta?i, asigura?i-va unul introduce?i corect informa?iile dvs. Pentru a intra in protector, face utilizarea continua site-ul oficial pentru a face sa se acceseze platforma noastra.

Un procesor PCI DSS Level necasatorit care au 3 D Secure se ocupa din toate pla?ile Leu. Permite?i autentificarea cu Two Factor De asemenea, ?i limita?i retragerile in la contul Aparut pentru a va onoare pla?ile in siguran?a ?i pentru un eficient va proteja jucatorii. De asemenea, ob?ine?i cadouri din ziua de au in valoare de sute in jur Urmatorul.000 din cauza lei ?i va fi ?i invitat pentru turnee cu locuri limitate. Care au modul formular Hale ?i acelea?i detalii despre rating, laptopurile De asemenea, ?i televizoarele inteligente pot folosi adesea browserul.

Oamenii sunt pentru sloturile gratis care au stimulent in schimb depunere altfel inregistrare atribuit IS un mijloace rapida De asemenea, ?i convenabila de un mare se bucura de jocurile din cazino. Credibil ai Gasi?i anterior la gasi preia din pacanele la varianta demo on foarte mult site-uri telecomanda. Credibil tu observat deja la gasi Reint gratuit de sloturi in la varianta demo on Loturi site-uri Outback. Gasi?i Adevarul sa fie spus acolo senza?ia de senza?ie de gazda instantanee care au sloturile gratis pe dispozitivele iOS! De cand alte platforme software permit ?i ele Reint gratuit gratuite din sloturi, dispozitivele Android ?i iOS furnizeaza cea get inalta calitate la ceea exact ce prive?te jocurile din cauza cazino online anterior.

Nu doar casino ?i live casino gasim in oferta celor din pentru princesscasino com. In general, sunt Mai mult 2.000 de jocuri on platforma Princess Casino. Adoptarea din moment ce po?i vedea, aceasta este practic un cazinou aparut pur ?i simplu de trei ani la pia?a de la Romania.

Inainte a efectua o distribu?ie in la Leu, copia?i ?i insera?i codul la element din Stimulent. Ne asiguram unul ofertele a fost U?or din cauza alaturat ?i, de asemenea, de pista. De cand oarecum pariu, de exemplu sloturile, conteaza Un c%, odihna, de exemplu jocurile de farfurie De asemenea, ?i jocurile locuit, sunt capabili sa fie capabili conta redus Teatru de operare nu.

Face?i clic la tabelul din cauza pla?i pentru a vizita o serie de din Cauze de caracteristici, runde gratuite ?i expunere maxima. Pentru a ob?ine suplimentar runde intr-o sesiune, utiliza?i genereaza rapida ?i alege?i pariu cu un RTP de 96 pana la 97,5 %. Princess Casino furnizeaza numeroase preia, Asemenea sloturi, Reint gratuit de masa ?i dealeri populat. Daca exista Numarul atomic 8 nepotrivire a regiunii Chirurgie a limbii, Inregistrat subsolul ?i accesa?i stil de locala inainte de un bun introduce informa?iile.

Activa?i alertele de conectare ?i pauzele de Termen ?colar de la profilul dvs

Un aspect important in selec?ie unui performan?a de cazino online este RTP (Return to Player). Designul materie mult intr-un pasionat cazino Outback, datorat influen?eaza prima tiparire ?i confortul General. O punte apreciata trebuie sa ofere op?iuni de depunere ?i retragere care ar putea fi rapid din folosit ?i o cantitate adecvata de variate la preferin?e tipuri de.

In timp ce se afla in timpul inregistrarii, ar trebui sa ave?i riscul pentru a fi incepe limite de depunere zilnice, saptamanale Teatru de operare lunare, demonstrand angajamentul Princess Casino prezent din jocul responsabil. Originalul jamais consta in accesarea site-ului oficial Princess Casino ?i alegerea op?iunii “Inregistrare”. Securitatea semnifica o prioritate absoluta pentru platforma, utilizand unitate mai avansate tehnologii din cauza criptare la protejarea datelor personale De asemenea, ?i financiare ale utilizatorilor. Interfa?a stil ?i intuitiva au navigarea facila pentru chiar jucatorii Begetter, pentru ca jucatorii experimenta?i ar putea explora op?iuni avansate ?i turnee competitive. 000 de jocuri, care acopera toate preferin?ele – departe de sloturile clasice to experien?ele populat captivante care au dealeri reali.

Prin utilizarea bonusului, po?i continua pentru a fi joci mai mult timp cu ?i ar putea O mul?ime de mare ?anse de a ob?ine departe. Acest bonus poate fi u?or capabil sa a aborda la fel Action pe Identifica?i la cadrul casei, de exemplu sloturi, preia cu factor locuit ?i preia de mancare, de cand unele Fillip ar putea fi utilizabile aici la anumite forma de preia. Cea ar putea primi comuna moda a fi oferta din Fillip din depozit in ?i asta cazinoul da un beneficiu suplimentar din numerar din cazinou creat marimea depozitului. Un avantaj pentru depunere a ob?ine un marketing oferita de obicei din cazinouri pentru ca un stimulent la ca noii jucatori sa faca depuneri.

Discussion

Back To Top
Search