Woocommerceプラグイン(ワードプレス)で注文に関連付けられたデータを取得しようとしています。現在、私はコードを含む自分のプラグインを書いています:
<?php
global $woocommerce;
$order = new WC_Order($order_id);
$order_shipping_total = $order->get_shipping();
echo $order_shipping_total;
?>
これは単にテストするためのものであり、機能しているとは思いませんが、実際に必要なのは、特定の注文ステータスを持つ注文のリストを取得して、フィールド(名など)にアクセスできるようにすることです。このリストの注文ごとに。これを行うにはどうすればよいですか?また、これを機能させるためにどのファイルを含めますか? class-wc-order()ファイル?
最近、XMLでの注文データのエクスポートに携わっています。
$args = array(
'post_type' => 'shop_order',
'post_status' => 'publish',
'meta_key' => '_customer_user',
'posts_per_page' => '-1'
);
$my_query = new WP_Query($args);
$customer_orders = $my_query->posts;
foreach ($customer_orders as $customer_order) {
$order = new WC_Order();
$order->populate($customer_order);
$orderdata = (array) $order;
// $orderdata Array will have Information. for e.g Shippin firstname, Lastname, Address ... and MUCH more.... Just enjoy!
}
特定の顧客の注文を除外するには、追加の引数meta_valueを使用します。
$user_id = get_current_user_id();
$args = array(
'post_type' => 'shop_order',
'post_status' => 'publish',
'meta_key' => '_customer_user',
'meta_value' => $user_id,
'numberposts' => -1, // -1 for all orders
'posts_per_page' => '-1'
);
$my_query = new WP_Query($args);
特定の顧客の注文をロードする別の方法:
$orders = get_posts( apply_filters( 'woocommerce_my_account_my_orders_query', array(
'numberposts' => 1, // -1 for all orders
'meta_key' => '_customer_user',
'meta_value' => $user_id,
'post_type' => 'shop_order',
'post_status' => 'publish'
) ) );
here も参照してください。