我正在 Build 一个插件“购买xxx并获得免费礼物” .
一切正常,但当我将礼物添加到购物车时,价格为0,但在小计中我仍然看到包含“免费产品”价格的价格 .
也就是说,我有 Value 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
过滤器,因为用户可能想要购买相同的产品,即免费礼品 .
设置购物车商品价格的方式是什么,所以它适用于购物车,小计和总计?
1 回答
你走在正确的轨道上 .
“woocommerce_before_calculate_totals”此操作用于更新购物车商品价格 .
请通过调试来检查您的条件 .
是否要仅为“自由项目”设置“0”或将“0”设置为整个购物车?