WC_Tracker::get_refund_order_data()
Fetch refund data for a specific set of orders.
Метод класса: WC_Tracker{}
Хуков нет.
Возвращает
Массив
. Refund data, indexed by order ID.
Использование
$result = WC_Tracker::get_refund_order_data( $order_ids );
- $order_ids(массив) (обязательный)
- List of order ID's to fetch data for.
Код WC_Tracker::get_refund_order_data() WC Tracker::get refund order data WC 9.6.1
private static function get_refund_order_data( $order_ids ) { global $wpdb; if ( empty( $order_ids ) || ! is_array( $order_ids ) ) { return array(); } $joined_ids = implode( ',', $order_ids ); $refund_data = array(); if ( OrderUtil::custom_orders_table_usage_is_enabled() ) { $order_table_name = OrdersTableDataStore::get_orders_table_name(); // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared $data = $wpdb->get_results( "SELECT parent_order_id AS order_id, SUM(total_amount) AS refund_amount FROM $order_table_name WHERE type = 'shop_order_refund' AND status = 'wc-completed' AND parent_order_id IN ($joined_ids) GROUP BY parent_order_id", ARRAY_A ); // phpcs:enable } else { // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared $data = $wpdb->get_results( "SELECT refunds.post_parent AS order_id, SUM(amount.meta_value) AS refund_amount FROM $wpdb->posts AS refunds LEFT JOIN $wpdb->postmeta AS amount ON amount.post_id = refunds.ID AND amount.meta_key = '_order_total' WHERE refunds.post_type = 'shop_order_refund' AND refunds.post_status = 'wc-completed' AND refunds.post_parent IN ($joined_ids) GROUP BY refunds.post_parent", ARRAY_A ); // phpcs:enable } foreach ( $data as $row ) { $refund_data[ $row['order_id'] ] = array( 'refund_amount' => $row['refund_amount'], ); } return $refund_data; }