Check user role(s) in WordPress

/**
 * Checks user role(s).
 *
 * @see https://wpcodebook.com/wordpress-check-user-role/
 *
 * @param string|array $user_role User role(s). Use `guest` to check for the non-logged users.
 * @param int $user_id User ID. Set to zero for the current user.
 * @return  bool
 */
function wpcodebook_is_user_role( $user_role, $user_id = 0 ) {

	$user       = ( $user_id ? get_user_by( 'id', $user_id ) : wp_get_current_user() );
	$user_roles = ( ! empty( $user->roles ) && is_array( $user->roles ) ? $user->roles : array( 'guest' ) );

	return ( is_array( $user_role ) ?
		! empty( array_intersect( $user_role, $user_roles ) ) :
		in_array( $user_role, $user_roles )
	);

}

Leave a Comment