WooCommerce add_to_cart() 如果购物车不为空则失败

问题描述 投票:0回答:0

我有一个相当简单的函数,它获取多个产品数据并通过 foreach 循环将这些产品批量添加到购物车。 问题是,如果购物车已经包含任何添加的产品,我的循环中的第一个产品将被跳过而不是添加。第一个之后的任何其他产品,添加都没有问题。如果购物车是空的,所有产品都可以添加,包括第一个。

我已经转储了所有变量,所有数据都很好,都是整数。我尝试检查

cart_item_key
并且它被正确分配。我尝试更改代码以首先查找购物车中已有的任何给定产品,然后只更新它们的数量,但这并没有解决问题。还尝试在其中添加一些
WC()->cart->maybe_set_cart_cookies();
语句,但没有运气。

在寻找答案时,我发现有些人在谈论购物车会话和持久购物车。但我不确定这是否相关。

感谢您的帮助!

代码如下:

foreach ( $products_data as $product_data ) {

  $product_id = $product_data['product_id'];
  $variation_id = isset( $product_data['variation_id'] ) ? $product_data['variation_id'] : false;
  $quantity = isset( $product_data['quantity'] ) ? $product_data['quantity'] : 1;

  // Add the product or variation to the cart with the unique key
  if ( $variation_id !== false ) {
    WC()->cart->add_to_cart( $product_id, $quantity, $variation_id );
  } else {
    WC()->cart->add_to_cart( $product_id, $quantity, 0, array(), array() );
  }
}
php wordpress woocommerce hook-woocommerce woocommerce-rest-api
© www.soinside.com 2019 - 2024. All rights reserved.