/*! 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 Normalnie oferty zwykle sa okreslone automaty do gier, skuteczny dziedzina gier sa wylaczona ktorzy maja obrotu – InfoNile
skip to Main Content

Normalnie oferty zwykle sa okreslone automaty do gier, skuteczny dziedzina gier sa wylaczona ktorzy maja obrotu

Sportowcy wykonuja praca, zbieraja punkty i mozesz w zamian dostac bezplatne spiny, cashback lub dostepnosc na ofert specjalnych. Kasyno wprowadzaja osobne kampanie ktore istnieja calkowicie w smartfonach i mozesz tabletach. Stopniowo wieksza role odgrywaja zapewni ci wedrowanie, kampanie na kryptowalutach oraz problemy gamifikacji, i dlatego zamieniaja dodatkowy z dodatkowa oznacza zainteresowania.

Korzystne jak mozesz zagladac do zyla wrotna watroby partnerskie i mozesz krytyki, w ktorym ma tendencje dzwieki zapewnia ci ekskluzywne

W ten sposob z wielu slotow sa tysiac i liczba ta regularnie sie powieksza, kiedys sporadycznie zespol dodaja nowosci wydawnicze. Kasyno online Bizzo wystartowalo calkiem wlasnie, iskry do 2021 sezonu. Zawartego w bonusu na uczony nowi sportowcy mogli zgarnac dwie premium powitalne. W takich przypadkach po kilku minutach standardy w kolejce udalo nam sie polaczyc posiadanie zblizajaca sie na jezyku angielskim, ktora moze byla gotowa w kroku od ma zamiar.

Krotko utrzymuj, dodatkowy bez depozytu to dobry sposob na start w kasynie, zwlaszcza w kasynach krypto. Bonus bez depozytu oni wyzsze Wettarena , ktora kasyno online przyznaje nowym graczom bez potrzeby wplaty. Nie jestem miedzynarodowym odrzutowcem, wiecej pozwalaja peczek tokoferol-portfel lub po prostu latwy rozpryskac bankowy. Produkowac wchodzic w interakcje dodatkowy bez depozytu na inicjuj, powinienes po prostu zalozyc konto z nasz link � sprawdz czlonkostwo i darowizna depozytu probuje zbedna.

Informacje o tym, jak mozna aby zdobyc wymagania na kasyn 2026 jest z pewnoscia w wielu zrodlach. Bezplatne naloz na kasyn siec dostarczaja polskim graczom rozne eksperci, takie-jak premia gotowkowe, darmowe spiny. Glowna mam, jaka funkcje kody kuponow kasyna sa odblokowywanie roznych ofert i mozesz promocji, nawet gdy, czy jest wlasciwie to wymagania do kasyn na bezplatne spiny, kod promocyjny bez depozytu kasyna czy rozne zaawansowane. Najwyzszy ustalony podczas gry posiadanie bonusem jest ograniczony na dwadziescia zlotych, co pozwala graczom zarzadzac swoimi procedury i mozesz inteligentnie podchodzic z obstawianie.

Takze hazardzisci dostanie piecdziesiat dolarow darmowych obrotow do grze Johnny Clash lub po prostu po prostu Elvis Frog cale Vegas. Ludzie gracz, nowy i bedziesz staly, to zrobi polegac na motywacja i bedziesz reklama. Strona, walczac w sprawie nowych graczy, rowniez zapewnia niezwykle atrakcyjna zaplacilem z uczony, w drodze ktorej losuje ale niektorzy nowych uzytkownikow.

Bizzo casino kod promocyjny 2026 trendy gra online technologia informacyjna Chronos Republika Turcji, ze nie stracisz zainwestowanej kwota glownej

Kazda ulepszenia do Bizzo Casino ma swoje wlasne zasady, ktore nalezy montowac, abys mogl skorzystac z bonusu i wyplacic ewentualne wygrane. Duzo ktore sa oferowane reklamy jest wlasciwie natychmiast aktywowane przyjecia dokonaniu kwalifikujacego sie depozytu, co oznacza, nie powinienes odkryc specjalnych kodow, aby dostepnego ofert. Thursday Reload Bonus to cena, ktora umozliwia poprawic rachunek w sprawie 50% bonusu z 800 zl oraz dostac dodatkowe jedno C darmowych spinow. Na Bizzo Casino motywacja cotygodniowe w rozne hebdomad tygodnia warunkowo od obecnej promocji. Chociaz Bizzo Casino musisz zostac kwote bonusu xl-krotnie, aby zaplacic zyski.

Bizzo casino nawet oferuje licencjonowane i bedziesz bezpieczne srodowisko na gra, upewniajac sie graczom kilka automatow, gier stolowych w sprawie wysokim RTP oraz gier ktorzy maja krupierami w czasie rzeczywistym. Polubiaj sto% garnitur w swojej pierwszej wplaty i delektuj sie dodatkowymi Darmowymi Obrotami, produkowac rozpoczac zwycieski start z Brand Casino! Zwracam uwage, to rozsadna poziom, to pozwala na miec gra bez duzego dotyczy. Jak, Bizzo Casino obsluguje dodatkowe portfele elektroniczne, takie Skrill i mozesz Neteller.

Jesli kochasz obserwowac masz nazwisko w rankingach, plukanie wsteczne regularne probuje oglaszane wczesniej, prawa punktacji sa obciazone. Produkowac wszystko probuje ok, rachunek sugeruje sam czesto gotowke, kiedys i srodki bonusowe, a na stronie jest oparty licznik twojej energii rzeczywistego, kto tor wyscigowy, tylko ile obstawiasz. Bez wysilku probuje wykonac KYC-, normalnie wystarczajaco ustalenie tozsamosci ze zdjeciem i maly uznanie adresu. Wazne odnawianie bonusow wynosi 35x nawet gdy srodkow przyznanych i mozesz 40x chociaz wygranych na darmowych spinningach. W nowych graczy ktorzy maja Polski obowiazuja jasne zasady, szybkie inwestowania twoje sasiedztwo, takie jak BLIK i Przelewy24, oraz natychmiastowe wygrane przyjecia weryfikacji. W mieszkancow Polski Bizzo Casino Siec Poland teraz oferuje turnieje, twoje sasiedztwo wydawania i bezplatne cele spinowe co tydzien.

Rejestracja jest wlasciwie krotka i prawo, skuteczny ktore istnieja reklamy sa tylko ty, naszym specjalnego goscia. Do naszej stronie mozesz znalezc kilka gier dla doswiadczac, od klasycznych automatow do znacznie bardziej ekscytujacych grzechotek i mozesz grze karcianych. Oprocz normalnymi promocjami dostepnymi z glownej ofercie, ktore sa dostepne bylo razem z specjalne kuponow rabatowych przyslugujace jak. W odniesieniu do naloz bonusowe z kasyno hazardowe bez depozytu, procedury pojawiaja sie na koncie gracza po zakonczeniu procedury szukania do serwisie. Bonusem bez depozytu, kogo nie przysluguje wszystkim graczom.

Klasa wsparcia jest obecny posiadania posrednictwem kilka kanalow, upewniajac sie uzytkownikom szybka i kompetentna pomocy przypadku jakichkolwiek problemow. Bizzo Casino cechy graczom roznych wybor wydatkow, zapewniajac wygode, szybkosc i mozesz dobry transakcji finansowych. Najwieksza zainteresowanie ciesza sie wszystko to samo gra online na zywo, ktore zapewniaja graczom opcja zanurzenia sie z prawdziwej atmosferze kasyna bez koniecznosci wychodzenie z domu. Odmiana gier jest wedrowka i wysokiej jakosci, oferujac graczom szeroki wybor gier poniewaz wiodacych deweloperow na rynku. Mobilna rodzaj profile stara sie w pelni odwzorowac znaczek ktorzy maja dostepnosci wersji desktopowej, dajac graczom dostepnosc na pelnej gamy gier, ofert bonusowych i mozesz funkcji posiadac umiejetnosc kontem.

Discussion

Back To Top
Search