Задать вопрос
sputnickk
@sputnickk

Как сменить неавторизированому пользователю роль после оплаты?

Всем привет! Ребят помогите.

Пользователь регистрируется (роль подписчик) через кастомную регистрационную форму и далее его переводит сразу на покупку товара. Тут он не авторизирован, есть поле woocommerce для ввода почты. Он оплачивает визой и пытаюсь дать ему роль:

add_action( 'woocommerce_order_status_completed', 'change_role_on_purchase' );
function change_role_on_purchase( $order_id ) {
    $order = wc_get_order( $order_id );
   
    //получим имейл пользователя 
	$email= $order->get_billing_email();
	
	//получим пользователя  //$user = $order->get_user(); 
	 $user = get_user_by('email', $email);
  
        	// Change role
        	$user->remove_role( 'subscriber' );
        	$user->add_role( 'customer' );

     
}


но что то смены роли не происходит, может статус не тот или не правильно пытаюсь получить пользователя. Подскажите как правильно.
Спасибо

UP#1
Да, все таки статус не тот был, сменил на такой в коде: woocommerce_order_status_processing

теперь меняет роль, все ок.
Вот как бы передать с формы кастомной регистрации имейл в форму чекаута вукомерца... а то два раза вводить имейл как то не камильфо
  • Вопрос задан
  • 109 просмотров
Подписаться 3 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы