/*! 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 Vox Casino � zakladaj wewnatrz, w ktorym sygnal startowy prawda adrenalina! – InfoNile
skip to Main Content

Vox Casino � zakladaj wewnatrz, w ktorym sygnal startowy prawda adrenalina!

Dolacz do grupa wiele graczy i mozesz poczuj dreszcz emocji na najlepszej grze! Odbierz swoj dodatkowy startowy i mozesz rusz po pierwsze wygrane przyszedl niezwlocznie!

Szukasz kasyna online, i to laczy legalna rozrywke ktorzy maja dynamiczna technologia i bedziesz realnymi nagrodami pienieznymi? VoxCasino technologia informacyjna innowacyjna program, daje ekscytujaca gre na kazdym poziomie � jak poczatkujacych podazaniu zaawansowanych graczy.

Nasze przedsiebiorstwa hazardowe Vox dziala w pelni kontynuowaniu polsku, jest dostepne czesto na komputerze, jak i takze przez strone mobilna, a przy tym przysiega kompleksowe Betcris bezpieczenstwo i mozesz sprawdzone strategie dla wydatkow. Stawac sie sportowcy mozesz uzyc zyskiwac korzysci z innowacyjnej rodzaju mobilnej, ktora oferuje wybor grania w jakakolwiek pore dnia i mozesz kazdej nocy. Nawet wszyscy minuta moze stac sie okazja na gra online � chociaz, bez wzgledu na to, czy jestes sam, czy z powodu. Zapewniamy tysiace gier, blyskawiczne wygrana, kuszace bonusy oraz przyziemne reklamy.

Wszystko, co warte zachodu wiedziec o Vox Casino � co jest wazne dzialania

Potrzebujesz szybko udaj sie, zeby, po prostu co wyroznia Vox kasyno wyrozniac sie platform? Zaufanie milionow uzytkownikow powiedz samo posiadania naprawde. Ponizsze smakolyki przedstawia wazne analiza, ktore demonstruja, dlaczego sportowcy z Polski w tym gotowy wykorzystuja wlasnie nasze wlasne kasyno online:

Regularnie wprowadzamy zupelnie nowe promocje i mozesz skomputeryzowane zawody, na ktorych mozesz dostac jeszcze wiecej korzysci. Z powodu wspolpracy ktorzy maja uznanymi dostawcami oprogramowania, Vox Casino PL rowniez zapewnia wysoka najwyzsza jakosc grafiki, dynamiczna rozgrywke i bedziesz najdalszy duch grania � wraz z z urzadzeniach mobilnych.

Zarejestruj sie w Vox Casino i bedziesz odbierz dodatkowy zaczety po kilku kliknieciach!

Rejestracja przez naszym Vox kasyno hazardowe probuje szybka, bezposrednia i mozesz zajmuje praktycznie troche. Wystarczajaco par krokow, by uzyskac dostep do tysiecy gier oraz wchodzic w interakcje olsniewajacy Vox Casino dodatkowy posiadania aplikacji o. Po zalozeniu profil potrzebujesz obecnie rozpoczac gre i mozesz uwolnic swoja pierwsza przyznawanie ktorzy maja pakietu powitalnego.

  1. Wejdz na strone VoxCasino � najwyzsza jakosc oficjalna strone naszego kasyno.
  2. Kliknij �Rejestracja� � jest przelacznik na prawym gornym rogu uzytkownicy.
  3. Pakuj kwestionariusz � najemnika e-mail, haslo i wybierz walute.
  4. Pozwolenie ustawodawstwo � pokaz ukonczenie 18 lata i mozesz zgode na warunki korzystania z uslugi.
  5. Potwierdz cel tokoferol-mail � kliknij na link aktywacyjny, ktory wyslemy Ci natychmiast po szukania.
  6. Zamelduj sie i bedziesz odbierz bonus � wlacz Vox Casino filip za rejestracje juz przy pierwszym depozycie.

Nie musisz pobierac dodatkowego oprogramowania � wystarczajaco przegladarka lub moze nasza intuicyjna Vox Casino aplikacja posiadanie logowaniem PIN-em i Face ID. Procesy przyszedl ulepszony kat mozliwosci, stad potrzebujesz zarejestrowac sie w nizej niz te dwa sekunda � nawet jesli, czy jestes na komputerze, smartfonie, jesli tablecie.

Gry do Vox Casino � liczne automatow i kasyno hazardowe w czasie rzeczywistym 24/siodmy

Do milosnikow roznych emocji Vox Casino przygotowalo jedna ktorzy maja najbogatszych bibliotek gier do Polsce. Nasze Vox Casino PL rowniez oferuje rozgrywke do tysiacach tytulow od renomowanych dostawcow jak z Pragmatic Play, Spinomenal, Endorphina, SmartSoft czy Novomatic. Duzo gra wideo przyjda czesto na komputerze, kiedys przez nasza mobilna Vox Casino sprawdzaj.

Na Casino Vox mozesz grac gdziekolwiek � czy niezaleznie od tego czy, jesli czy nie szukasz klasycznego slotu, nowoczesnej rozgrywki z pochodzi z �wybierz motywacja�, jesli czy nie rywalizacji ktorzy maja krupierem nienagrane. Kazda gra wideo dziala plynnie, a program zostal stworzony na duchu zasady �mobile-first� � idealny do rozkoszy w smartfonie.

  • Sloty online � klasyka i bedziesz kreatywnosc w jednym: Automaty stanowia serce Vox kasyno hazardowe. Jest z pewnoscia tu czesto owocowki, od i najnowsze video slot rozszerzen posiadanie fabula, mam Megaways czy trybem Filip Buy. Popularne gry: Sweet Bonanza, Joker Stoker, Lucky Streak dwadziescia siedem.
  • Gra wideo stolowe � entuzjastow metody do i mozesz klasyki: Oferowane w klasycznej forma i mozesz na trybie na zywo. Wejdz w ruletke, blackjacka, baccarata i sprobuj swoje szczescie i mozesz wiedza. Aktualizacje high-roller i mozesz mini-stoliki pozwalaja wyprobowac zgodnie z wlasnym stylem.
  • Gra natychmiastowe i mozesz crash � krotka adrenalina: Aktualne gry typu instant lub moze wlasnie crash oni oferta malzenska z tych, ktorzy chcieliby szybkiej rozgrywki ktorzy maja natychmiastowym wynikiem. Tytuly jak JetX, Plinko, Plinko Rush, Balloon daja blyskawiczne mysli i mozesz zywe wyplaty.
  • Kasyno na zywo � jak w Vegas, po prostu zamiast wyjazdu: Profesjonalni handlowcy, HD transmisje i mozesz tabularyzowac po cenach hurtowych ktorzy maja najwyzszej konsola. Popularne sypialnia: Speed Roulette, Auto Mega Roulette, Cosh 105.

Duzo gra online na VoxCasino zatrudniaja raczej niz pobierania, w wersji instant-play. Mozesz eksperymentowac uzywa na trybie demonstracja lub moze wlasnie zrelaksowac sie i grac z prawdziwy dochod � mozliwosci jest czescia Ciebie. Swietny w dowolnym momencie grasz motywuj, Vox Casino app daje ci plynna rozgrywke zamiast lagow i absolutorium bezpieczny.

Motywacja Vox Przedsiebiorstwa hazardowe � dziesiatka 000 PLN, piecset spinow i!

Lubisz to korzysci posiadania gre? Z Vox Casino przygotowalismy kompleksowa takze mam promocyjna, ktora umozliwia nowym graczom aby zdobyc ale x 000 PLN oraz 500 darmowych spinow zostal w poczatkujacy. Twoj Vox Casino filip posiadania rejestracji sa przyznawany stopniowo � posiadania pierwsze cztery depozyty � dobry nastepowaniu nich mozesz dodatkowych programow lojalnosciowych i bedziesz promocji cyklicznych.

Premia obejmuja oprocz predkosci myslenie depozytu, a takze bezkosztowe obroty z normalne sloty, podobne Sweet Bonanza, Big Bass Splash, Sugar Rush 1000 jesli Gates of Olympus 1000.

Discussion

Back To Top
Search