/**
 * Return a user's main role
 *
 * @since bbPress (r3860)
 *
 * @param int $user_id
 * @uses bbp_get_user_id() To get the user id
 * @uses get_userdata() To get the user data
 * @uses apply_filters() Calls 'bbp_get_user_role' with the
 *                        role and user id
 * @return string
 */
function bbp_get_user_role($user_id = 0)
{
    // Validate user id
    $user_id = bbp_get_user_id($user_id, false, false);
    if (empty($user_id)) {
        return false;
    }
    // Get userdata
    $user = get_userdata($user_id);
    // Get the user's main role
    $role = isset($user->roles) ? array_shift($user->roles) : bbp_get_anonymous_role();
    return apply_filters('bbp_get_user_role', $role, $user_id, $user);
}
Exemple #2
0
/**
 * Return a user's main role for display
 *
 * @since bbPress (r3860)
 *
 * @param int $user_id
 * @uses bbp_get_user_role() To get the main user role
 * @uses bbp_get_moderator_role() To get the moderator role
 * @uses bbp_get_participant_role() To get the participant role
 * @uses bbp_get_moderator_role() To get the moderator role
 * @uses apply_filters() Calls 'bbp_get_user_display_role' with the
 *                        display role, user id, and user role
 * @return string
 */
function bbp_get_user_display_role($user_id = 0)
{
    // Validate user id
    $user_id = bbp_get_user_id($user_id, false, false);
    $user_role = bbp_get_user_role($user_id);
    // Capes earn Vinz Clortho status
    if (is_super_admin($user_id)) {
        $role = __('Key Master', 'bbpress');
        // Not the keymaster of Gozer
    } else {
        // Get the user's main role for display
        switch ($user_role) {
            /** bbPress Roles *********************************************/
            // Anonymous
            case bbp_get_anonymous_role():
                $role = __('Guest', 'bbpress');
                break;
                // Multisite Participant Role
            // Multisite Participant Role
            case bbp_get_participant_role():
                $role = __('Member', 'bbpress');
                break;
                // Moderator
            // Moderator
            case bbp_get_moderator_role():
                $role = __('Moderator', 'bbpress');
                break;
                /** WordPress Core Roles **************************************/
            /** WordPress Core Roles **************************************/
            case 'administrator':
            case 'editor':
            case 'author':
            case 'contributor':
            case 'subscriber':
            default:
                // Any other role (plugins, etc...)
                global $wp_roles;
                // Load roles if not set
                if (!isset($wp_roles)) {
                    $wp_roles = new WP_Roles();
                }
                // Get a translated role name
                if (!empty($wp_roles->role_names[$user_role])) {
                    $role = translate_user_role($wp_roles->role_names[$user_role]);
                } else {
                    $role = __('Member', 'bbpress');
                }
                break;
        }
    }
    return apply_filters('bbp_get_user_display_role', $role, $user_id, $user_role);
}