WooCommerce - 更改购物车中物品的价格

问题描述:

我正在构建一个插件“为xxx购买并获得免费礼物”。WooCommerce - 更改购物车中物品的价格

一切工作正常,但是当我将礼物添加到购物车时,价格为0,但在小计中,我仍然看到包含“免费产品”价格的价格。

即,我有物品价值200美元,我有资格获得免费礼物。我挑选它并将礼物添加到购物车中。价格为0.但在小计中,我仍然看到物品+免费礼物的价格。

我把价格定在before_calculate_totals钩这样的:

foreach ($cart as $key => $item) { 
     if (isset($item['_wfg_gift']) && $item['_wfg_gift'] == 1) { 
      $item['data']->set_price(0); 
     } 
    } 

我也试过calculate_totals钩,没有运气。我无法使用get_price过滤器,因为用户可能想要购买相同的产品,这是免费赠送的。

设置购物车商品价格的方法是什么,所以它可以在购物车,小计和总价中使用?

你是在正确的轨道上。

“woocommerce_before_calculate_totals”此操作用于更新购物车商品价格。

请检查您的条件代码调试。

是否要将“0”设置为“Free Item”或将“0”设置为整个购物车?

+0

我正确设置价格afaik,在购物车中有0,但在小计中计算价格...不知道这里发生了什么事.. – user1049961