Получить роль пользователей с его суммой процентов 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);
→ Ссылка