Jul 31, 2021 8:06 pm
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
After installing wpDiscuz
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;
}
}
2 Replies
Jul 31, 2021 10:00 pm
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;
}
}



