Using Get orders total purchases amount for the day in Woocommerce answer code, returns the total value of woocommerce orders which works fine, but the problem is if I want to exclude all the orders where _billing_first_name
key has not abc value, like in this code attempt:
global $wpdb;
return $wpdb->get_var( "
SELECT DISTINCT SUM(pm.meta_value)
FROM {$wpdb->prefix}posts as p
INNER JOIN {$wpdb->prefix}postmeta as pm ON p.ID = pm.post_id
WHERE p.post_type LIKE 'shop_order'
AND p.post_status IN ('wc-processing','wc-completed')
AND UNIX_TIMESTAMP(p.post_date) >= (UNIX_TIMESTAMP(NOW()) - (86400))
AND pm.meta_key LIKE '_order_total'
AND NOT (pm.meta_value = 'abc')
" );
I have tried a number of ways with no luck, any help is appreciated
2
Answers
For anyone looking into this the fix i made is:
You can also use 2 INNER JOIN for the same table with a different reference as following (to avoid a double query like in your answer):
Tested and works smoother.