如何根据角色更改默认头像

问题描述 投票:0回答:1

我从终极会员 -> 设置 -> 外观 -> 个人资料 -> 默认个人资料照片中设置了默认个人资料照片 但此选项将为所有角色设置个人资料照片。 如何为每个角色设置头像?

wordpress roles ultimate-member
1个回答
0
投票

要为终极会员中的每个角色设置不同的默认个人资料图片,您需要使用自定义代码。 Ultimate Member插件本身不提供根据用户角色设置不同默认头像的内置功能。这是通过将自定义代码添加到 WordPress 主题的functions.php 文件来实现此目的的方法。

function custom_um_default_avatar_url( $avatar, $id_or_email, $size, $default, $alt ) {
    // Check if user ID or email is provided
    if ( is_numeric( $id_or_email ) ) {
        $user_id = (int) $id_or_email;
    } elseif ( is_object( $id_or_email ) && ! empty( $id_or_email->user_id ) ) {
        $user_id = (int) $id_or_email->user_id;
    } else {
        return $avatar;
    }

    // Get user roles
    $user = get_userdata( $user_id );
    if ( !$user ) {
        return $avatar;
    }

    $roles = $user->roles;

    // Define default avatars for each role
    $default_avatars = array(
        'administrator' => 'URL_TO_ADMIN_DEFAULT_AVATAR',
        'editor' => 'URL_TO_EDITOR_DEFAULT_AVATAR',
        'author' => 'URL_TO_AUTHOR_DEFAULT_AVATAR',
        'contributor' => 'URL_TO_CONTRIBUTOR_DEFAULT_AVATAR',
        'subscriber' => 'URL_TO_SUBSCRIBER_DEFAULT_AVATAR',
        // Add more roles and URLs as needed
    );

    // Check user roles and set the corresponding default avatar
    foreach ( $roles as $role ) {
        if ( isset( $default_avatars[ $role ] ) ) {
            $avatar = $default_avatars[ $role ];
            break;
        }
    }

    return $avatar;
}

add_filter( 'get_avatar_url', 'custom_um_default_avatar_url', 10, 5 );
© www.soinside.com 2019 - 2024. All rights reserved.