Active License Elementor Pro chỉ với 300k/năm/domain Shop Now
Mới Dịch vụ thiết kế website, xử lý mã độc & tối ưu tốc độ chuyên sâu

Code thêm phụ phí khi khách chọn thanh toán khi nhận hàng (COD) trong WooCommerce

Trang thanh toán WooCommerce với phương thức Thanh toán khi nhận hàng COD đang được chọn, cột tổng đơn hàng hiện dòng Phí thu hộ COD 20.000đ và Tổng cộng 500.000đ

Bài viết này mình sẽ hướng dẫn bạn cách thêm phụ phí khi khách chọn thanh toán khi nhận hàng (COD) trong WooCommerce nhé.

Đơn COD shop phải chịu thêm tiền thu hộ của đơn vị vận chuyển, chưa kể tỉ lệ khách không nhận hàng cao hơn hẳn đơn trả trước. Nhiều shop muốn cộng một khoản phí nhỏ vào đơn COD để bù chi phí này và khuyến khích khách trả trước, nhưng WooCommerce mặc định không có chỗ nào để thu phí theo phương thức thanh toán. Muốn có thì bạn phải code thêm bằng PHP nhé.

Thêm code phụ phí COD

Bạn chỉ cần thêm code dưới vào cuối file functions.php của child theme nhé. Nhớ sao lưu file trước khi sửa, và đừng chèn vào theme cha vì khi theme cập nhật sẽ mất code.

<?php
// Thêm phụ phí khi khách chọn thanh toán khi nhận hàng (COD) trong WooCommerce
// Cách dùng: dán code này vào cuối file functions.php của child theme,
// phí tự cộng vào tổng đơn khi khách chọn COD ở trang thanh toán
add_action('woocommerce_cart_calculate_fees', 'nn_phi_thanh_toan_cod', 20);
function nn_phi_thanh_toan_cod($cart) {
    if (is_admin() && !defined('DOING_AJAX')) {
        return;
    }
    if (!WC()->session) {
        return;
    }
    $phuong_thuc = WC()->session->get('chosen_payment_method');
    if ('cod' !== $phuong_thuc) {
        return;
    }
    $phi = 20000;
    $cart->add_fee('Phí thu hộ (COD)', $phi, false);
}

Code trên móc vào hook woocommerce_cart_calculate_fees, hook này chạy mỗi lần WooCommerce tính lại tổng đơn. Hàm đọc phương thức thanh toán khách đang chọn qua WC()->session->get(‘chosen_payment_method’), nếu đúng là cod (mã của phương thức Thanh toán khi nhận hàng) thì cộng thêm một khoản phí bằng hàm $cart->add_fee() với nhãn “Phí thu hộ (COD)”. Khách đổi sang chuyển khoản hay ví điện tử thì phí tự biến mất, vì hook chạy lại ngay khi khách đổi phương thức ở trang thanh toán. Tham số thứ ba của add_fee đang là false, tức phí này không chịu thuế.

Kiểm tra phụ phí COD ở trang thanh toán

Bạn thêm một sản phẩm vào giỏ rồi ra trang thanh toán, chọn phương thức Thanh toán khi nhận hàng thì cột tổng đơn sẽ xuất hiện thêm dòng “Phí thu hộ (COD)” 20.000đ và tổng cộng tăng đúng 20.000đ. Đổi sang phương thức khác thì dòng phí biến mất ngay, tổng đơn trở về như cũ. Phí này cũng hiện trong đơn hàng ở trang quản trị và trong email xác nhận đơn, nên khách và shop đều thấy rõ.

Trang thanh toán WooCommerce với phương thức Thanh toán khi nhận hàng COD đang được chọn, cột tổng đơn hàng hiện dòng Phí thu hộ COD 20.000đ và Tổng cộng 500.000đ
Kết quả: chọn Thanh toán khi nhận hàng (COD), tổng đơn tự cộng thêm dòng Phí thu hộ (COD) 20.000đ.

Lưu ý khi dùng

Con số 20000 trong code là mức phí thu hộ của shop bạn, bạn đổi thành mức thực tế của mình là được, ví dụ 15000 hoặc 30000. Nếu shop muốn thu phí theo tỉ lệ phần trăm thay vì phí cố định thì thay $phi = 20000 bằng phép tính theo tổng giỏ, ví dụ $phi = $cart->get_subtotal() * 0.02 để thu 2% giá trị đơn. Phí chỉ cộng khi khách chọn COD, nên lần đầu khách vào trang giỏ hàng chưa chọn phương thức thì chưa thấy phí, đó là đúng logic của code chứ không phải lỗi. Tính năng này đi chung với bài code thêm checkbox gói quà ở trang thanh toán trong WooCommerce là thành combo tùy biến trang thanh toán cho shop.

Kết luận

Vậy là chỉ với 1 đoạn code ngắn bạn đã thêm phụ phí khi khách chọn thanh toán khi nhận hàng (COD) trong WooCommerce mà không cần cài thêm plugin rồi nhé. Tính năng này đi chung với bài code thêm checkbox gói quà ở trang thanh toán trong WooCommerce và bài code hiển thị số tiền tiết kiệm được ở giỏ hàng trong WooCommerce là thành bộ công cụ tính phí và hiển thị tổng tiền rõ ràng hơn cho shop WooCommerce.

Nếu cần mình kèm 1-1 về WooCommerce thì cứ liên hệ mình nhé.

Nhân Viên

Nhân Viên

Web Developer & WordPress Expert

Ngọc Nguyễn - Chuyên gia thiết kế Website WordPress, tối ưu tốc độ 90+ và xử lý dứt điểm mã độc. Đam mê chia sẻ kiến thức hữu ích đến cộng đồng lập trình & webmaster.

Để lại bình luận hoặc thắc mắc

Email của bạn sẽ không được hiển thị công khai.

Ngọc Nguyễn
Ngọc Nguyễn
| Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ | Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ
Tư vấn miễn phí