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 đặt số lượng mua tối thiểu cho sản phẩm trong WooCommerce

Trang sản phẩm áo thun màu xanh navy với ô số lượng đang là 3 và dòng chú thích Số lượng mua tối thiểu: 3 sản phẩm

Bài viết này mình sẽ hướng dẫn bạn cách đặt số lượng mua tối thiểu cho sản phẩm trong WooCommerce nhé.

Shop bán sỉ, bán theo combo hay bán hàng có giá trị thấp thường muốn khách mua từ 3 hay 5 sản phẩm trở lên mới đáng công đóng gói và giao hàng. WooCommerce mặc định cho khách mua từ 1 sản phẩm, không có chỗ nào đặt số lượng mua tối thiểu, muốn chặn khách mua dưới mức tối thiểu thì bạn phải code thêm nhé.

Thêm code số lượng mua tối thiểu

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
function nn_wc_so_luong_toi_thieu() {
    return 3;
}

function nn_wc_gioi_han_so_luong_toi_thieu($min, $product) {
    $toi_thieu = nn_wc_so_luong_toi_thieu();
    if ($min < $toi_thieu) {
        return $toi_thieu;
    }
    return $min;
}
add_filter('woocommerce_quantity_input_min', 'nn_wc_gioi_han_so_luong_toi_thieu', 10, 2);

function nn_wc_kiem_tra_so_luong_toi_thieu($passed, $product_id, $quantity) {
    $toi_thieu = nn_wc_so_luong_toi_thieu();
    if ($quantity < $toi_thieu) {
        wc_add_notice('Sản phẩm này cần mua tối thiểu ' . $toi_thieu . ' sản phẩm.', 'error');
        return false;
    }
    return $passed;
}
add_filter('woocommerce_add_to_cart_validation', 'nn_wc_kiem_tra_so_luong_toi_thieu', 10, 3);

function nn_wc_kiem_tra_cap_nhat_gio_hang($passed, $cart_item_key, $values, $quantity) {
    $toi_thieu = nn_wc_so_luong_toi_thieu();
    if ($quantity < $toi_thieu) {
        wc_add_notice('Sản phẩm này cần mua tối thiểu ' . $toi_thieu . ' sản phẩm.', 'error');
        return false;
    }
    return $passed;
}
add_filter('woocommerce_update_cart_validation', 'nn_wc_kiem_tra_cap_nhat_gio_hang', 10, 4);

Code trên dùng một hàm chung nn_wc_so_luong_toi_thieu() trả về số 3, nên muốn đổi mức tối thiểu thì bạn chỉ cần sửa đúng một chỗ này. Filter woocommerce_quantity_input_min đặt giá trị nhỏ nhất cho ô nhập số lượng ngoài trang sản phẩm, còn hai filter woocommerce_add_to_cart_validation và woocommerce_update_cart_validation chặn thật ở phía server: khách thêm vào giỏ dưới 3 sản phẩm, hoặc giảm số lượng trong giỏ xuống dưới 3, đều bị chặn kèm thông báo lỗi. Nhờ chặn ở cả hai lớp mà khách không thể lách bằng cách sửa số trực tiếp trên trình duyệt.

Kiểm tra trên trang sản phẩm

Bạn mở một trang sản phẩm bất kỳ, ô số lượng sẽ mặc định là 3 và không giảm xuống dưới 3 được. Thử thêm 1 sản phẩm vào giỏ bằng cách sửa số trên trình duyệt rồi bấm thêm vào giỏ, bạn sẽ thấy thông báo “Sản phẩm này cần mua tối thiểu 3 sản phẩm.” và giỏ hàng không nhận thêm.

Trang sản phẩm áo thun màu xanh navy với ô số lượng đang là 3 và dòng chú thích Số lượng mua tối thiểu: 3 sản phẩm
Kết quả: ô số lượng trên trang sản phẩm mặc định là 3, kèm dòng chú thích Số lượng mua tối thiểu: 3 sản phẩm.

Lưu ý khi dùng

Code này áp mức tối thiểu cho mọi sản phẩm trong shop. Nếu shop bạn chỉ muốn áp cho vài mặt hàng bán sỉ thì cần thêm điều kiện kiểm tra ID sản phẩm trong hai hàm kiểm tra, còn với shop bán đồng giá sỉ toàn bộ thì cứ để nguyên code là dùng được ngay.

Kết luận

Vậy là chỉ với 1 đoạn code ngắn bạn đã đặt số lượng mua tối thiểu cho sản phẩm trong WooCommerce rồi nhé. Tính năng này đi chung với bài code thêm đếm ngược khuyến mãi cho sản phẩm trong WooCommerce và bài code tự động áp dụng mã giảm giá trong WooCommerce là thành combo bán sỉ và thúc đẩy mua hàng khá tốt cho shop.

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í