Đồng bộ số lượng sản phẩm trên giỏ hàng WooCommerce

by admincp
282 Xem

Đoạn snippet này sẽ giúp bạn đồng bộ số lượng các mặt hàng trong giỏ hàng với số lượng chỉ định bởi mỗi ID sản phẩm. Nghĩa là, Khi bạn thêm sản phẩm thứ hai vào giỏ hàng, số lượng sẽ được lấy bằng số lượng của sản phẩm trước đó có trên giỏ hàng. Và nếu bạn cập nhật số lượng sản phẩm, những sản phẩm khác trong giỏ hàng cũng sẽ tự động cập nhật theo số lượng.

Đồng bộ số lượng sản phẩm trên giỏ hàng

Ví dụ dưới đây, mỗi khi tôi thay đổi số lượng cho sản phẩm có ID = 20 (ở đây là “2 Simple”), thì tất cả những sản phẩm khác đều thay đổi số lượng cùng nhau.

Đồng bộ số lượng sản phẩm đồng loạt trên giỏ hàng WooCommerce

Chú ý: chỉ định một sản phẩm ban đầu sẽ đồng bộ cùng thông qua biến “master_product_id”. Theo đoạn mã sau tất cả các sản phẩm khác có trong giỏ hàng sẽ được đồng bộ về số lượng cũng với sản phẩm của bạn. Chép đoạn mã này vào tệp functions.php

/**
 * @snippet       Sync Cart Item Quantities
 * @author        Vinastar
 * @compatible    WooCommerce 4.0
 */
    
add_action( 'template_redirect', 'hoangweb_sync_cart_quantities' );
    
function hoangweb_sync_cart_quantities() {
    if ( WC()->cart->is_empty() ) return;
   $master_product_id = 20;
   $in_cart = false;
   foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
      if ( $master_product_id === $cart_item['product_id'] ) {
         $qty = $cart_item['quantity'];
         $in_cart = true;
         break;
      }
   }
   if ( ! $in_cart ) return;
   foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
      if ( $master_product_id !== $cart_item['product_id'] ) {
         WC()->cart->set_quantity( $cart_item_key, $qty );
      }
   }     
}

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

Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này 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

Bài viết liên quan

Leave a Comment