Php Woocommerce:以编程方式添加折扣时,在订单详细信息中显示折扣字段
我以编程方式向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
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文档。