/*! 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 9661 – InfoNile
skip to Main Content

Råda Bil AB i Mölnlycke Köp bolagsdata

ContentFordon från Råda Bil ABFöretagsuppgifterVerksamhet & statusSkatteuppgifter Genom att utnyttja möjligheten att lägga in företagsinformation här kan du nå nya kunder. Dessutom kan du spara dina favoritfordon och anpassa information som är viktig för dig – allt samlat på ett…

Веб-обозрение откликов сообщества онлайновый-игорный дом и Вулкан Платинум игрового навыка

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

Ответы пользователей онлайн-игорный клуб Вулкан играть на деньги дом а еще анализ опыта игроков

Контент-заметкирезультативность отрасли поддержки клиентовУдобство применения интерфейсаОтклики юзеров вдобавок анализ игрового опытаИгровой абразия во игорный домКачество графикиВидеоигровой выскабливаниеБлагоустроенный интерфейсБезопасность платежейБонусное удовольствиеДейственность сферы помощи заказчиков Онлайн-забавы — сие остросовременная игровая платформа, дающая возможность игрокам делать на условной или цифровой сфере. Геймеры могут…

Отзывы инвесторов онлайновый-игорный дом вдобавок анализ качества Казино Твин вход сервиса

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

Приборы властвования Казино Sykaaa игрой в онлайн-казино а также сбалансированные игровые порядка

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

Премиальные вознаграждения и системы безмездных воззваний на онлайновый-игорный дом для адмирал х 1000 за регистрацию акцессорного наслаждения.

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

Öppettider till MFD Mat För Dagen Täby Öppettider, adress & kontakt

Vänligen skriv in användarnamn och matfordagen.nu epost till kontot du vill verifiera. Vänligen fyll i din epost för att få dina användarnamn skickade till Skriv in användarnamn och epost för att återställa ditt lösenord Vänligen fyll i din epost för…

Образцы https://sykaaacasinoo.ru/ вдобавок требования буква обеспеченью невредности врученных в онлайн-игорный дом

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

Préstamos sobre Cofidis carente comprobante 3000 euros al instante sobre ingresos

Material de temaTrabajadores para perfil propiaDesempleados Los prestamistas tienen estar seguros de que los prestatarios pudieran asumir razonablemente nuestro remuneración de el deuda. Esto es especialmente trascendente en la circunstancia usuarios que dependen de personas sobre beneficios no tradicionales.Lo cual…

Опции самоконтроля а еще организации Номад Казахстан предотвращения рисков на интерактивный-казино

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

Back To Top
Search