wpDiscuz - WordPress Comment Plugin
Share:
Notifications
Clear all

[Solved] Overriding user avatar


antinopol
Posts: 2
Topic starter
(@antinopol)
New Member
Joined: 4 months ago

Hello!

The site has an LMS plugin into which users upload their avatars. I want them to appear in comments, I was able to replace wordpress avatars with LMS avatars using a hook, but wpDiscuz won't load them. Help me find a solution.

Standard comments

image

After installing wpDiscuz

image

Here is the hook by which I will successfully override the Wordpress avatars:

add_filter('get_avatar_data', 'lms_avatar', 10, 2);
function lms_avatar($args, $id_or_email){
    $lmsUrl = get_user_meta($id_or_email->user_id, 'stm_lms_user_avatar', true);
    if ($id_or_email->user_id >= null && $lmsUrl != null){
        $args['url'] = $lmsUrl;
        return $args;
    } else {
        $args['url'] = get_stylesheet_directory_uri() . '/img/avatar-user.jpg';
        return $args;
    }
}
Topic Tags
2 Replies
antinopol
Posts: 2
Topic starter
(@antinopol)
New Member
Joined: 4 months ago

I figured out, it turns out that the plugin overrides the function and the $ id_or_email argument is already an ID.

add_filter('get_avatar_data', 'lms_avatar', 10, 2);
function lms_avatar($args, $userId){
    //Получаем путь к аватару, загруженному через lms
    $lmsUrl = get_user_meta($userId, 'stm_lms_user_avatar', true);
    //Если Id пользователя больше или равно 0 и путь к аватару lms существет, то заменяем на этот путь к аватару
    if ($userId >= null && $lmsUrl != null){
        $args['url'] = $lmsUrl;
        return $args;
    } 
    //Иначе применяем картинку аватара по умолчанию, которая лежит внутри папки темы ../img/avatar.jpg
    else {
        $args['url'] = get_stylesheet_directory_uri() . '/img/avatar-user.jpg';
        return $args;
    }
}
1 Reply
Asti
 Asti
Support
(@asti)
Joined: 4 years ago

Support member
Posts: 3943

Thank you for letting us know. Glad to hear that the issue is fixed.

Share: