Im trying to do something which I feel should be quite easy but I can’t seem to quite grasp.
I have the below code which echo’s users roles. Great. Fantastic.
BUT I have a problem when a user is assigned to multiple roles. It returns null.
Can someone please help me?
Thanks
global $wp_roles;
$user_role = implode(', ', get_userdata($user->ID)->roles);
echo($wp_roles->role_names[ $user_role ]);
1 Answer
I assume you need a foreach loop and echo each roles name separately. Here’s how to do it:
global $wp_roles;
$user_role = get_userdata($user->ID)->roles;
// Check if there is any role for this user
if( $user_role ) {
foreach ( $user_role as $key => $role ) {
echo $wp_roles->role_names[ $role ];
// Add a seperator except for the last name
if ( count ( $user_role ) != ( $key + 1 ) ) { echo "https://wordpress.stackexchange.com/"; }
}
}