【问题标题】:Woocommerce cart total not showing extra fees added by add_fee()Woocommerce 购物车总数未显示 add_fee() 添加的额外费用
【发布时间】:2026-02-05 13:25:01
【问题描述】:

如果购物车总数符合某些条件,我正在尝试取消设置付款方式。所以在woocommerce_cart_calculate_fees hook 中写了代码,用于检查购物车总数并取消设置付款方式。

我已经尝试了这些功能,

WC()->cart->cart_contents_total

floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) )

获取购物车总数。

但是这些方法返回的购物车总数没有考虑我使用钩子上的函数add_fee() 添加到购物车的额外费用woocommerce_available_payment_gateways

有什么办法

获取购物车总数,包括里面的额外费用 woocommerce_cart_calculate_fees 挂钩

我可以在里面取消我的一种付款方式吗 woocommerce_available_payment_gateways 挂钩

谢谢

【问题讨论】:

  • 您是在 functions.php 中编写事件处理程序还是尝试直接编辑 WooCommerce?我不推荐后者,因为这是不正确的做法。如果您以前一种方式进行操作,那么问题可能出在执行顺序上。能否请您展示一下您是如何使用 woocommerce_cart_calculate_fees 挂钩的。

标签: wordpress woocommerce


【解决方案1】:

您可以使用WC()->cart->get_fees()计算费用

$cartFess =  WC()->cart->get_fees();
$cFees = 0;
foreach($cartFess as $cfee){
    $cFees = $cFees + $cfee->amount ;
}
$cartTotal = WC()->cart->cart_contents_total + $cFees;

【讨论】:

    最近更新 更多