【发布时间】:2018-05-09 12:13:57
【问题描述】:
我的 Woocommerce 网站上有一个功能,可让客户根据我通过 URL 传递的值设置自定义金额以支付特定产品的费用。
我正在使用 woocommerce_before_calculate_totals 挂钩,直到我升级到 WC 3.3.5,它工作正常。现在,当我运行代码时,结帐最初会显示自定义金额。
但是,加载程序完成更新后,会将价格重置为“0”(即显示结帐页面的总字段为 0.00 英镑)。
代码如下:
add_action( 'woocommerce_before_calculate_totals', 'pay_custom_amount', 99);
function pay_custom_amount() {
$payment_value = $_GET['amount'];
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if($cart_item['data']->id == 21 ){
$cart_item['data']->set_price($payment_value);
}
}
}
好吧,让我感到困惑。我已经在 Stack Overflow 上寻找解决方案,但看不到任何类似的问题。我看到钩子运行了多次,但认为这是正常的。
如果有人知道这里可能发生的事情,如果你能分享一下,那就太好了。
【问题讨论】:
标签: php wordpress woocommerce get cart