2

由于我已经可以访问订单 ID 和订单列表,我如何访问每个订单的每个订单费用?

我有以下内容,但是我在哪里以及如何将其插入现有代码中,允许我将其添加为$orderList索引?

foreach( $orderID->get_items('fee') as $item_id => $item_fee ){

    // fee name
    $fee_name = $item_fee->get_name();

    // fee total amount
    $fee_total = $item_fee->get_total();

    // fee total tax amount
    $fee_total_tax = $item_fee->get_total_tax();
}

我需要能够使用上面的代码和下面的代码。

function GetOrderList() {

    $query = new WC_Order_Query( array(
    'limit' => 100,
    'orderby' => 'date',
    'order' => 'DESC',
    'return' => 'ids',
    ) );

    $orders = $query->get_orders();

    $orderList = array();

        $index = 0;

        foreach ( $orders as $orderID ) {
            
            $order = new WC_Order($orderID);
            
            $order_data = $order->get_data();
            
            $orderList[$index]['order_id'] = $orderID;
            $orderList[$index]['name'] = $order->get_billing_first_name().' '.$order->get_billing_last_name();
            $orderList[$index]['email'] = $order->get_billing_email();
            $orderList[$index]['phone'] = $order->get_billing_phone();
            $orderList[$index]['note'] = $order->get_customer_note();
            $orderList[$index]['order_status'] = $order->get_status();
            $orderList[$index]['total_price'] = $order->get_total();
            // how do I get this to work?
            $orderList[$index]['fee'] = $order->$fee_total;
        
            $index++;
        }

    return $orderList;
}
4

1 回答 1

1

我稍微修改了你的代码。

要将费用数据添加到从您的自定义函数返回的数组中,您可以使用:

function get_order_list() { 
    // Get 100 most recent order objects in date descending order.
    $orders = wc_get_orders( array(
        'limit' => 100,
        'orderby' => 'date',
        'order' => 'DESC',
        'return' => 'objects',
    ));
    
    $order_list = array();
    
    $index = 0;
    
    // NOT empty
    if ( sizeof( $orders ) > 0 ) {
        // Iterating through each order
        foreach ( $orders as $order ) {
            // Get order details
            $order_list[$index]['order_id'] = $order->get_id();
            $order_list[$index]['name'] = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();
            $order_list[$index]['email'] = $order->get_billing_email();
            $order_list[$index]['phone'] = $order->get_billing_phone();
            $order_list[$index]['note'] = $order->get_customer_note();
            $order_list[$index]['order_status'] = $order->get_status();
            $order_list[$index]['total_price'] = $order->get_total();
            
            $indexx = 0;

            // Iterating through order fee items
            foreach( $order->get_items('fee') as $item_id => $item_fee ) {
                // Fee name
                $order_list[$index][$indexx]['item_fee_name'] = $item_fee->get_name();

                // Fee total amount
                $order_list[$index][$indexx]['item_fee_amount'] = $item_fee->get_total();

                // Fee total tax amount
                $order_list[$index][$indexx]['item_fee_total_tax'] = $item_fee->get_total_tax();
                
                $indexx++;
            }
            
            $index++;
        }
    }

    return $order_list;
}

结果:

$result = get_order_list();

echo '<pre>', print_r( $result, 1 ), '</pre>';
于 2021-05-21T07:08:15.290 回答