WC_Tracker::get_order_data
Fetch main order data.
Method of the class: WC_Tracker{}
No Hooks.
Returns
Array. Found orders indexed by ID.
Usage
$result = WC_Tracker::get_order_data( $sort_order, $limit );
- $sort_order(string)
- Date sort order (ASC or DESC).
Default:'ASC' - $limit(int)
- Limit the amount of orders to return (default 20).
Default:20
WC_Tracker::get_order_data() WC Tracker::get order data code WC 10.5.0
private static function get_order_data( $sort_order = 'ASC', $limit = 20 ) {
global $wpdb;
if ( OrderUtil::custom_orders_table_usage_is_enabled() ) {
$order_table_name = OrdersTableDataStore::get_orders_table_name();
// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
$orders = $wpdb->get_results(
"SELECT
id,
row_number() OVER (ORDER BY date_created_gmt) AS order_rank,
date_created_gmt AS order_created_at,
date_updated_gmt AS order_updated_at,
currency,
total_amount,
payment_method,
payment_method_title
FROM $order_table_name
WHERE
type = 'shop_order'
AND status IN ('wc-completed', 'wc-refunded')
ORDER BY date_created_gmt $sort_order
LIMIT $limit;",
ARRAY_A
);
// phpcs:enable
} else {
// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
$orders = $wpdb->get_results(
"SELECT
ID AS id,
row_number() OVER (ORDER BY post_date_gmt) AS order_rank,
post_date_gmt AS order_created_at,
post_modified_gmt AS order_updated_at
FROM $wpdb->posts
WHERE
post_type = 'shop_order'
AND post_status IN ('wc-completed', 'wc-refunded')
ORDER BY post_date_gmt $sort_order
LIMIT $limit;",
ARRAY_A
);
// phpcs:enable
}
return array_column( $orders, null, 'id' );
}