/*! 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 Tiến lên phía trước – Nguyên vamo vay tắc cơ bản – InfoNile
skip to Main Content

Tiến lên phía trước – Nguyên vamo vay tắc cơ bản

Doctordong Improve là một chương trình cải thiện bất ngờ kết nối người dùng với các đối tác tài chính thông qua các thủ tục phẫu thuật đơn giản và dễ dàng. Bài viết này sẽ đánh giá thuật ngữ, các lựa chọn phương pháp và các yếu tố khác liên quan đến chương trình này để giúp người đọc đưa ra lựa chọn tốt nhất khi đăng ký với Doctordong.

Quy trình giao dịch tài chính tại Doctordong đơn giản và dễ dàng thực hiện. Bạn có thể thanh toán từ các tài khoản Payoo, Viettel, Momo và SCB.

Thông thoáng

Khi chuyển sang sử dụng phần mềm này, Doctordong chắc chắn sẽ nhanh chóng hướng dẫn người dùng lựa vamo vay chọn gói vay phù hợp với khả năng tài chính của họ. Thêm vào đó, họ quy định rõ ràng mức phí cho mỗi gói vay. Điều này giúp các thành viên có thể vay nhiều hơn mà không phải trả các khoản phí không cần thiết. Ngoài ra, khách hàng còn được cung cấp thêm các phương thức giao dịch để sử dụng, chẳng hạn như yêu cầu thanh toán từ thông tin bán hàng Payoo, thông tin mua hàng Viettel, thông tin bán hàng Momo, tiền gửi SCB và bắt đầu trả góp theo tài khoản cá nhân.

Ngoài ra, hoặc thậm chí chỉ chọn những cụm từ liên quan đến việc cải thiện mối quan hệ trên mạng của Doctordong, bạn có thể liên hệ với các chuyên gia của công ty qua đường dây nóng hoặc trong ứng dụng. Ngược lại, bạn cũng có thể tìm hiểu các quy trình phần mềm nâng cao chuyên sâu của Doctordong thông qua bài viết trên Mytour để đảm bảo mọi thông tin đều được cập nhật đầy đủ và tiến triển nhanh chóng.

Bất kỳ ai từ 22 đến 70 tuổi, có thu nhập thường xuyên ít nhất 2 triệu VND và có tài sản thế chấp đều có thể vay tiền trên Doctordong. Quy trình rất đơn giản và nhanh chóng, tín dụng được giải ngân trong vòng nửa giờ sau khi nộp hồ sơ. Điều này làm cho mối liên kết vay thế chấp trở thành một phương tiện tuyệt vời để bạn có thể trả nợ thành công và duy trì khả năng trả nợ trong tương lai với khả năng tài chính dồi dào hơn.

Linh hoạt

Doctordong Move Forward là một giải pháp vay tiền trực tuyến nhẹ nhàng, nhanh chóng và an toàn. Nó có thể giúp bạn quản lý các khoản chi tiêu đột xuất để tránh các chi phí phát sinh đắt đỏ. Tra cứu số điện thoại ngược cho phép bạn vay tiền mặt lên đến hàng chục nghìn – 10 triệu VND với thời hạn vay linh hoạt từ 5 tháng đến 1 tháng. Bạn cần có vốn, thu nhập thường xuyên tối thiểu 2 triệu VND và chứng minh nhân dân (CMND/CCCD) hoặc chứng minh nhân dân (Kama'aina) cùng với tài khoản ngân hàng đang hoạt động.

Sau khi nộp đơn xin vay vốn, cá nhân vui lòng liên hệ với Doctordong Advance để xác nhận việc mở và tiến hành thanh toán. Sau đó, bạn có thể thanh toán khoản nợ trong vòng một ngày trước ngày đáo hạn và đúng hạn như quy định trong hợp đồng tài chính. Nếu không thanh toán đúng hạn, bạn sẽ phải chịu phí quá hạn. Bạn có thể thanh toán khoản nợ từ tài khoản ảo, tài khoản Payoo, trung tâm mua sắm Viettel, tài khoản ví Momo hoặc tại các điểm giao dịch của Ngân hàng Nhà nước (SCB).

Trước khi yêu cầu vốn tại Doctordong, hãy bắt đầu từng bước nhỏ bằng cách xem nội dung và làm quen với các thuật ngữ (gói tiến độ, tốc độ tiến độ, thời hạn tiến độ, quy trình tính toán mong muốn, quy trình thanh toán,…) để đảm bảo bạn đã quen với bất kỳ tệp đính kèm nào. Bạn cũng có thể chủ động tìm hiểu về 'quy trình phần mềm vay vốn từ Doctordong' để chuẩn bị những thứ cần thiết cho việc sử dụng tiến độ một cách dễ dàng và hiện đại.

An toàn

Doctordong Improve là một nguồn vay thế chấp an toàn, đáng tin cậy từ Việt Nam. Sau khi hoàn tất thủ tục vay vốn, các chuyên gia của công ty sẽ liên hệ với bạn trong vòng nửa giờ để hỗ trợ bạn giải ngân khoản vay. Sau đó, tiền vay sẽ được chuyển ngay lập tức vào tài khoản của bạn.

Cùng với đó, các thành viên cũng có thể xác nhận các chương trình tiến độ, tỷ lệ và các hướng dẫn khác từ Doctordong Move forward circular their motor. Thêm vào đó, tổ chức này cung cấp đường dây nóng và dịch vụ chăm sóc khách hàng chủ động để hỗ trợ các thành viên của mình.

Về vấn đề giấy tờ, bất kỳ ai cũng nên cung cấp bản sao chứng minh thư, thẻ tín dụng và thông tin tín dụng của chính phủ, cũng như thông tin tín dụng trong 3 tháng gần đây. Ngoài ra, nếu ngân hàng không nhận được toàn bộ số tiền đúng hạn, người vay nên đồng ý trả phí phạt chậm và phí cho các khoản thanh toán chậm. Để loại bỏ rủi ro khi vay tiền tại Doctordong Advance, người vay nên chủ động kiểm tra mã số thẻ và thời hạn vay để chuẩn bị trước. Điều này giúp bạn tăng khả năng được chấp thuận khoản vay với thủ tục giấy tờ đơn giản và dễ dàng hơn.

Doctordong Advance thường là một dịch vụ cho vay trực tuyến dành cho các thành viên muốn huy động vốn với quy trình đơn giản và nhanh chóng. Thành viên có thể vay tiền với số tiền từ vài nghìn đến 15 triệu VND với lãi suất linh hoạt và thời hạn lên đến 30 năm thông qua hệ thống Doctordong và ứng dụng di động. Dịch vụ này hoàn toàn miễn phí và minh bạch, cho phép người vay có thông tin đầy đủ trước khi lựa chọn khoản vay phù hợp nhất.

Hiện tại, hệ thống Doctordong được vận hành thông qua công ty trách nhiệm hữu hạn VAP Trading and Relationship Business., Ltd (VAP), một công ty tài chính có trụ sở tại Thành phố Hồ Chí Minh, Việt Nam. Khách hàng buộc phải đăng ký giấy tờ tùy thân, thêm chứng minh nhân dân, thẻ tín dụng hoặc giấy tờ tùy thân của Hàn Quốc, bằng chứng thu nhập chứng minh họ kiếm được ít nhất 2 triệu VND mỗi tháng, và mở tài khoản ngân hàng chính. Ngoài ra, doanh nghiệp cũng được yêu cầu đầu tư vào một sản phẩm có giá trị nhưng chưa được sử dụng hoặc bán hết.

Là một người dùng có kinh nghiệm, hãy bắt đầu bằng cách nghiên cứu kỹ các điều kiện, chức năng của từng ô vay trong Doctordong trước khi quyết định xem có cần xin vay vốn hay không. Mytour đã thu thập được thông tin chính xác về dòng vay này, chẳng hạn như lãi suất trả trước và cách gom nhóm các kỳ nghỉ tại Doctordong, để giúp bạn đưa ra lựa chọn tốt nhất khi xin vay. Chúng tôi cũng sẽ thường xuyên cập nhật bài viết này để đảm bảo nó là nguồn thông tin hữu ích cho người đọc và giúp họ bắt đầu tận hưởng quá trình xin vay tại Doctordong.

Discussion

Back To Top
Search