当前位置: 首页 > 知识库问答 >
问题:

只有一个当前添加到Woocommerce购物车的产品?

况弘新
2023-03-14
/**
 * When an item is added to the cart, remove other products
 */
function custom_maybe_empty_cart( $valid, $product_id, $quantity ) {

if( ! empty ( WC()->cart->get_cart() ) && $valid ){
    WC()->cart->empty_cart();
    wc_add_notice( 'Only allowed 1 item in cart, please remove previous 
item.', 'error' ); // here instead popup notice need to remove prevous added product
}

return $valid;

}
add_filter( 'woocommerce_add_to_cart_validation', 'custom_maybe_empty_cart', 
10, 3 );

但这似乎不是我想要的。它需要自动删除购物车中以前添加的产品,并在购物车中添加最新添加的产品。有人能给我提示什么需要更新的类工作在最新的Woo3.3.x?

共有1个答案

羊舌洛华
2023-03-14

这是一个更紧凑和实际的代码,因为不再需要global$Woocommerce:

add_filter( 'woocommerce_add_to_cart_validation', 'auto_empty_cart', 20, 3 );
function auto_empty_cart( $passed, $product_id, $quantity ) {
    if( WC()->cart->is_empty() ) return $passed; // Exit

    WC()->cart->empty_cart();
    return $passed;
}

代码放在您的活动子主题(或活动主题)的function.php文件中。

已在2.6.x以来的所有Woocommerce版本中测试并运行

 类似资料:
  • 我经营一家Woocommerce商店,该商店也提供免费产品(_常规价格=0)。客户必须选择数量并将其添加到购物车中,然后下订单才能收到产品。但这并不是Woocommerce的工作原理,它隐藏了所有价格为0的产品的“添加到购物车”链接。并且不会在购物车页面中显示它们。有没有解决这个问题的办法?非常感谢。

  • 在商品分类页面上,当有人点击“添加到购物车”时,WooCommerce通过Ajax在此按钮下方添加“查看购物车”。我发现处理这个的脚本是 /assets/js/frontend/add-to-cart.js 现在,我想添加"Procceed to check out",这样某人就可以立即去结账。 这是脚本的输出: 有没有人做过类似的事情?

  • 最初,我选择了一个包(Woo订阅) 然后添加了所有详细信息。 但未提交。 回到网站,所以再次购买我需要选择一个包。所以我选择了这个包,并填写了详细信息,然后转到付款包。 现在在我的购物车中,两个包都存在(即我没有第一次购买就选择的包和最近的包) 如何修复此问题,使最新选定的一个在购物车中,而较早的一个在选定最新的一个后立即删除。 我尝试了这个Woocommerce从购物车中删除所有产品,并将当前产

  • 我是新来的。我想将产品添加到购物车并列出购物车的所有产品。我已经将Co-Cart插件添加到我的服务器,并且我正在使用Co-Cart API实现购物车相关功能。 我面临的问题是,我不能在我的反应本地应用程序中查看购物车产品。以下是我现在使用的API: 1.将产品添加到购物车: 方法:邮寄 URL:https://www.myhost.com/wp-json/wc/v2/cart/add?token=

  • 正如doublesharp所指出的那样,在解释问题上还有另一个问题,这并不是很清楚。 Joe点击一个产品,然后选择产品表单上的各种选项,然后在点击“添加到购物车”按钮之后,但在将其添加到购物车之前,计算自定义成本。 这些选项需要完全自定义,因为所涉及的计算超出了woocommerce“可变产品”的范围。我试图实现的是,客户能够添加同一产品的多个实例,并与之相关的各种成本和信息。