Automattic\WooCommerce\Admin\API\Reports\Orders

DataStore::get_customers_by_orders()protectedWC 1.0

Get customer data from Order data.

Method of the class: DataStore{}

No Hooks.

Return

Array.

Usage

// protected - for code of main (parent) or child class
$result = $this->get_customers_by_orders( $orders );
$orders(array) (required)
Array of orders data.

DataStore::get_customers_by_orders() code WC 8.7.0

protected function get_customers_by_orders( $orders ) {
	global $wpdb;

	$customer_lookup_table = $wpdb->prefix . 'wc_customer_lookup';
	$customer_ids          = array();

	foreach ( $orders as $order ) {
		if ( $order['customer_id'] ) {
			$customer_ids[] = intval( $order['customer_id'] );
		}
	}

	if ( empty( $customer_ids ) ) {
		return array();
	}

	/* phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared */
	$customer_ids = implode( ',', $customer_ids );
	$customers    = $wpdb->get_results(
		"SELECT * FROM {$customer_lookup_table} WHERE customer_id IN ({$customer_ids})",
		ARRAY_A
	);
	/* phpcs:enable */

	return $customers;
}