Php Woocommerce:以编程方式添加折扣时,在订单详细信息中显示折扣字段

Php Woocommerce:以编程方式添加折扣时,在订单详细信息中显示折扣字段,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我以编程方式向Woocommerce订单添加折扣,如果他们是会员,如下所示: function member_discount($cart) { /* Code to check if user is a member here */ $memberdiscount = 0.05; // Get total cart amount $carttotal = $cart->cart_contents_total; // Calculate numbered discount $dis

我以编程方式向Woocommerce订单添加折扣,如果他们是会员,如下所示:

function member_discount($cart) {

/* Code to check if user is a member here */

$memberdiscount = 0.05;

// Get total cart amount
$carttotal = $cart->cart_contents_total;

// Calculate numbered discount
$discount = $carttotal * $memberdiscount;

// Alter the cart discount total
$cart->discount_total = $cart->discount_total + $discount;  
}

add_action('woocommerce_calculate_totals', 'member_discount');
但是,如果我购买了价值10英镑的产品,并且用户是会员(因此可以获得5%的折扣),订单显示如下,但没有说明为什么会应用折扣:

购物车小计10.00英镑
订单总额9.50英镑

最棒的是:

购物车小计10.00英镑
会员折扣0.50英镑
订单总额9.50英镑

或者愚弄woocommerce,使其认为已应用优惠券代码:

购物车小计10.00英镑
优惠券:会员折扣0.50英镑
订单总额9.50英镑


有人知道这是否可行吗?

查看“woocommerce\u cart\u product\u subtotal”挂钩。您好,Sergiu,谢谢您的回复。你能再具体一点吗?我能在这个钩子上找到的就是class-wc-cart.php中的这一行:return apply_filters('woocommerce_cart_product_subtotal',$product_subtotal,$_product,$quantity,$this);这就是构建order HTML的函数。这是唯一可以修改它的地方。如果你不知道什么是过滤器或钩子,试着阅读官方的WordPress文档。