[ad_1]
Здравствуйте, есть такая проблема. Мы выкатывали сайт без бонусной программы, теперь мы хотим открыть доступ к ней для клиентов, и чтобы заказы считались с момента запуска программы. У вас в плагине в классе BfwPoints есть функция которая считает сумму заказа.
/**
* Находим сумму всех оплаченных заказов клиента
* так как wc_get_customer_total_spent ($to_user->ID); включает сумму не оплаченных заказов тоже.
* @param int $userId
* @return float
* @version 5.2.0
*
*/
public static function getSumUserOrders(int $userId): float
{
$val = get_option('bonus_option_name');
$order_staus = $val['add_points_order_status'] ?? 'completed';
$order_staus = "wc-".$order_staus;
global $wpdb;
$total_alls = $wpdb->get_var( "SELECT SUM(pm.meta_value) FROM {$wpdb->prefix}postmeta as pm
INNER JOIN {$wpdb->prefix}posts as p ON pm.post_id = p.ID
INNER JOIN {$wpdb->prefix}postmeta as pm2 ON pm.post_id = pm2.post_id
WHERE p.post_status LIKE '$order_staus' AND p.post_type LIKE 'shop_order'
AND pm.meta_key LIKE '_order_total' AND pm2.meta_key LIKE '_customer_user'
AND pm2.meta_value LIKE $userId
" );
if(empty($total_alls)){
$total_alls=0;
}
return $total_alls;
}но по сути мы никак не можем влиять на то что она берет все-все заказы. Предлагаю добавить выбор даты в настройки про версии плагина, с которой брать заказы.
