Woocommerce 更改购物车中每个产品的最小数量限制
Woocommerce change quantity min limit for each product in cart
我有几个产品只有在最小数量超过一定数量时才能购买。
我在我的子主题中编写并放置了一段代码 functions.php 来更改产品的最小数量。
function wpa116693_filter_min_quantity( $min, $product ){
if ( has_term ( '5', 'product_tag' ) ){
return 5;
}
if ( has_term ( '10', 'product_tag' ) ){
return 10;
}
if ( has_term ( '6', 'product_tag' ) ){
return 6;
}
}
add_filter( 'woocommerce_quantity_input_min', 'wpa116693_filter_min_quantity', 10, 2 );
所以它所做的是,如果它找到带有标签 5 的产品,那么它将最小数量更改为 5。这在单个产品页面中有效,但在购物车页面中无效。我可以低于购物车页面中的最小数量。我认为它不起作用,因为 "has_term" 在购物车页面中不起作用。
我也希望它能在购物车页面中使用。
请帮我解决这个问题,谢谢。
您需要像这样将函数挂接到 woocommerce_cart_loaded_from_session
:
add_action('woocommerce_cart_loaded_from_session', 'wh_checkAndUpdateCart');
function wh_checkAndUpdateCart()
{
//if the cart is empty do nothing
if (WC()->cart->get_cart_contents_count() == 0)
{
return;
}
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item)
{
$product_id = $cart_item['product_id']; // Product ID
$product_qty = $cart_item['quantity']; // Product quantity
if (has_term(5, 'product_tag', $product_id) && ($product_qty > 5))
{
WC()->cart->set_quantity($cart_item_key, 5);
}
if (has_term(10, 'product_tag', $product_id) && ($product_qty > 10))
{
WC()->cart->set_quantity($cart_item_key, 10);
}
if (has_term(6, 'product_tag', $product_id) && ($product_qty > 6))
{
WC()->cart->set_quantity($cart_item_key, 6);
}
}
}
代码进入您的活动子主题(或主题)的 function.php 文件。或者在任何插件 php 文件中。
代码已经过测试并且可以工作。
希望对您有所帮助!
我有几个产品只有在最小数量超过一定数量时才能购买。
我在我的子主题中编写并放置了一段代码 functions.php 来更改产品的最小数量。
function wpa116693_filter_min_quantity( $min, $product ){
if ( has_term ( '5', 'product_tag' ) ){
return 5;
}
if ( has_term ( '10', 'product_tag' ) ){
return 10;
}
if ( has_term ( '6', 'product_tag' ) ){
return 6;
}
}
add_filter( 'woocommerce_quantity_input_min', 'wpa116693_filter_min_quantity', 10, 2 );
所以它所做的是,如果它找到带有标签 5 的产品,那么它将最小数量更改为 5。这在单个产品页面中有效,但在购物车页面中无效。我可以低于购物车页面中的最小数量。我认为它不起作用,因为 "has_term" 在购物车页面中不起作用。
我也希望它能在购物车页面中使用。 请帮我解决这个问题,谢谢。
您需要像这样将函数挂接到 woocommerce_cart_loaded_from_session
:
add_action('woocommerce_cart_loaded_from_session', 'wh_checkAndUpdateCart');
function wh_checkAndUpdateCart()
{
//if the cart is empty do nothing
if (WC()->cart->get_cart_contents_count() == 0)
{
return;
}
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item)
{
$product_id = $cart_item['product_id']; // Product ID
$product_qty = $cart_item['quantity']; // Product quantity
if (has_term(5, 'product_tag', $product_id) && ($product_qty > 5))
{
WC()->cart->set_quantity($cart_item_key, 5);
}
if (has_term(10, 'product_tag', $product_id) && ($product_qty > 10))
{
WC()->cart->set_quantity($cart_item_key, 10);
}
if (has_term(6, 'product_tag', $product_id) && ($product_qty > 6))
{
WC()->cart->set_quantity($cart_item_key, 6);
}
}
}
代码进入您的活动子主题(或主题)的 function.php 文件。或者在任何插件 php 文件中。
代码已经过测试并且可以工作。
希望对您有所帮助!