From 071dc7debeba3c0096489b8b090e734cfe0fe9b7 Mon Sep 17 00:00:00 2001 From: Jeff Stieler Date: Wed, 10 Apr 2019 14:48:03 -0600 Subject: [PATCH] =?UTF-8?q?Handle=20=E2=80=9Call=20guests=E2=80=9D=20when?= =?UTF-8?q?=20getting=20customers=20from=20orders.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...class-wc-admin-reports-orders-data-store.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/plugins/woocommerce-admin/includes/data-stores/class-wc-admin-reports-orders-data-store.php b/plugins/woocommerce-admin/includes/data-stores/class-wc-admin-reports-orders-data-store.php index caa97c42543..4458ef084cb 100644 --- a/plugins/woocommerce-admin/includes/data-stores/class-wc-admin-reports-orders-data-store.php +++ b/plugins/woocommerce-admin/includes/data-stores/class-wc-admin-reports-orders-data-store.php @@ -337,24 +337,29 @@ class WC_Admin_Reports_Orders_Data_Store extends WC_Admin_Reports_Data_Store imp } /** - * Get customer data from order IDs. + * Get customer data from Order data. * - * @param array $orders Array of orders. + * @param array $orders Array of orders data. * @return array */ protected function get_customers_by_orders( $orders ) { global $wpdb; - $customer_lookup_table = $wpdb->prefix . 'wc_customer_lookup'; - $customer_ids = array(); + $customer_lookup_table = $wpdb->prefix . 'wc_customer_lookup'; + $customer_ids = array(); + foreach ( $orders as $order ) { if ( $order['customer_id'] ) { $customer_ids[] = $order['customer_id']; } } - $customer_ids = implode( ',', $customer_ids ); - $customers = $wpdb->get_results( + if ( empty( $customer_ids ) ) { + return array(); + } + + $customer_ids = implode( ',', $customer_ids ); + $customers = $wpdb->get_results( "SELECT * FROM {$customer_lookup_table} WHERE customer_id IN ({$customer_ids})", ARRAY_A ); // WPCS: cache ok, DB call ok, unprepared SQL ok.