在Woocommerce中仅允许更新一个商品类别的购物车商品数量

时间:2019-06-04 16:06:21

标签: php wordpress woocommerce cart product-quantity

我正在尝试禁用Woocommerce购物车中除单个类别外的所有产品的数量更改。

我已经尝试过使用自定义函数来执行此操作,但是它对所有项目都将其禁用。希望只允许更改一种类别的产品数量。到目前为止,我已使用此代码在所有产品上将其禁用:

add_filter( 'woocommerce_cart_item_quantity', 'wc_cart_item_quantity', 10, 3 );
function wc_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item 
){
    if( is_cart() ){
        $product_quantity = sprintf( '%2$s <input type="hidden" 
name="cart[%1$s][qty]" value="%2$s" />', $cart_item_key,             
$cart_item['quantity'] );
    }
    return $product_quantity;
}

1 个答案:

答案 0 :(得分:0)

您可以使用has_tem()条件函数来仅定位为购物车项目设置的特定产品类别,例如:

add_filter( 'woocommerce_cart_item_quantity', 'wc_cart_item_quantity', 10, 3 );
function wc_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ){
    $categories = array('disc'); // Define your allowed product category(ies)

    if( is_cart() && ! has_term( $categories, $taxonomy, $cart_item['product_id'] ){
        $product_quantity = sprintf( '%2$s <input type="hidden" 
name="cart[%1$s][qty]" value="%2$s" />', $cart_item_key,             
$cart_item['quantity'] );
    }
    return $product_quantity;
}

代码进入活动子主题(或活动主题)的functions.php文件中。应该可以。