Intereting Posts
Использовать загрузку мультимедиа в пользовательский виджет в wordpress 3.5 Получать сообщения с сайтов в Multisite? Loop.php против цикла внутри файла шаблона Можно ли использовать плагин для хранения всех пользовательских функций для расширения других плагинов Создание страницы для просмотра списка сообщений для пользовательского типа сообщений? Попытка написать shortcode с get_post_meta, но не работает Как отображать имя продукта в алфавитном порядке в пользовательском поле (таксономия)? Запросить пользователей по логину, мета и роли Следующая страница ссылки не работает Шрифт внутри текстового виджета не вызывает стиль очереди Моя пользовательская страница шаблона не загружает содержимое внутри него? Переместите обе боковые панели больше на их стороны Как переместить страницу входа wp-admin в другое место? Как добавить полную ссылку редактирования в редактор интерфейса? Сохранение пользовательских правил иерархической таксономии с использованием wp_set_object_terms для пользовательских полей профиля пользователя

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

Я работаю над проектом 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 );