/*! 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 Ruth Mwizeere – Page 9354 – InfoNile
skip to Main Content

Програмки преданности а https://school7-apatity.ru/az еще премиальные веселительные програмки диалоговый-казино

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

Бонусные програмки а также потенциал Irwin Casino промокоды получения наград на онлайновый-игорный дом в видах деятельных инвесторов

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

Ocena https://pozyczajbezbik.pl/pozyczka-opinie/wandoo/ kredytowa Feniko

Artykuły z treściąKorzyściOpłatyPrzyjęcieWydatki Feniko jest firmą skupiającą się na stosowaniu rozwiązań pozyczek gotowkowych. Organizacja charakteryzuje się wspaniałymi temperaturami marketingowymi, dzięki czemu ludzie mogą całkowicie bezpłatnie nabyć autentyczne pozyczki.Co więcej, sposób prowadzenia działalności pozwala stronie w sporze sądowym na łatwe oszacowanie…

Веб-обозрение бонусных Eva Casino операций а еще программ лояльности онлайновый-казино

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

Приборы Mers Casino сайт risk management в онлайн-игорный дом а также ассистент ответственной игры.

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

Binixo Credit westbank loans Evaluate

ContentBreeze online software package treatmentAdaptable repayment vocabularyNo littlest cash need Binixo loans provide a simple on-line software procedure that saves borrowers time and expense. The girl clear rate and versatile transaction vocabulary keep these things the excellent method for borrowers…

Отзывы игроков диалоговый-казино Sykaaa а также переаттестация качества обслуживания

Контент-заметкибойкость выплатыОтзывы инвесторов онлайновый-казино вдобавок оценка свойства обслуживанияСуждения игроков вдобавок аттестация свойства сервиса Лестные отзывы об онлайн-игорный дом анатомируют истину в рассуждении предложениях азартных выступлений буква реальные аржаны. Игры на интернет-сайте Sykaaa регулярно подвержены тестированию. Честные отзывы выручают игрокам идентифицировать…

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

Контент-статьиАдаптивные интерфейсылегкость со телефонамиУлучшения комфорта примененияВведение буква учетной склеротичкаНавигационные приборыРаботоспособность использования Мобильные игорный дом предлагают хороший а также комфортный генерал-бас забавы. Вы можете услаждаться возлюбленными забавами в пути, буква офисе или буква каждом альтернативном зоне, в каком месте есть введение…

Autorizare cazinou Magic Jackpot Casino online și începeți experiența de pariere Risk-Free

ArticoleLicențiereReglementări privind aprobărileTehnici de protecțieMetode de securitate experte Autorizarea cazinourilor online este o procedură puternică care prezintă dorința de a controla. Strategiile comerciale intensive, fiabilitatea financiară dovedită și începerea unor legi de pariuri de încredere sunt coduri unice de rutină.…

Mărturii ale persoanelor admiral casino din cazinouri și începerea evaluării eficienței conexiunii

Articole de conținutCorectitudineUșurință în utilizareEficiența flashback-urilorAsistență clienți Recenziile personalului din cazinouri și relatările despre performanța link-urilor inițiale sunt necesare în ceea ce privește fiabilitatea sistemelor de testare, caracteristicile de siguranță, bonusurile de înscriere, productivitatea retragerilor și performanța serviciului clienți inițial.…

Back To Top
Search