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; } }