Получите роль пользователя, используя идентификатор пользователя в buddypress
Мне нужно классифицировать пользователя в соответствии с его ролью, поэтому мне нужно найти роль пользователя, используя только идентификатор пользователя (не только для зарегистрированных пользователей, но и для всех пользователей BP).
Что-то вроде этого $user_role=role($user_id);
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;
}
Я не включил обработку исключений, например, существует ли пользователь или нет, поэтому вы можете сделать это самостоятельно или в случае, если вам даже не понадобится список идентификаторов пользователей.
Я создал функцию для получения роли пользователя из идентификатора пользователя.
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.