我需要通过代码获取订单费用。 有两种可能的费用:stripe和paypal。
条纹费保存在订单元中:_stripe_fee
我需要获取其中的金额。 或者:所有可能的费用(贝宝和条纹)。
虽然我只能获取meta字段,但我真的不想对字段名进行硬编码。
有办法收取订单费用吗?
我试图那样做:
$order = wc_get_order( 8012 );
var_dump($order->get_fees());
但是数组为空。
但是
var_dump($order)
表明有条带化费用(后端和数据库也是如此)
答案 0 :(得分:1)
因此,理论上$order->fees()
应该退还费用。它通过返回数组fee_line
来实现。不幸的是,Stripe和Paypal都没有写过fee_line
。相反,它们写入meta属性。
这不会阻止您滚动自己的函数,但会获得Stripe或Paypal费用退回:
function get_order_fees(WCOrder $order) {
switch(true) {
// get fees from Stripe, if exists
case $fees = $order->get_meta("_stripe_fee");
break;
// get fees from Paypal, if exists
case $fees = $order->get_meta("_paypal_transaction_fee"):
break;
// otherwise fee is 0
default:
$fees = 0;
break;
}
return $fees;
}