问题描述
我遇到这样的情况,用户不能从特定类别的购物车中添加超过1种产品。我尝试使用woocommerce_add_to_cart_validation
过滤器挂钩。
// before add to cart,only allow 1 item in a cart
add_filter( 'woocommerce_add_to_cart_validation','woo_custom_add_to_cart_before' );
function woo_custom_add_to_cart_before( $cart_item_data ) {
global $woocommerce;
$woocommerce->cart->empty_cart();
// Do nothing with the data and return
return true;
}
此代码无效:
add_filter( 'woocommerce_add_to_cart_validation','woo_custom_add_to_cart_before' );
function woo_custom_add_to_cart_before( $cart_item_data ) {
if( is_product_category( 'test' ) ) {
global $woocommerce;
$woocommerce->cart->empty_cart();
// Do nothing with the data and return
return true;
}
}
请帮忙吗?
解决方法
尝试一下。
add_action( 'woocommerce_before_calculate_totals','only_allow_one_item_from_specific_category',10,1 );
function only_allow_one_item_from_specific_category( $cart ){
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ){
if( has_term( 'test','product_cat',$cart_item['product_id'] ) ) {
$cart->remove_cart_item( $cart_item['product_id'] );
}
}
}
,
{{1}}
此代码对我有用。非常感谢您对所有人的帮助。