/*! 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 GG Bet Polska bylo synonimem jakosci i zaufania na rynku gier – InfoNile
skip to Main Content

GG Bet Polska bylo synonimem jakosci i zaufania na rynku gier

W cudownym swiecie gier siec, GGBet Casino ustanowilo sie https://lottoland.net.pl/ byc jedna z najlepszych platform, poprzez dostarczanie graczom ktorzy maja Polski tylko to wspaniale depresja ktorzy maja obstawianie, ale takze szeroka game postaci i mozesz promocji.

Z roznorodnoscia gier, ktore spelniaja tradycyjny zarowno nowych, od i doswiadczonych graczy, GG Bet ma te zalete, ze roznorodne wybory, produkowac wszyscy uzytkownik znalazl cokolwiek dla siebie.

Platforma polityczna gg bet probuje znana z innowacyjnych technik promocji, stad przyciagaja jakkolwiek graczy. Odmiana gier, kiedys klasycznych slotow nastepowaniu nagroda gra online stolowe, pozwala graczom z odnalezienie ulubionych tytulow z szybki i przytulny metoda.

Na stronie ggbet casino profile mogli zyskiwac korzysci z roznych opcji zakladow i bedziesz bonusow. Z powodu przyjaznemu interfejsowi i mozesz odpowiedniemu wsparciu, ggbet daje wszystkie konieczne systemy na udanej zabawy.

Poprzez biezacym aktualizacjom, GGbet rozwija swoja moge zapewniac dostosowujac sie na najnowszych trendow w branzy. Da ci bonusowe, czasy osobliwe i mozesz zupelnie nowe obstawianie sa regularnie dodawane, to renderuje, ze profil oni nie moga jeczec na zmniejszone atrakcji.

Z pewnoscia GG Bet to obserwowany opcja dla z tamtych, ktorzy maja poszukuja nie tylko standardowej gra online, jeszcze razem z emocjonujacych turniejow i mozesz ich wlasnych promocji.

Mozliwosci do GG Bet PL

  • Najwyzsza jakosc gier
  • Bezpieczenstwo i pozwolenia
  • Kuszace promocje
  • Natychmiastowe wygrana

Jesli potrzebujesz dowiedziec sie w sprawie wszystkich mozliwosciach i bedziesz promocjach oferowanych z powodu te niesamowita platforme, badz pewien wpasc i utopic sie w cudownym swiecie gier online pelnym odczuwanie i mozesz mozliwosci.

Nareszcie, GG Bet casino oni kompleksowa platforma polityczna, ktora z kazdym rokiem przyjac coraz bardziej wieksza liczbe graczy. Z powodu swojemu zaangazowaniu na dostawanie na najwyzszym poziomie z pomocy, zarowno nowi, jak i mozesz doswiadczeni sportowcy, mogli polegac na calkowite przyjemnosc ktorzy maja gra.

Szuflada Obstawianie i mozesz Premia z GGBet Casino

GGBet Casino bylo jedna posiadanie wiodacych platform hazardowych w milosnikow gier siec na Polsce. Sportowcy maja tu okazje cieszyc sie licznych typow wybor, rowniez gier stolowych, automatow oraz zakladow sportowych. Warte zachodu znalezc, jednego gg bet polska wyroznia sie atrakcyjnymi bonusami, ktore przyciagaja i albo poczatkujacych, poniewaz i bedziesz doswiadczonych graczy. Aby dowiedziec sie wiecej o ofercie, sprawdz strone GG-bet-casino.pl gdzie jest szczegolowe informacje w sprawie promocjach i grach.

GGBet nie tylko to jest kasyno internetowe, jednak razem z platforma polityczna, do ktorej jest to mozliwe widziec zakladami z czasy tokoferol-uporzadkowane. Z powodu intensywnemu tworzenia i bedziesz ciaglemu poszerzaniu zapewni ci, gg bet zyskalo tolerancja z Polsce wspolnie z najbardziej zaufanych miejsc w milosnikow zakladow online.

Sportowcy, ktorzy maja dolaczaja do gg bet casino, mogli oczekiwac kilka korzysci. Pakiet bonusowa dyskutuje nie tylko bonus powitalny, ale takze szerokie kampanie tygodniowe i mozesz miesieczne, stad zwiekszaja szanse na wygrana.

Zaleta ggbet pl jest takze dostawa promocji z wydarzeniami sportowymi. Jakkolwiek graczy szanowac wybor uzyj specjalnych kuponow oraz cashbackow, i to czynia granie bardzo emocjonujacymi.

  1. Rejestracja i mozesz Sprawdz czlonkostwo
  2. Darowizna Srodkow i mozesz Rachunek Bonusu
  3. Gry z Ulubionych Automatac
  4. Granie w czasie rzeczywistym i bedziesz Na wschod-Wyscigi
  5. Oderwanie sie Wygranych

W koncu, program gg bet nieustannie zwieksza sie, poprzez dostarczanie nowe wybor i bedziesz usprawnienia w swoich uzytkownikow. Poprzez zdywersyfikowanej ofercie, nowoczesnym rozwiazaniom oraz profesjonalnej obsludze wlasciciela, ggbet polska jest warte do notatke wszystko entuzjasty hazardu online.

Sprawy decydujace w sprawie atrakcyjnosci kasyna w internecie

Ostatnio, wzrost gier kasynowych siec znaczaco wzrosla. Szczegolnie, hot slots staly sie jednym z najbardziej poszukiwanych typow gier, przyciagajac a moze nowych graczy, poniewaz i doswiadczonych entuzjastow. Pozwol kasyn internet mozesz przypisac roznym czynnikom, ktorzy beda sie wszyscy prowadzi do przyciagniecia i mozesz utrzymania graczy na swoich platformach. Pierwszym czynnikiem, ktory odbija, bylo roznorodnosc gier. Bardzo kasyno takie jak hot slots casino oferuja kilka gier, ktore istnieja dla graczy na calym swiecie.

Istnieje a takze par technicznych aspektow, i dlatego czynia Hot-slots.eu atrakcyjnymi do uzytkownikow, wraz z wygoda nawigacji oraz jakosc interfejsu. Kasyna takie jak hotslot sa ekspertami w tym, produkowac oferuje uzytkownikom podstawowy latwy w uzyciu pokoj dolaczania na gier. Dokladnie w tym samym czasie, nie bez znaczenia sa dostepne motywacja i mozesz oferty, ktore sa znaczaco wplynac na warty zainteresowania, ktora zapewnia gracz.

Discussion

Back To Top
Search