Home WordpressWordPress cơ bản Giới hạn số lượng mua bởi danh mục trong WooCommerce

Giới hạn số lượng mua bởi danh mục trong WooCommerce

by admincp

Ở bài trước mình đã chỉ cho bạn cách hiển thị số lượng mua trên giỏ hàng WooCommerce. Theo mặc định, khách hàng có thể mua bất kỳ số lượng nào từ cửa hàng Woocommerce. Đôi khi chủ cửa hàng cần bán các sản phẩm chỉ có thể bán được với số lượng cụ thể. Trong bài viết này bạn sẽ tìm hiểu cách giới hạn Số lượng sản phẩm của một danh mục nhất định sẽ được bán.

Tương tự, bạn thêm các dòng mã sau vào cuối tệp functions.php vào chủ đề của bạn:

add_action( 'woocommerce_check_cart_items', 'check_total' );
function check_total() {
    // Only run in the Cart or Checkout pages
    if( is_cart() || is_checkout() ) {

        global $woocommerce, $product;

        $total_quantity = 0;
        $display_notice = 1;
        $i = 0;
        //loop through all cart products
        foreach ( $woocommerce->cart->cart_contents as $product ) {

            // See if any product is from the cuvees category or not
            if ( has_term( 'category-1', 'product_cat', $product['product_id'] )) {
                $total_quantity += $product['quantity'];
            }

        }
        // Set up the acceptable totals and loop through them so we don't have an ugly if statement below.
        $acceptable_totals = array(1, 2, 3, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 72, 96, 120);

        foreach($acceptable_totals as $total_check) {
            if ( $total_check == $total_quantity ) { $display_notice = 0; } 
        }

        foreach ( $woocommerce->cart->cart_contents as $product ) {
            if ( has_term( 'category-1', 'product_cat', $product['product_id'] ) ) {
                if( $display_notice == 1 && $i == 0 ) {
                    // Display our error message
                    wc_add_notice( sprintf( 'This product can only be sold in following quantities 1 | 2 | 3 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60  | 72 | 96 | 120.</p>', $total_quantity),
                    'error' );
                }
                $i++;
            }
        }
    }

Trong đoạn code trên, bạn sẽ cần một vài thay đổi nhỏ để phù hợp với website của bạn. Tìm dòng sau if ( has_term( 'category-1', 'product_cat', $product['product_id'] )) {

Bạn cần phải thay thế ‘category-1’ bằng slug danh mục của bạn. Dòng này kiểm tra xem sản phẩm có thuộc danh mục cụ thể hay không. Bây giờ, chúng ta cần xác định hoặc thay đổi số lượng được phép mua $acceptable_totals = array(1, 2, 3, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 72, 96, 120);.

Để thay đổi thông báo lỗi được hiển thị, bạn cần chỉnh sửa dòng này:

wc_add_notice( sprintf( '<p>This product can only be sold in following quantities 1 | 2 | 3 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60  | 72 | 96 | 120.</p>', $total_quantity),
   'error' );

Bây giờ hãy thêm sản phẩm của danh mục đó bằng cách nhấp vào nút thêm vào giỏ hàng, Khi bạn mua tiếp tục với số lượng không hợp lệ hoặc thậm chí cố gắng cập nhật giỏ hàng, nó sẽ hiển thị cho bạn thông báo lỗi và sẽ không cho phép bạn tiếp tục.

Chúc bạn thành công!

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên TwitterFacebook

Liên hệ

Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net

Hotline tư vấn: 0989 48 3456

Nguồn: Sưu tầm trên internet

You may also like

Leave a Comment