Получите роль пользователя, используя идентификатор пользователя в buddypress


Мне нужно классифицировать пользователя в соответствии с его ролью, поэтому мне нужно найти роль пользователя, используя только идентификатор пользователя (не только для зарегистрированных пользователей, но и для всех пользователей BP).

Что-то вроде этого $user_role=role($user_id);

Author: Paul T., 2012-09-24

2 answers

Попробуйте эту функцию:

function get_user_role($user_id){
    global $wpdb;
    $user = get_userdata( $user_id );
    $capabilities = $user->{$wpdb->prefix . 'capabilities'};
    if ( !isset( $wp_roles ) ){
        $wp_roles = new WP_Roles();
    }
    foreach ( $wp_roles->role_names as $role => $name ) {
        if ( array_key_exists( $role, $capabilities ) ) {
            return $role;
        }
    }
    return false;
}

Я не включил обработку исключений, например, существует ли пользователь или нет, поэтому вы можете сделать это самостоятельно или в случае, если вам даже не понадобится список идентификаторов пользователей.

 4
Author: Gagan, 2012-09-24 09:18:29

Я создал функцию для получения роли пользователя из идентификатора пользователя.

function get_user_role( $user_id ){

  $user_data = get_userdata( $user_id );

  if(!empty( $user_data->roles ))
      return $user_data->roles[0];

  return false; 

}

Вызовите функцию get_user_role(), чтобы получить роль пользователя и передать идентификатор пользователя в качестве параметра. Это вернет роль пользователя, иначе будет возвращено значение false.

 4
Author: umesh.nevase, 2012-09-24 11:19:21