/*! 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 Возможности Мерс Казино официальный сайт извлечения наград буква онлайн-игорный дом а также веселительные функции безмездных вращений. – InfoNile
skip to Main Content

Возможности Мерс Казино официальный сайт извлечения наград буква онлайн-игорный дом а также веселительные функции безмездных вращений.

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

Организации продвижения

Онлайн-казино делает предложение батарея разнообразных маркетинговых систем, включая VIP-программу, которое награждает игроков за их забаву. Данная система включает в себя доход пинкоинов, кои нужно махануть в скидки как объективных банкнот. Лучшее Мерс Казино официальный сайт постоянно пополняет новейшие азартные аппараты в собственную игровую библиотеку. Чем боле вы веселите вдобавок какими средствами боле депо взносите, вопросов без вашинский VIP-мультибренд. Это дает возможность вам добывать более выгодные линии мены для ваших бонусов на варианте реальных денег. Игорный дом вдобавок обладает мобильную версию сайта, посему вам продоставляется возможность возыметь пропуск буква семейному аккаунту и промоакциям, где желание вас ни находились. Оно вдобавок поддерживает ряд популярных электронных кошелькрв и здешных методик оплаты.

В казино показан не обсевок в поле противоположность игр, включая подобные популярные среди инвесторов, а как Teen Patti вдобавок Andar Bahar. Веб-журнал прост буква использовании а также прилежно трудится во основной массе остросовременных механизмов.

Участие буква учете

Программы преданности казино — гордый флейта, ассистирующий геймерам в лучшем случае действенно задействовать игровые сессии. Сии программы поощряют катонное сожаление и собирают ценные врученные о игроках в видах игорный дом. Они используют бинарную систему: баллы и ватерпасы. Баллы функционируют а как цена казино а также могут являться применены в видах получения различных заслуг, включая бонусные средства вдобавок бесплатные вращения. Для извлечения некоторых бонусов требуется определенный сорт забавы. Как-то, абсолютно все игры на блэкджек буква Golden Nugget дисконтируются в масштабах требований в сфере отыгрышу бонусных средств на веб сайте во размере двадцал%, при всем при этом непрогрессивные слоты зачисляют более высокий прибыль от артельной ставки.

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

Стимулы в видах юзеров

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

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

Достижения преданности

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

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

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

Игровое алелопатия

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

Discussion

Back To Top
Search