Php WooCommerce是限制购物车项目数量上限的另一种方法

Php WooCommerce是限制购物车项目数量上限的另一种方法,php,wordpress,woocommerce,hook-woocommerce,Php,Wordpress,Woocommerce,Hook Woocommerce,我想将用户可以在购物车中拥有的物品数量限制为最多1件(无论数量如何) 关于如何使用“woocommerce\u add\u to\u cart\u validation”和“woocommerce\u update\u cart\u validation”过滤器(例如,…)实现这一点,有几种答案 也可以使用现有的插件,比如一个,但它不支持最大项数限制 然而,在我的例子中,两个过滤器都没有启动,因为我使用的主题完成了对“添加到购物车”逻辑的定制(出于业务/技术方面的原因,与这里的讨论无关) 也就是

我想将用户可以在购物车中拥有的物品数量限制为最多1件(无论数量如何)

关于如何使用“woocommerce\u add\u to\u cart\u validation”和“woocommerce\u update\u cart\u validation”过滤器(例如,…)实现这一点,有几种答案

也可以使用现有的插件,比如一个,但它不支持最大项数限制

然而,在我的例子中,两个过滤器都没有启动,因为我使用的主题完成了对“添加到购物车”逻辑的定制(出于业务/技术方面的原因,与这里的讨论无关)


也就是说,我需要使用不同的解决方案(使用另一个过滤器,…)实现相同的功能。

要实现所需的功能,可以使用“woocommerce\u add\u cart\u item”过滤器,如下所示:

add_filter( 'woocommerce_add_cart_item' , 'validate_cart_max_items');

function validate_cart_max_items( $item_data ) {
  // Check total cart quantity
  $cart_contents_count = WC()->cart->get_cart_contents_count();

  // If quantity > 0, cancel current item addition to cart & display an error message
  if($cart_contents_count > 0) {
    $item_data = NULL;
    wc_add_notice( "A maximum of 1 item can be added to your cart", "error" );
  }

  return $item_data;
}
上述代码片段应添加到活动主题文件夹下的functions.php文件中

此代码段已使用WordPress v5.3.1和WooCommerce v3.8.1进行了测试