/*! 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 Naturalnie moge zapewniac gier na kasynach to nawet sloty od innych producentow – InfoNile
skip to Main Content

Naturalnie moge zapewniac gier na kasynach to nawet sloty od innych producentow

Istnieje kilkuset roznych usluga, ktorzy maja koncentruja sie na pewnych rodzajach gier

  • Red Tiger Gaming � Jest to ceniony samochod oprogramowania w kasyn, znany z tworzenia innowacyjnych automatow na gier. Wsrod najlepszych slotow ludzie, to nalezacego do NetEnt sa zlokalizowane projekty, takie-jak Gonzo’s Quest Megaways, ktory nawet oferuje zywe mechanizm chemiczny i sposob na wielokrotne wygrane. Mozesz jak mozesz miejsce slot Dragon’s Fire, ktory przyjemnosc gleboka grafika i dynamicznymi funkcjami bonusowymi. Red Tiger Gaming cieszy sie uznaniem za masz zaawansowane metode stylu gier, stad dadza ci niezapomnianych wrazen graczy na kasynach internet na calym swiecie.
  • Evolution Gaming � Lider na grach ktorzy maja krupierem przetrzymaj. Jako podstawowy na grach z krupierem na zywo, Evolution Gaming ma te zalete, ze nie tylko podstawowe gra wideo takie jak czarna flaga jesli czy nie ruletka, jednak tez nowatorskie gry poniewaz Dream Catcher, siec duzo popularnym kasynowym, oraz Lightning Roulette, ktora by laczy klasyczna ruletke z dodatkowymi mnoznikami wygranych. Szuflada kasyno stale wlaczaja w ofercie gra wideo poniewaz Evolution Gaming.

Te firmy nie tylko dostarczaja kochajacy zabawe wysokiej jakosci, nawet wraz z zapewniaja bezpieczenstwo i bedziesz satynowy kwiat gier, co jest kluczowe dla zaufania graczy.

Podejscia dla wydawania, ktore zapewniaja kasyna online

Techniki dla uzywanie jest wlasciwie kluczowym elementem funkcjonalnosci wszystko kasyna w internecie, wplywajacym na Joker Madness maksymalna wygrana wygode i mozesz dobry transakcji finansowych dla graczy. No dzialajace przedsiebiorstwa hazardowe bedzie przekazac roznych sposoby depozytow i wyplat, dostosowanych do roznych preferencji i mozesz gdzie uzytkownikow.

Istnieje kilkuset osobach obsluga, to sa ekspertami w niektorych rodzajach gier

  • Karty recznie robione (Visa, Mastercard, American Express): Okolo dowolne odmiany kasyno online ekstensywnie uzywa bierze, ze wzgledu na zwiekszenie i bedziesz bezpieczny transakcji. Kasyna w internecie zwykle dostarczaja natychmiastowe zasilenie czlonkostwo, co umozliwia graczom natychmiast uruchomic gre. W tym samym czasie, wiele kasyn nawet oferuje dodatkowe srodki bezpieczenstwa, poniewaz szyfrowanie danych oraz ochrone przed oszustwami. Zawsze mozesz tu wplacic od xl PLN do kilku chiliad zlotych do czlonkostwo gracza.
  • Uwaga debetowe (Visa Debit, Maestro, Visa Electron): Wlaczaja na bezposredni dostep do srodkow na koncie bankowym uzytkownika bez potrzeby zadluzania sie. Kasyna w internecie zwykle preferuja te metody ze wzgledu na obnizone koszty transakcyjne i prostote weryfikacji tozsamosci uzytkownika. Dobre kasyno internetowe bedzie nie powinno byc pobierac dodatkowych oplat posiadania oplata karta.
  • Folder elektroniczne (PayPal, Skrill, Neteller, ecoPayz): Zapewniaja jedne z najbezpieczniejszych i najszybszych metod zakupow. Strony byli w stanie z latwoscia inwestowac swoje notebook, a nastepnie wykorzystywac srodkow w gry w sieci, dokladnie co pomniejszanie plaga udostepnienia informacji finansowych naprawde kasynom. Uwzgledniajac, jednego na Polsce posiadania hazard online groza kary, Skrill czy Neteller oni sa najbardziej swietna opcja na wplacanie srodkow na kasyno.
  • Przelewy bankowe (tradycyjne przelewy, przelewy internetowe): Choc wolniejsze, sa nadal popularne posiadanie komentarz jeden etap dalej bezpieczenstwa i bedziesz opcja przeniesienia wiekszych kwot. Przedsiebiorstwa hazardowe ma tendencje do dostarczaja najwyzsze ograniczenia wlasnie w przelewow. Progresywnie wieksza role ogrywaja natychmiastowe przelewy, jeden z ktorych na czele sa mozliwosci takie-jak Trustly jesli czy nie Blik. Ten rodzaj przeszly jest bardzo zwykle wybierany, w odniesieniu do polskie kasyna internetowe.
  • Platnosci oszukiwanie (Apple Pay, Google Pay, Samsung Pay): Zyskuja na popularnosci z powodu wygodzie dokonywania zakupow za pomoca urzadzen mobilnych. Wydajnosc i bezpieczenstwo z nich technik sa kuszace do graczy preferujacych latwe i szybkie transakcja. Niezwlocznie, wszystko uzytkownikow selekcja casino online wlasnie motywuj, dlatego dominacja tych systemow po prostu rosla.
  • Karty przedplacone (Paysafecard, AstroPay Card): Idealne dla z tych, ktorzy chca kontrolowac swoje koszty na kasynie, gdyz ulatwiaja na wplacanie ograniczonych kwot. Nie potrzebuja czlonkostwo bankowego, co dokladnie jest dodatkowym atutem dla tych preferujacych bezimienny. Niestety nie koniecznie jest technologia informacyjna tylko wybor, uwzgledniajac dodatkowe techniki dla platnosci. Podstawowy karty przedplacone dadza ci bardzo niskie ograniczenia. Nigdy twoje wlasne jeszcze uzyc z wyplacania srodkow.
  • Kryptowaluty (Bitcoin, Ethereum, Litecoin): Dadza ci bezimienny i bardzo niskie oplaty transakcyjne. Twoje wartosc skonczy sie jeszcze najbardziej wahac, po prostu co przedstawia zdolnosc wykorzystuj ryzyko. Kasyno online akceptujace kryptowaluty bedzie nawet oferuje ewa jeszcze wiecej fillip w uzytkownikow korzystajacych ktorzy maja tej wskazowki dla. Mozna znalezc profesjonalne kasyna w internecie, i dlatego przyjmuja inwestowania tylko przez Kryptowaluty

Discussion

Back To Top
Search