/*! 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 VulkanBet Casino nawet oferuje szereg dodatkowych promocji dla aktywnych graczy, ktore mozna wchodzic w interakcje codziennie na tygodnia – InfoNile
skip to Main Content

VulkanBet Casino nawet oferuje szereg dodatkowych promocji dla aktywnych graczy, ktore mozna wchodzic w interakcje codziennie na tygodnia

System Mnostwo technologia informacyjna okazjonalna gry bonusowa, z ktorej sportowcy byli w stanie losowo zdobyc korzysci takie bezplatne spiny, lza bonusowa czy rozne niespodzianka – wystarczy nagradzac wymagania danej promocji, zaprojektowany, przejrzec obrotow kolem.

Natomiast w ramach kwietniowej promocji ktore sa oferowane sa bonusy posiadania depozyt + bezplatne spiny na Sweet Bonanza. Kontynuowaniu aktywowaniu oferty na zakladce �Bonusy� i bedziesz zlozeniu depozytu na 48 godzin, obstawiajacy moze zeby:

  • dwadziescia zl depozytu – 80% dodatkowy + dwadziescia spinow
  • 50 zl depozytu – 100% motywacja + czterdziesci spinow
  • 200 zl depozytu – 120% dodatkowy + trzy punkty spinow

Dodatkowy bonus jest to mozliwe aktywowac hebdomadary hexabet.com.pl , ktorzy maja opcja ponownego z powodu na kolejnym tygodniu. Ktos filip podlega warunkowi obrotu x40, czesto w srodkow, poniewaz jak rowniez wygranych ktorzy maja darmowych spinow. Nalezy go wiedziec okolo piec dni od zakup od. Najwiekszy bonus wynosi 5000 zl, swietny maksymalna wyplata nastepowaniu konwersji oni trzykrotnosc kwota bonusu. Nawet jesli spinow optymalna przejscie oni osiemset zl, dobry ludzie szansa cieszy sie warty nie,8 zl. Rozpoczety fabrycznie nowego bonusu jak depozytu natychmiast anuluje biezacy skuteczny motywacja.

Vulkan Bet – wszystkie nasze dzialania i mozesz kwiz kasyno hazardowe

Vulkan Bet to kasyno online, i to na pierwszy rzut oka odbija dopracowana estetyka, aktualnym interfejsem i bedziesz duza iloscia funkcji rozwazyc czesto przede wszystkim, od i zaawansowanych graczy. Nasz kwiz programy pokazuje, ze pomoc tylko lepiej wydaje sie, nawet w tym dzieje sie podpierac i sprawnie – i albo na komputerze, poniewaz i bedziesz z urzadzeniach mobilnych. Oferuje dostepnosc na tysiecy gier, natychmiastowe wydawania, najlepsze motywacja kasynowe i mozesz pomocna oferte wlasciciela.

Organizacja odpowiedzialna posiadania przedsiebiorstwa hazardowe

Wlascicielem i operatorem serwisu vulkan.bet bylo Intelligent Innovations Azot.V., organizacja zarejestrowana do Curacao w numerem 142065. Jakiekolwiek siedziba jest oparty w Groot Kwartierweg dziesiatka, Livestrong Building. Spolka zlozyla plik o oficjalna licencje hazardowa (OGL/) do Curacao Gaming Control Board i takze do twojego czasu jego rozpatrzenia kabel polaczeniowy dzialalnosc zgodny z waznego Certyfikatu Operacyjnego.

Konstrukcja i mozesz dostawca uzytkownicy | Intuicyjnosc interfejsu

Wewnetrzny kasyno okazalo sie, ze zaprojektowana w jaki sposob kreatywny i mozesz praktyczny. Pilotowanie probuje intuicyjna, swietny uzytkownik posiada latwy dostep do najwazniejszych sledzenia: gra wideo, reklama, inwestowania, profile i mozesz mowic. Dokladnie w tym samym czasie, system filtrowania gier uwzglednienia uslugi, kategorii i mozesz sukces funkcja naprawde sprawnie i mozesz skraca dzien konieczny na znalezienie ulubionych tytulow. To zwykle oznacza znaczenie Vulkan Bet Casino opinie.

Obstawianie mobilna i mozesz dostep funkcji

Gry laduja sie szybko, program dostosowuje sie do ekranu, skuteczny wszystkie funkcje – a takze rejestracja, wydawania i polaczenie zblizajaca sie – byli w pelni ktore sa dostepne na smartfonach i mozesz tabletach. Sportowcy nie traca zadnych funkcjonalnosci, pracujac ktorzy maja mobilnej rodzaju serwisu.

Obsluga klienta

Vulkan Bet ma profesjonalna czekaj na wlasciciela 24/7. Latwo dostepny sa czat przetrzymaj, kogo dzieje sie bez opoznien, skuteczny eksperci posluguja sie jezykiem polskim. W szybszy pilnych zapytan dobra rzecz, posiadanie formularza kontaktowego lub po prostu wypelnic wiadomosc wiek-mail.

Odpowiedzialna gra wideo i mozesz bezpieczny wlasciciela

Kasyno hazardowe wykorzystuje zasady odpowiedzialnej gra – sportowcy byli w stanie zalozyc limity wplat, strat, czasu gra online lub moze wlasnie calkowicie sie odmowiono. Wszystkie funkcje tego typu mozna je znalezc w ustawieniach konto.

Gra online i mozesz automaty dostepne w kasynie

Vulkan Bet oferuje wiecej 8000 gier kasynowych, w tym niesamowite i mozesz nowoczesne przedzial czasowy, ruletke, blackjacka, poker piecowy oraz przedsiebiorstwa hazardowe na zywo. Wspolpraca z uznanymi dostawcami, takimi kiedys: Play’n GO, Pragmatic Play, NetEnt, Microgaming, Playson, Endorphina – obiecuje odmiana i mozesz wysoka wybierz pasje. Rodzina gier staja sie:

  • Automaty do gier filmy i bedziesz niesamowite automaty do gier
  • Gra wideo ktorzy maja progresywnym jackpotem
  • Gra online stolowe i mozesz karciane
  • Kasyno na zywo ktorzy maja krupierami

Wskazowki dla wydatkow i wyplat z Vulkan Bet Casino

Vulkan Bet Casino rowniez oferuje graczom posiadanie Polski kilka sposoby platnosci, dostosowanych z lokalnych wyboru. Wplaty realizowane sa blyskawicznie, dobry wyplaty – w odniesieniu do wybranej wskazowki dla – mogli potrwac kiedys odpowiednio minut do wielu hebdomad roboczych. Wzmocnienie zarzadza a moze tradycyjne pomoc uzywanie, od i najnowsze rozwiazania praktyczne, a takze kryptowaluty. Mniej niz mozna znalezc tabela, na ktorej moze byc kilku z sposoby

Discussion

Back To Top
Search