WooCommerce获得定单费用

时间:2019-05-14 11:19:59

标签: wordpress woocommerce

我需要通过代码获取订单费用。 有两种可能的费用:stripe和paypal。

条纹费保存在订单元中:_stripe_fee

我需要获取其中的金额。 或者:所有可能的费用(贝宝和条纹)。

虽然我只能获取meta字段,但我真的不想对字段名进行硬编码。

有办法收取订单费用吗?

我试图那样做:

$order = wc_get_order( 8012 );

var_dump($order->get_fees());

但是数组为空。

但是

var_dump($order)

表明有条带化费用(后端和数据库也是如此)

1 个答案:

答案 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;
}