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í đơn hàng nhỏ trong WooCommerce

Trang giỏ hàng của shop, hộp cộng giỏ hàng hiện tạm tính 120.000đ, dòng phụ phí đơn hàng nhỏ dưới 150.000đ là 15.000đ và tổng cộng 135.000đ

Bài viết này mình sẽ hướng dẫn bạn cách thêm phụ phí đơn hàng nhỏ trong WooCommerce nhé.

Đơn 30–50 nghìn thì tiền ship và công đóng gói có khi đã gần bằng tiền lãi, nhiều shop vì vậy thu thêm một khoản phí nhỏ với đơn dưới một mức nhất định, vừa bù chi phí vừa khuyến khích khách mua thêm cho đủ mức. WooCommerce mặc định không có chỗ nào để thu phí theo giá trị đơn hàng, nên muốn có thì bạn phải code thêm bằng PHP nhé.

Thêm code phụ phí đơn hàng nhỏ

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
// Phu phi don hang nho - them vao functions.php cua child theme
add_action( 'woocommerce_cart_calculate_fees', 'nn_phu_phi_don_hang_nho' );
function nn_phu_phi_don_hang_nho( $cart ) {
	if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
		return;
	}
	$muc_toi_thieu = 150000;
	$phi = 15000;
	$tam_tinh = $cart->get_subtotal();
	if ( $tam_tinh > 0 && $tam_tinh < $muc_toi_thieu ) {
		$cart->add_fee( 'Phụ phí đơn hàng nhỏ (dưới 150.000đ)', $phi, false );
	}
}

Code trên móc vào woocommerce_cart_calculate_fees, móc này WooCommerce chạy mỗi lần tính lại tổng tiền giỏ hàng, cả ở trang giỏ hàng lẫn trang thanh toán. Hàm kiểm tra 2 điều kiện an toàn trước: bỏ qua trong trang quản trị nhờ is_admin() kết hợp DOING_AJAX để không tính phí nhầm khi shop xử lý đơn trong admin. Mức tối thiểu đặt trong biến $muc_toi_thieu là 150.000đ, phí đặt trong biến $phi là 15.000đ; tổng tiền hàng lấy qua $cart->get_subtotal() là tiền hàng chưa tính phí vận chuyển, thuế và chưa trừ mã giảm giá. Đơn nào tổng tiền hàng trên 0 mà dưới 150.000đ thì $cart->add_fee() cộng thêm 15.000đ vào đơn, hiện thành dòng “Phí” trong giỏ hàng và trang thanh toán. Tham số false cuối cùng nghĩa là phí này không tính thuế.

Kiểm tra phụ phí đã cộng chưa

Bạn thêm sản phẩm vào giỏ sao cho tổng tiền hàng dưới 150.000đ, mở trang giỏ hàng sẽ thấy dòng phí 15.000đ cộng vào tổng tiền. Thêm tiếp sản phẩm cho tổng vượt 150.000đ rồi tải lại trang, dòng phí biến mất. Đổi 2 số 150000 và 15000 trong code thành mức của shop bạn, ví dụ thu 10.000đ với đơn dưới 100.000đ.

Trang giỏ hàng của shop, hộp cộng giỏ hàng hiện tạm tính 120.000đ, dòng phụ phí đơn hàng nhỏ dưới 150.000đ là 15.000đ và tổng cộng 135.000đ
Kết quả: dòng phụ phí 15.000đ cộng vào tổng tiền khi giỏ hàng dưới 150.000đ, đơn đủ mức thì dòng phí biến mất.

Lưu ý khi dùng

Bài này khác với bài code thêm phụ phí khi khách chọn thanh toán khi nhận hàng (COD) trong WooCommerce: bài đó thu phí theo phương thức thanh toán khách chọn, còn bài này thu phí theo giá trị giỏ hàng dù khách thanh toán bằng cách nào. Mức so sánh là tiền hàng chưa trừ mã giảm giá, nên khách dùng mã giảm giá mạnh vẫn có thể bị tính phí nếu tiền hàng gốc dưới mức — muốn tính sau khi trừ mã thì đổi get_subtotal() thành get_subtotal() – get_discount_total(). Tính năng này đi chung với bài code chỉ hiện miễn phí vận chuyển và nhận tại cửa hàng khi đủ điều kiện trong WooCommerce là thành bộ điều kiện theo giá trị giỏ hàng cho shop.

Kết luận

Vậy là chỉ với 1 đoạn code ngắn bạn đã thêm phụ phí đơn hàng nhỏ 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 phụ phí khi khách chọn thanh toán khi nhận hàng (COD) trong WooCommerce và bài code chỉ hiện miễn phí vận chuyển và nhận tại cửa hàng khi đủ điều kiện trong WooCommerce là thành bộ kiểm soát chi phí đơn hàng 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í