我想同时添加两个产品到购物车,一个是原始(当前)产品,第二个是来自下拉列表
add_action('woocommerce_add_to_cart', 'custome_add_to_cart');
$cnt=2
function custome_add_to_cart() {
global $woocommerce;
$cnt = $cnt + 1;
echo $cnt."X";
echo $p_id=$_POST['assessories'];
$woocommerce->cart->add_to_cart($p_id, 1);
}
输出:- 正如您在下面的输出图像中看到的那样,它在购物车中多次添加相同的下拉项目,但我只想将 1 个数量添加到购物车中。似乎 add_to_cart 函数运行了很多次。我应该做什么或如何通过将第二个下拉产品作为参数添加到购物车功能来添加过滤器?所以我也可以将此产品添加到购物车中。
原文由 luckyamit 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可能正在寻找的是具有某些属性的 可变产品!
无论如何,如果你真的想这样做,那么你只需要 remove_action 函数:
这可以防止动作无限循环并且非常简单。所以它只会为该产品添加一次。您可能希望获取添加到购物车的数量并将其作为第二个参数提供给
WC()->cart->add_to_cart
函数,因此它们的数量相同__FUNCTION__
是一个神奇的 PHP 标记,只是将当前函数的名称作为字符串提供给您,如果函数名称不同,它仍然可以工作