Wordpress — изменить роль форума вне bbPress, проверив статус пользователя

Я хотел бы проверить статус пользователя и соответствующим образом обновить его роль на форуме bbPress. (Не роль Wordpress.)

Цель состоит в том, чтобы добавить функциональные возможности в плагин BP-Registration-Options, который модерирует регистрацию пользователей (в BuddyPress. В настоящее время плагин устанавливает статус пользователя на 69, пока пользователь не одобрен, и блокирует доступ к функциям BuddyPress. Однако пользователь по-прежнему смог войти.

Когда они входят в систему, bbPress автоматически устанавливает роль пользователя на форуме в соответствии с вашими настройками в админке. В этом случае он установлен на «зритель». Когда пользователь одобрен администратором, его статус меняется, и я хочу, чтобы он также обновил роль bbPress до «участника».

Вот моя первая попытка:

function bp_registration_options_additional() {
  if ( is_user_logged_in() ) {  
    $user_ID = get_current_user_id();
    $user = get_userdata( $user_ID );
      if (69 !== $user->user_status ) {

      // Here is where I need help. 

     //How to set the bbPress forum role to 'Participant'? 

    }
  }
}
add_action( 'wp_loaded', 'bp_registration_options_additional' );

Спасибо!

WP: 3,8 ббПресса: Версия 2.5.2

РЕДАКТИРОВАТЬ: Немного дополнительной информации. Мета-ключ для ролей форума: wp_capabilities. Мета_значение пользователя с ролью на форуме 'наблюдатель; это: a:2:{s:10:"subscriber";b:1;s:13:"bbp_spectator";b:1;}


person AJ1    schedule 09.01.2014    source источник


Ответы (1)


Было такое же требование - обновить поле wp_capabilities -

$wp_user_capabilities_arr = array( "subscriber" => true, "bbp_participant" => true ); update_user_meta($wp_user_id, "wp_capabilities", $wp_user_capabilities_arr);

И после обновления данные выглядят так:

a:2:{s:10:"подписчик";b:1;s:15:"bbp_participant";b:1;}

person cpbrand    schedule 18.05.2014