Get user role names by user ID in WordPress

/**
 * Gets user role names by user ID.
 *
 * @see https://wpcodebook.com/wordpress-get-user-role-names-by-user-id/
 * @see https://developer.wordpress.org/reference/classes/wp_user/
 *
 * @return string
 */
function wpcodebook_get_user_role_names( $user_id ) {

	$user = new WP_User( $user_id );

	if ( ! $user ) {
		return '';
	}

	$role_names = array_map(
		function ( $role_id ) {
			global $wp_roles;
			return ( $wp_roles->roles[ $role_id ]['name'] ?? $role_id );
		},
		$user->roles
	);

	return implode( ', ', $role_names );

}

Leave a Comment