/*! 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 Graj za darmo zamiast rejestracji i na prawdziwy dochod – InfoNile
skip to Main Content

Graj za darmo zamiast rejestracji i na prawdziwy dochod

W ofercie polskiego ???? siec kasyna Play Okup krolewski zawodowi sportowcy znajda zakonczono 5900 o automatow w gier, . jednoreki bandyta posiadanie jackpotem, ponad 450 gier stolowych i bedziesz Joker Madness gier ktorzy maja natychmiastowymi wygranymi. Sloty zachwycaja roznorodna tematyka i fabula, z powodu czemu zawodowi sportowcy mogli przetrwac prawdziwa zaryzykuj, doskonaly nowe funkcje bonusowe zwiekszaja szanse na wygrana.

Do 2023 roku Play Fortuna odswiezyla oprogramowanie oficjalnej uzytkownicy kasyno, tot oddzielac, ktore pozwalaja zawezac i mozesz dostosowywac serpy tak, stworzony, aby obstawiajacy moglbym szukac poprawnie te gre, ktora szuka.

Nowosci, polacz internet kasyna i wszystkie wazne ulubione sa zlokalizowane tuz pod spodem symbol. Niniejsza opinia to szybki i mozesz kompaktowy awaria Play Fortuna kasyno hazardowe, to jest podzielony na podrozdzialy. Ktora sprawi latwo odkryc potrzebna informacje, dobra rzecz, ze spisu pisanie.

Zezwolenie Play Fortuna kasyno

Play Fortuna kasyno hazardowe cechy licencje hazardowa, wydana do 2012 roku z regulatorzy Curacao. Playfortuna bylo hartowana przez firme NETGLOBE SERVICES LTD, to jest operatorem systemu zakupow posiadanie nazwa i adresem na doreczen, rozumianym jest bezposredni siedziby organizacje.

GLOBONET B.V. – siedziba organizacje pasuje w adresem: Kaya Richard J. Beaujon Z / N, Curacao, wlaczyc 1668 / JAZ, wydana z regulatorzy Curacao.

Roznorodnosc gier na polskim ???? Play Okup krolewski kasyno

  • Jednoreki bandyta – jednoreki bandyta, i dlatego zachwycaja na najwyzszym poziomie szata graficzna i mozesz oprawa dzwiekowa, roznorodna fabula, ciekawymi postaciami, prostym, intuicyjnym interfejsem i bedziesz atrakcyjnymi funkcjami bonusowymi.
  • Jackpoty – automaty do gier z przypisanym jackpotem stalym czy progresywnym.
  • Kasyno live – obstawianie nienagrane z ruletke, bakarata i mozesz blackjacka ktorzy maja prawdziwym krupierem.
  • Gra stolowe – gry karciane i mozesz 20. osobach forma ruletki.
  • Klipy wideo poker piecowy – poprawne zwiazek mechaniki klasycznych slotow posiadanie grami karcianymi.
  • Obstawianie natychmiastowe – Keno, Loteria, Zdrapki – popularne obstawianie, ktore moga miec latwe i przejrzyste wytyczne.

Nowi sportowcy, ktorzy stawiaja podstawowy dzialania w szerokim swiecie automatow w gier, na polskim siec przedsiebiorstwa hazardowe Play Tony pieniedzy byli w stanie podjac gra wideo slotowe zupelnie calkowicie za darmo i bedziesz bez szukania na forma obecna. Decydujac o ustawienie demonstracyjny, gracz posiada opcja za darmo, raczej niz stresu, jednego przegra ma place, nauczyc sie zasadami gra, lokalizowac byc intymnym i mozesz nabrac wprawy tuz przed gra na prawdziwa gotowka. Obstawiajacy, ktory chce grac za prawdziwy dochod, trzeba sie przeslac w kasynie. Podazaniu wypelnieniu formularzu rejestracyjnego i mozesz weryfikacji profil, obstawiajacy musi odlozyc najpierw rozszczepiac i bedziesz wcisnac �Na waluta�. Play Tony pieniedzy kasyna w Polsce mam tutaj waluty na wplat:

  • Zloty;
  • Euro;
  • Pieniadze westerly;

Zespol oprogramowania dla polskiego kasyno hazardowe

Najlepsze internet kasyno Play Fortuna zawiera nowe gra wideo i mozesz odnosi sie wspolprace ktorzy maja nowymi licencjonowanymi tworcami gier kasynowych. W biezacym sezonu 2023 na Play Fortuna dolaczylo zostal trzy nowych licencjonowanych obsluga. Jest wlasciwie technologia informacyjna nowoczesni biznes posiadanie duzym potencjalem, majacy na na grach z krupierem na zywo, automatach w internecie i grach blyskawicznych. Gra nienagrane a takze otrzymaly nowy rozwoj rowniez dodaniem bakarata na zywo z powodu Eguzi i mozesz Playtech. W ofercie Play Tony pieniedzy sa obserwowane po prostu popularne gry, tak twoje liczba nie chce od czwartorzed do ponad 3sta tytulow wszystko wytworcy.

Zachety na polskim kasynie internetowym Play Duzo pieniedzy

Dodatkowy bonus powitalny motywacja z zacznij – 100% jak depozytu, warunki obrotu bonusem: 40x; Fakty obstawiajacy ma punkty zintegrowany, jednego do gra wideo na prawdziwy dochod. Srebrni, Zloci, Platynowi i mozesz Diamentowi gracze mogli spodziewac sie lepszych warunkow zdobywania punktow. Kody kuponow kod komputerowy bonusowe rozdawane bylo z graczy z uzyj na wschod-mail jesli czy nie Sms. Mozesz tez mam pozyskac, wchodzac do widocznosc par kasyno. Kody promocyjne mogli wykorzystac tylko zarejestrowani graczy ktorzy maja Polski. Z kodem bonusowym dodatkowo mozna dostac bezkosztowe spiny czy czy nie motywacja. Ktora sprawi dostepnego kodu promocyjnego, musisz byc drewno. Bezplatne spiny od pierwszego depozytu free spiny sa czescia pakietu powitalnego. Hazardzisci, przyjecia wplaceniu pierwszego depozytu, zawiera setki% jak pierwszej dokonanej wplaty oraz na piecdziesiat dolarow darmowych spinow. Wymagania obrotu – 20x. Gracz nie powinien wyplacic gotowki plus nie wartosci wynikajacej z rachunki firmowe bonusu, dopoki nie zakonczy obracania bonusu.

Discussion

Back To Top
Search