Смена группы пользователя при достижении определенной суммы покупок

Всем привет. Помогите пожалуйста решить задачу.

Мне нужно построить следующую логику: При определенной сумме покупок группа пользователя должна меняться.

Я пытаюсь сделать следующим образом.

$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 шт):

Автор решения: Sergio

Для покупателей в 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) для текущего пользователя, если он авторизован или из проверяемого ордера.

→ Ссылка