Получить роль пользователей с его суммой процентов WooCommerce
Необходимо получить процент от суммы продаж для всех продавцов (роль пользователя) за недельный период используя sql запрос
Ответы (1 шт):
Автор решения: Виталий Бриль
→ Ссылка
Is sql:
SELECT (SUM(orderTotal.meta_value) * 5 /100) AS total_sum, usermeta.meta_value AS salesman_id
FROM wp_posts AS post
INNER JOIN wp_postmeta as customerUser ON post.ID = customerUser.post_id AND customerUser.meta_key = '_customer_user'
INNER JOIN wp_postmeta as orderTotal ON post.ID = orderTotal.post_id AND orderTotal.meta_key = '_order_total'
INNER JOIN wp_usermeta as usermeta ON customerUser.meta_value = usermeta.user_id AND (usermeta.meta_key = 'salesman_id' AND usermeta.meta_value != '')
WHERE post.post_type = 'shop_order'
AND post.post_status IN ('wc-completed')
AND post.post_date BETWEEN '2022-05-23' AND '2022-05-29'
GROUP BY salesman_id
;
Is wordpress:
global $wpdb;
$query = "SELECT (SUM(orderTotal.meta_value) * 5 /100) AS total_sum, usermeta.meta_value AS salesman_id
FROM {$wpdb->prefix}posts AS post
INNER JOIN {$wpdb->prefix}postmeta as customerUser ON post.ID = customerUser.post_id AND customerUser.meta_key = '_customer_user'
INNER JOIN {$wpdb->prefix}postmeta as orderTotal ON post.ID = orderTotal.post_id AND orderTotal.meta_key = '_order_total'
INNER JOIN {$wpdb->prefix}usermeta as usermeta ON customerUser.meta_value = usermeta.user_id AND (usermeta.meta_key = 'salesman_id' AND usermeta.meta_value != '')
WHERE post.post_type = 'shop_order'
AND post.post_status IN ('wc-completed')
AND post.post_date BETWEEN '2022-05-23' AND '2022-05-29'
GROUP BY salesman_id
;";
return $wpdb->get_results($query);