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

在WooCommerce中添加到购物车之前清空购物车

班泽语
2023-03-14
  1. 最初,我选择了一个包(Woo订阅)
  2. 然后添加了所有详细信息。
  3. 但未提交。
  4. 回到网站,所以再次购买我需要选择一个包。所以我选择了这个包,并填写了详细信息,然后转到付款包。
  5. 现在在我的购物车中,两个包都存在(即我没有第一次购买就选择的包和最近的包)
  6. 如何修复此问题,使最新选定的一个在购物车中,而较早的一个在选定最新的一个后立即删除。

我尝试了这个Woocommerce从购物车中删除所有产品,并将当前产品添加到购物车,但没有帮助。

共有1个答案

康言
2023-03-14

更新(有2个不同的备选方案):

您应该尝试以下操作:

add_filter( 'woocommerce_add_to_cart_validation', 'remove_cart_item_before_add_to_cart', 20, 3 );
function remove_cart_item_before_add_to_cart( $passed, $product_id, $quantity ) {
    if( ! WC()->cart->is_empty() )
        WC()->cart->empty_cart();
    return $passed;
}

代码放在活动子主题(或主题)的functions.php文件中。测试并使用ajax-add-to-cart和普通Add-to-Cart

// Keep only last cart item
add_action( 'woocommerce_before_calculate_totals', 'keep_only_last_cart_item', 30, 1 );
function keep_only_last_cart_item( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    $cart_items = $cart->get_cart();

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

  • 问题内容: 单击后,我想重新标记“ 添加到购物车” 按钮,然后将一项添加到购物车, 再添加到购物车中 。 这可能吗? 我有第二个 转到购物车* 按钮的Child-Theme function.php ,并且它正在工作。 * 但是我不知道在将一件商品添加到购物车后如何解决此重新标签问题(商店仅出售一件尺寸不同的商品)。我希望我很清楚。 这是我的代码: 问题答案: 更新: 在下面,您将找到使此重新标记

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

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

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