web-dev-qa-db-ja.com

WooCommerce-get_order()が機能していません

IDで注文を取得する関数を作成しようとしています。何らかの理由で、WooCommerceグローバル関数get_orderを機能させることができません。有効な順序idを関数に渡し、それが機能していることを確認するために出力しようとしています。関数は私のfunctions.phpファイルに配置されました。

function getWC_order_details($id){
    global $woocommerce;

    $order = get_order( $id );

    print "<pre>";
    print_r($order);
    print "</pre>";
}

関数から他のデータを問題なくエコーすることをテストしました。

6
nickyb

まず、次のような関数を作成します。

function getWC_order_details($order_id) { 
    $order = new WC_Order( $order_id );
    var_dump($order);
}

その後、woo_commerceactionまたはfilter

function use_after_cart_table(){
    getWC_order_details(40);
}
add_action( 'woocommerce_after_cart_table', 'use_after_cart_table' );

したがって、商品をカートに追加すると、カートテーブルの後に、すべての詳細を含む1つの配列があることがわかります。

[〜#〜] note [〜#〜]:他のアクションまたはフィルターを使用して、それらを見つけることができます ここ =。

編集済み:

function getWC_order_details($order_id) { 
    $order = new WC_Order( $order_id );
    //var_dump($order);
    $order_shipping_total = $order->get_shipping();
    $order_shipping_method = $order->get_shipping_methods();
    var_dump($order_shipping_total);//Use it for debugging purpose or to see details in that array
    var_dump($order_shipping_method);//Use it for debugging purpose or to see details in that array

    $_order =   $order->get_items(); //to get info about product
    foreach($_order as $order_product_detail){
        //var_dump($order_product_detail);
        echo "<b>Product ID:</b> ".$order_product_detail['product_id']."<br>";
        echo "<b>Product Name:</b> ".$order_product_detail['name']."<br><br>";
    }
    //var_dump($_order);
}
15

これを試してみてください。あなたに役立つかもしれません。

function getWC_order_details($id)
{
 $array = WC_API_Orders::get_order( $id, $fields );
 print "<pre>";
 print_r($order);
 print "</pre>";
}

ソース:ファイル名:woocommerce/contains/api/class-wc-api-orders.php

0
Shravan Sharma