From 7beb159927431f2c3ca2d40429e1eed083da8ce1 Mon Sep 17 00:00:00 2001 From: Gerhard Date: Wed, 18 Feb 2015 12:04:19 +0200 Subject: [PATCH] Remove posts join from wc_get_customer_available_downloads, speeds query up by 50% --- includes/wc-user-functions.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/includes/wc-user-functions.php b/includes/wc-user-functions.php index 8d43f269bc6..a7e055afe9c 100644 --- a/includes/wc-user-functions.php +++ b/includes/wc-user-functions.php @@ -388,10 +388,8 @@ function wc_get_customer_available_downloads( $customer_id ) { $results = $wpdb->get_results( $wpdb->prepare( " SELECT permissions.* FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions as permissions - LEFT JOIN {$wpdb->posts} as posts ON permissions.order_id = posts.ID WHERE user_id = %d AND permissions.order_id > 0 - AND posts.post_status IN ( '" . implode( "','", array_keys( wc_get_order_statuses() ) ) . "' ) AND ( permissions.downloads_remaining > 0 @@ -416,6 +414,11 @@ function wc_get_customer_available_downloads( $customer_id ) { $_product = null; } + // Make sure the order exists for this download + if ( ! $order ) { + continue; + } + // Downloads permitted? if ( ! $order->is_download_permitted() ) { continue;