Смена группы пользователя при достижении определенной суммы покупок
Всем привет. Помогите пожалуйста решить задачу.
Мне нужно построить следующую логику: При определенной сумме покупок группа пользователя должна меняться.
Я пытаюсь сделать следующим образом.
$customer = new WC_Customer( $user_id ); // Получю йд пользоветяля
$total_spent = $customer->get_total_spent(); // Получаю сумму покупок
if ($total_spent > 1000) {
//меняю группу...
}
Проблема заключается в том, что в $total_spent всегда лежит 0, хотя в админке показывает другую сумму совершенных покупок. Подскажите как можно реализовать данную логику другими путями или улучить мой.
Заранее спасибо!
Как работает $customer->get_total_spent()
/**
* Get total spent by customer.
*
* @param int $user_id User ID.
* @return string
*/
function wc_get_customer_total_spent( $user_id ) {
$customer = new WC_Customer( $user_id );
return $customer->get_total_spent();
}
Ответы (1 шт):
Для покупателей в WooCommerce, есть функция wc_get_customer_total_spent( $user_id ). Есть два отличных примера в ответах на разных площадках, как менять статус юзера на иностранном стаке и стакэксчендж, повешать проверочку на
add_action( 'woocommerce_order_status_processing', 'change_role_on_purchase' );
или
add_action( 'woocommerce_order_status_completed','change_role_on_purchase' );
Просто надо повешать проверочку (wc_get_customer_total_spent) для текущего пользователя, если он авторизован или из проверяемого ордера.