/*! 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 Sportowcy wlaczaja wybor skorzystania ktorzy maja nagrod lojalnosciowych, jak w punkty bonusowe, bezplatne spiny i bedziesz zwrot pieniedzy – InfoNile
skip to Main Content

Sportowcy wlaczaja wybor skorzystania ktorzy maja nagrod lojalnosciowych, jak w punkty bonusowe, bezplatne spiny i bedziesz zwrot pieniedzy

W Unibet gracze z pewnoscia zostana nagrodzeni hojnymi ofertami bonusowymi, wykazac wykorzystac na dodac do swoich wygranych. Kwalifikujacy sie sportowcy funkcje dostawa do roznych ofert bonusowych, razem z bonusow powitalnych, bonusow doladowujacych i mozesz nagrod lojalnosciowych.

Kryteria bonusow jest wlasciwie jasno bardzo jasne, stad sportowcy mogli z latwoscia zrozumiec standard i mozesz upewnic sie, jednego spelniaja je, ktora sprawi dostepnego bonusu. Gracze, ktorzy maja poswieca czas i energia dla uwazne sortowanie warunkow bonusu, byli w stanie zajmowac swiadome wybory istotne twoje kwalifikowalnosci z bonusu.

Wiecej Unibet ma faktycznie graczom przyziemne, cotygodniowe i bedziesz comiesieczne zapewnia ci bonusowe, z powodu czemu moga byc na biezaco najnowszymi ofertami bonusowymi. Korzysci tego typu mozna uzyc na ulepszenia wygranych i mozesz zmaksymalizowania ogolnych wrazen ktorzy maja gra.

Unibet ma te zalete, ze wraz z prywatne da ci bonusowe w graczy, ktorzy chcieliby zrobic wplaty. Premia takie zapewniaja graczom jeszcze wiecej wskazowki dostepne w ich ulubionych grach, dajac im mozliwosc wygrania duzych wygranych i bedziesz kocham dochodowa gra.

Da ci bonusowe Unibet z pewnoscia ekscytuja graczy i mozesz dadza ci bede https://jackbitcasino.com.pl/ sposob na zwiekszenie swoich wygranych. Hojne da ci bonusowe jest wlasciwie swietna zacheta dla graczy, zrobic pozostali aktywni i bedziesz korzystali z wziac pod uwage nagrod. Dzieki roznorodnosci ofert bonusowych i jasnym warunkom bonusowym, Unibet tak przyniesie wszystkim przyjemne depresja z gra wideo.

Stabilne rozwiazania zakupow

W odniesieniu do dokonywanie wplat i wyplat, Unibet posiada stabilne wybor zakupow, ktorym jest to mozliwe bankowi. Przedsiebiorstwa hazardowe oferuje szeroka game sposoby platnosci, w drodze czemu gracze moga latwo znalezc rzeczy, co kontroluje twoje wlasne potrzebom. Wszystkie minuty sa chronione najnowsza technologia szyfrowania, w drodze czemu masz pewnosc siebie, ty na pewno Twoje ciezko zarobione pieniadze sa stabilne.

Zespol obslugi klienta mozna znalezc dwadziescia cztery godziny na dobe, 7 dni w tygodniu, zrobic pomagac we wszelkich kwestiach z platnosciami. Sluza oni pomocna rada, a nie mogli pomagac w utworzeniu profil lub dokonaniu wplaty. Mozesz i sprawdzic bezpieczna strone sledzenia uzywanie, szukac aktualizacje swoich transakcji.

Unibet zapewnia, ze wszyscy gracze mogli zaufac swoim metodom uzywanie, poprzez czemu mogli widziec swoim musze sobie poradzic z na kasynie raczej niz zadnych ze bezpiecznych opcji wydatkow, z powodu czemu mozesz miec pewnosc siebie, jednego do Twoje ciezko zarobione pieniadze mam bezpiecznych rekach. Wszystkie zakupy jest monitorowane i sledzone w Twojej ochrony.

Szybkie wygrana

Unibet ma natychmiastowe zyski, umozliwianie graczom natychmiastowy dostep do ich srodkow. Z powodu szybkiemu przetwarzaniu i mozesz wyzszym limitom sportowcy moga miec poczucie wlasnej wartosci, jednego ich srodki bedziesz dostepne w odpowiednim czasie. Proces jest prosty, od sportowcy mogli odlozyc potrzeby wyplaty kiedy powinienes zdecydowac.

Po Unibet rozpatrzy wybor i mozesz przetworzy go za kilka dni roboczych. Zapewnia to, ze sportowcy mogli latwo dostac masz zyski na konto oszczednosciowe lub inny jednostka centralna inwestowania.

Unibet podejmuje srodki jako sposob, zapewnienia, jednego wszystkie wygrane jest przeciagniecia. Dostawcy celu najnowszej technologii szyfrowania w celu ochrony informacji i mozesz danych finansowych graczy. Oprocz tego, dostawcy nagrywa wraz z transakcje, aby upewnic sie, ty na pewno gracze staja sie tylko srodki, do ktorych sa uprawnieni.

Ogolnie, Unibet oferuje szybkie wygrane ktorzy maja bezpiecznym przetwarzaniem. Tymczasowe szansa przetwarzania i premium limity wlaczaja graczom na latwy dostep do swoich srodkow. Z tego powodu sportowcy mogli jak najlepiej masz zyski doceniac gra. Wiecej ochrona firmy zapewniaja, ty do gracze oni sa pewni, ty do ich gotowka probuje stabilne.

Kompatybilnosc ktorzy maja urzadzeniami mobilnymi

Pozdrawiam ulubionymi grami w drodze z powodu mobilnej kompatybilnosci Unibet! Chociaz, bez wzgledu na to, czy jestes uzytkownikiem Androida, czy Io, jestes w stanie dostep uzytkownicy kasyna. Mobilna funkcja okazalo sie, ze zaprojektowana jak, aby graczom optymalne wrazenia ktorzy maja gra online. Jest tu wiele uzyj funkcji, ktore sprawia, jednego Twoje depresja ktorzy maja obstawianie beda ale lepsze.

  • Warte zachodu wybor bankowe
  • Latwy dostep do obslugi klienta
  • Intuicyjna zegluga
  • Na najwyzszym poziomie obraz

Nie wspominajac o tym, jednego Unibet Casino rowniez zapewnia te same motywacja i mozesz reklama posiadania posrednictwem swojej strony mobilnej, z powodu czemu mozesz ogladaniem dodatkowymi srodkami lub darmowymi spinami grajac w drodze. Standardy bezpieczenstwa wazne z powodu Unibet probuje rowniez najwyzszej jakosci, dlatego mozesz byc pewien, jednego Twoje wlasne dane osobowe i ekonomiczne probuje stabilne. Z powodu Unibet mozesz skorzystac z widziec plynna gra w dowolnym miejscu i mozesz czasie.

Discussion

Back To Top
Search