WooCommerce получает полосу комиссионных за заказ - PullRequest
1 голос
/ 14 мая 2019

Мне нужно получить комиссию за мои заказы по коду. Существует два возможных сбора: полоса и PayPal.

Плата за полосу сохраняется в мета-порядке заказа: _stripe_fee

Мне нужно получить сумму, которая там есть. Или: все возможные сборы (PayPal и полоса).

Хотя я мог бы просто получить мета-поле, я действительно не хочу жестко задавать имя поля.

Есть ли способ получить все сборы за заказ?

Я пытался получить это так:

$order = wc_get_order( 8012 );

var_dump($order->get_fees());

Но Массив пуст.

Но

var_dump($order)

Показывает, что есть плата за полосу (и бэкэнд и база данных тоже так говорят)

1 Ответ

2 голосов
/ 14 мая 2019

Итак, теоретически $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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...