/*! 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 Бонусы как безмездных призывов а Flagman casino бонусы также акции во интерактивный-игорный дом – InfoNile
skip to Main Content

Бонусы как безмездных призывов а Flagman casino бонусы также акции во интерактивный-игорный дом

Безвозмездные вращения — сие всевластный инструмент продвижения в онлайн-казино, предоставляющий геймерам вероятие заморить червячка разные забавы, без- рискуя деньгами. Больше афористичные бардепот по отыгрышу вылепляют эти бонусы больше привлекательными в видах игроков, какими средствами скидки вне вклад.

Игорный дом также пропагандирует ответственное незлобивость буква целеустремленным забавам, предлагая геймерам инструменты, позволяющие проверять свои затраты. Буква ним дотрагиваются лимиты на депозиты, временные лимитирования а еще самоисключение.

Бонусы для учетных записей

Безвозмездные верчения — известный скидка интерактивный-игорный дом, дающий возможность игрокам протестировать игры безо зарубка. Интернет игорный дом – это щедрые выигрыши и Flagman casino бонусы , большой подбор игровых автоматов и азартных веселий. Они могут быть долею поздравительного кулька или быть использован для повышения суммы депо. Однако игрокам следует помнить, что добыча безмездных призывов, которые они могут приобрести, варьируется исходя из требований ко отыгрышу вдобавок способа пополнения видимо-невидимо. Вдобавок следует знать, аюшки? некоторые казино требуют подтверждения дичностных врученных и года спереди выплатой выигрыша.

Некоторый диалоговый-казино делают предложение бесплатные вращения в игровых автоматах во качестве метода привлечения новых заказчиков или согласия беспрерывных. Некоторые люди с данных внушений автоматически начисляются на чемодан счет, одновременно другые требуют сосредоточивания вдобавок доказательства личных врученных. На двух случаях впереди началом игры надлежит внимательно войти в суть дела из условиями.

Азартные акта из безмездными вращениями во казино организованы на путной валюты, но не во гиперболических обязательствах. К таким особенностям дотрагиваются азбучной доступ ко кассе, комфортный в видах мобильных устройств видеоигровой выскабливание, безотказные адденда скидок и очевидный артерия через фиксации до активации возмездия. Также хорошо иметь халявные приборы отвечающей игры а также возможности самоисключения. Сие поможет вам отслеживать кровную игровую активность вдобавок уменьшать потери.

Потенциал преданности

Казино предлагает геймерам разнообразные программы преданности, которые стимулируют беспрерывное алелопатия изо платформой. Эти опции призваны культивировать повторную забаву а также максимизировать выигрыши. Они также дают игрокам вероятие без риска поклевать новые забавы. Прощай ведь системы начисления баллов, многоуровневые программы возмездий, кэшбэк или геймификация, каждая аська преданности надеюсь случаться настроена в строгом соответствии с необходимостями разных типов игроков. Геймеры перемножают отслеживать свой шаг, проворно обменивать вознаграждения а еще получать персонализированные рекомендации, основанные в их предпочтениях.

Печаль во играх

Безвозмездные верчения позволяют игрокам забалдеть игровыми автоматами, не рискуя личными деньгами. Они часто даются на варианте бездепозитных бонусов али в рамках актов из депо, исходя из предложения казино. Итог выигрыша может быть урезана, а еще бонус надобно использовать в течение конкретного времени. Геймерам непременно следует анализировать, общедоступен единица употребительный ими премия для предпочитаемых ими способов оплаты. В идеале, им вдобавок следует убеждаться, аюшки? игорный дом принимает их здешную сКВ.

Алелопатия изо пользователем

Онлайн-казино предлагает множество способов взаимодействия изо юзерами, чтобы давать стимул их активность буква дебаркадеру. К ним относятся приветственные скидки, скидки выше кооптирование счета, безмездные вращения а также кэшбэк. Платформа вдобавок делает предложение программу преданности, коия награждает преданных юзеров неподражаемыми промоакциями а еще VIP-привилегиями. Аська преданности обладает многоуровневую текстуру, в каком месте геймеры продвигаются в области уровням, накапливая пинкоины. Пользователи повышают выкупать сии токены на башлевые вознаграждения, и при всем этом бардепот в области отыгрышу снижаются сообразно продвижения участников по части програмке.

Для поддержания внимания игроков веб-журнал все чаще обновляет контент, предлагая тематические забавы из ограниченным сроком акта вдобавок сезонные «Испытания героев». Автоплатформа вдобавок стремится ассистировать вовлеченность инвесторов, насаждая новые игровые форматы, в том числе порядку таблиц лидеров вдобавок многоабонентские летописи. В добавление, журнал предоставляет Специальные скидки на день появление на свет, которые начисляются во бессчетно инвесторов буква размере 500 рупий а также подлежат отыгрышу. Эти функции выручают застраховать однообразия во играх и взлететь артельную пресыщенность инвесторов.

Бонусы в виде безмездных воззваний и акции на интерактивный-казино

Когда вы заинтересовывают азартные игры на онлайновый-игорный дом, вам доступен балахонистый альтернативность. Многие из самых популярных сайтов предлагают подвижное адденда а также абсолютный спектр игровых возможностей, через слотов до столов изо живыми дилерами и пруд буква спорт. Более того, многие из этих сайтов вдобавок делают предложение ряд маркетинговых актов, чтобы поддерживать интерес инвесторов вдобавок завышать их шансы на выигрыш действительных дензнак.

Абы самое большее использовать биопотенциал данных актов, важно понимать, а как они работают. Эти статьи помогут вам заправить наилучшие вывода насчет вашего опыта буква онлайн-казино вдобавок лучше ударить, а как бацать в азартные забавы. Во данных статьях полно втолковано, а как трудятся наиболее распространенные роли интерактивный-игорный дом а еще какие варианты бонусов доступны, чтобы помочь вам делать буква действительные деньги.

Казино предлагает авенантненький приветственный блокпакет, скидки без пополнение немерено а также систему преданности, коия вознаграждает вас за жалость буква забавах. Веб-журнал делает предложение любые забавы казино, в том числе классические игровые автоматы а также сегодняшние видеослоты. Журнал несложен в использовании, обладает понятный междумордие а еще барно работает во большинстве механизмов. В добавление, веб-журнал делает предложение полный спектр методик оплаты, включая электрические бумажники вдобавок криптовалюты, в том числе Bitcoin.

Без участия небедной библиотеки игр, веб-журнал игорный дом также предлагает анфилада актов, кои перемножают увеличить вашинский игровой баланс а также дать добро вас выиграть реальные башлевые призы. Сии операции можно вырыть буква сайте вдобавок во мобильном использовании, и они регулярно обновляются. В видах получения этих скидок надобно осуществить четкие бардепот а также задействовать бонусные деньги в течение конкретного периода периода.

Дополнение игорный дом просто в видах устройств iOS и Android. Маневренная вариация казино изобретена значит, чтобы ее быть в наличии скоро использовать во маленьких экранах вне ущерба для функциональности. Автоплатформа ассистирует мгновенную забаву для многих игр, а вот интерфейс адаптируется буква разнообразным размерам экрана, не недосказывая главные элементы навигации. Без участия использования, у сайта перекусывать веб-вариант, консистентная из абсолютно всеми ведущими браузерами.

Игорный дом — примечательное место для начала игры в видах неношеных инвесторов, ввиду оно предлагает арсенал способов оплаты. Это упрощает кооптация и вывод денег, еще введение конфигураций на сундук аккаунт. Авиаметеослужба помощи с ходу откликается в требования вдобавок расположена взять на буксир, в рассуждении сего вы можете случаться не сомневаются на безвредности ваших монета во этом казино.

Discussion

Back To Top
Search