WooCommerce 获得 Stripe 订单费

nur*_*iye 3 wordpress woocommerce

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

Stripe 费用保存在订单元中:_stripe_fee

我需要得到那里的金额。或者:所有可能的费用(贝宝和条纹)。

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

有没有办法获得订单的所有费用?

我试图这样得到它:

$order = wc_get_order( 8012 );

var_dump($order->get_fees());
Run Code Online (Sandbox Code Playgroud)

但是数组是空的。

var_dump($order)

显示有stripe fee(后端和数据库也这么说)

cha*_*oir 6

所以,理论上$order->fees()应该返还费用。它通过返回数组来做到这一点fee_line。不幸的是,Stripe 和 Paypal 似乎都没有写信fee_line。相反,它们写入元属性。

不过,这并不能阻止您推出自己的函数以返回 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;
}
Run Code Online (Sandbox Code Playgroud)