Как обновить роль пользователя без выхода из системы

Я работаю над проектом wordpress со следующими плагинами:

  • WooCommerce
  • Поставщики продуктов Woocommerce
  • WP Job Manager
  • Wp Job Manager продукты

Я пытаюсь обновить роль пользователя после добавления задания, чтобы пользователь мог получить доступ к wp-admin и редактировать собственный продукт.

Теперь пользователь может быть обновлен до «Управление панелью поставщика», но проблема в том, что при первом добавлении задания он должен войти в систему / выйти из системы, чтобы обновить свои роли и получить доступ к панели мониторинга.

Вот что я пробовал:

$current_user = wp_get_current_user(); //Code 1 : $user_id = wp_update_user( array( 'ID' => $current_user->ID, 'role' => 'wc_product_vendors_manager_vendor' ) ); //Code 2 : $user = new WP_User( $current_user->ID ); $user->remove_role( 'customer' ); $user->set_role( 'wc_product_vendors_manager_vendor' ); //Code 3 : ( this will make the user with 2 roles ) $current_user->add_role( 'wc_product_vendors_manager_vendor' ); 

Можно ли добиться этого, удалив wp_cache_delete … Кто-нибудь знает хорошее решение для обновления пользовательских ролей без входа / выхода из системы?

Спасибо, что помогли!

Solutions Collecting From Web of "Как обновить роль пользователя без выхода из системы"

Я думаю, что вы на правильном пути, wp_cache_delete – это то, что наконец помогло мне получить автоматическую регистрацию с плагином автоматического входа в систему … У меня это оттуда:

 wp_cache_delete($current_user->ID, 'users'); wp_cache_delete($current_user->user_login, 'userlogins'); 

Затем посмотрите, какие роли вы получите после этого:

 $current_user = wp_get_current_user(); 

Вы пробовали войти в систему после изменения?

Такие как:

  wp_set_current_user( $current_user->ID, $current_user->user_login ); wp_set_auth_cookie( $current_user->ID ); do_action( 'wp_login', $current_user->user_login );