WC_Tracker::get_additional_order_data
Fetch additional data for a specific set of orders.
Метод класса: WC_Tracker{}
Хуков нет.
Возвращает
Массив. Additional data, indexed by order ID.
Использование
$result = WC_Tracker::get_additional_order_data( $order_ids );
- $order_ids(массив) (обязательный)
- List of order ID's to fetch data for.
Код WC_Tracker::get_additional_order_data() WC Tracker::get additional order data WC 10.5.2
private static function get_additional_order_data( $order_ids ) {
global $wpdb;
if ( empty( $order_ids ) || ! is_array( $order_ids ) ) {
return array();
}
$joined_ids = implode( ',', $order_ids );
$additional_data = array();
if ( OrderUtil::custom_orders_table_usage_is_enabled() ) {
$op_table_name = OrdersTableDataStore::get_operational_data_table_name();
// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
$data = $wpdb->get_results(
"SELECT order_id, woocommerce_version, recorded_sales
FROM $op_table_name
WHERE order_id IN ($joined_ids)",
ARRAY_A
);
// phpcs:enable
foreach ( $data as $row ) {
$additional_data[ $row['order_id'] ] = array(
'woocommerce_version' => $row['woocommerce_version'],
'recorded_sales' => $row['recorded_sales'] ? 'yes' : 'no',
);
}
} else {
// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
$data = $wpdb->get_results(
"SELECT post_id AS order_id, meta_key, meta_value
FROM $wpdb->postmeta
WHERE
meta_key IN (
'_order_currency',
'_order_total',
'_payment_method',
'_payment_method_title',
'_recorded_sales',
'_order_version'
)
AND post_id IN ($joined_ids)
",
ARRAY_A
);
// phpcs:enable
foreach ( $data as $row ) {
$meta_key = self::map_legacy_meta_key_name( $row['meta_key'] );
$additional_data[ $row['order_id'] ][ $meta_key ] = $row['meta_value'];
}
}
return $additional_data;
}