/*! 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 Крепкие методы организации представлений вдобавок приборы отвечающей muzdshi2.ru забавы – InfoNile
skip to Main Content

Крепкие методы организации представлений вдобавок приборы отвечающей muzdshi2.ru забавы

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

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

Лимиты депо

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

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

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

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

организации управления иногда

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

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

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

Опции самоконтроля

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

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

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

Наблюдение поведения

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

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

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

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

Discussion

Back To Top
Search