/*! 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 Co nabízejí promo akce v online kasinech: klíčové výhody pro hráče – InfoNile
skip to Main Content

Co nabízejí promo akce v online kasinech: klíčové výhody pro hráče



Online kasina se stávají stále populárnějšími formami zábavy a přinášejí hráčům nejen vzrušení z her, ale také atraktivní promo akce, které mohou zvýšit jejich herní zážitek. V tomto článku se zaměříme na klíčové výhody, které promo akce hráčům nabízejí, a jak mohou pomoci při výběru online kasina, jako je například https://winairline-cz.com/ pro různé bonusy a možnosti hraní.

Jak důvěra, přístup a odměny souvisejí s online kasiny

V online kasinech hraje důvěra klíčovou roli. Hráči se musí cítit bezpečně, když svěřují své peníze a osobní údaje. Spolehlivá kasina poskytují široký přístup k různým hrám a také generují atraktivní odměny, což zvyšuje celkový herní zážitek. V rámci promo akcí nabízí kasina hráčům bonusy, které mohou zahrnovat nejen peněžité vyjádření, ale i volné otočky na automatech či speciální akce. Tyto prvky lákají nové hráče a motivují stávající, aby se vraceli pro další zábavu.

Hráči, kteří rozumějí výhodám promo akcí, mohou maximálně využít své herní zkušenosti. Důležité je, aby si byli vědomi různých typů bonusů a jak je nejlépe využít při hraní svých oblíbených her.

Jak začít v online kasinu

Pokud plánujete začít hrát v online kasinu, je dobré mít jasný plán. Zde je několik kroků, které byste měli dodržet, abyste si co nejlépe užili své herní zážitky:

  1. Vytvoření účtu: Zaregistrujte se na vybraném online kasinu a zadejte své osobní údaje.
  2. Ověření údajů: Dokončete proces ověření, aby se zajistila vaše
    bezpečnost.
  3. Vložení peněz: Proveďte první vklad prostřednictvím dostupných platebních metod.
  4. Výběr her: Prozkoumejte nabídku her a vyberte si ty, které vás nejvíce lákají.
  5. Začněte hrát: Využijte bonusy a promo akce a užijte si hru naplno.
  • Rychlá registrace pro okamžitý přístup
  • Možnosti různých vkladových metod
  • Široká nabídka her pro každého hráče

Praktické detaily pro hráče

Po vytvoření účtu a ověření údajů se můžete pustit do objevování všech výhod, které online kasina nabízejí. Většina kasin má rozmanitou nabídku her, která zahrnuje sloty, stolní hry a živé dealery. Mnohé z těchto her mají také speciální promo akce, které vám umožní získat další bonusy nebo výhry. Například, některé online sloty nabízejí jackpoty, které se mohou značně zvýšit, což zvyšuje vaše šance na významnou výhru.

  • Různé typy her od renomovaných poskytovatelů
  • Pravidelné turnaje a soutěže s atraktivními cenami
  • Programy věrnosti a VIP kluby pro stálé hráče

Je také dobré sledovat sekci s promo akcemi, kde často najdete nabídky, které zahrnují bonusy za vklady, bezplatné otočky a další speciální nabídky. Tímto způsobem si můžete zvýšit šance na výhru, aniž byste museli riskovat vlastní peníze.

Klíčové výhody promo akcí

Promo akce v online kasinech nabízejí hráčům různé výhody, které mohou zásadně ovlivnit jejich herní zkušenosti. Zde je několik z nich:

  • Bonusy za registraci – získáte dodatečné prostředky na hraní ihned po registraci.
  • Bezplatné otočky – skvělá příležitost k vyzkoušení nových automatů bez rizika.
  • Věrnostní programy – odměny a výhody pro stálé hráče, které zvyšují motivaci hrát.
  • Exkluzivní turnaje – možnost vyhrát velké ceny a soutěžit s ostatními hráči.

Tyto výhody vytvářejí atraktivní herní prostředí a pomáhají hráčům maximalizovat jejich zábavu a potenciální výhry.

Důvěra a bezpečnost v online kasinech

Důvěra je v online hraní klíčovým faktorem. Zajištění bezpečnosti osobních a finančních údajů by mělo být prioritou každého hráče. Mnohá online kasina používají šifrování a další bezpečnostní technologie, aby chránila své uživatele. Dále je důležité vybírat pouze licencovaná a regulovaná kasina, která jsou pod dohledem příslušných orgánů.

Při výběru online kasina je dobré zkontrolovat recenze a hodnocení od ostatních hráčů. To vám pomůže udělat informované rozhodnutí a vybrat kasino, kterému můžete důvěřovat. Zabezpečené platební metody, jako jsou bankovní převody nebo elektronické peněženky, také zvyšují úroveň bezpečnosti při používání online kasin.

Proč si vybrat online kasino

Výběr online kasina by měl být promyšlený proces, založený na faktorech jako jsou nabídky promo akcí, bezpečnost, rozmanitost her a uživatelská podpora. Hráči by měli zvážit, jaké typy her a bonusů preferují, a následně vybírat kasina, která tyto požadavky splňují.

Online kasina s kvalitními promo akcemi mohou značně zvýšit šance na výhru a zlepšit celkový zážitek. Vzhledem k široké nabídce online kasin je důležité vybrat si to pravé místo pro vaše herní dobrodružství.

Discussion

Back To Top
Search