Можно обновить аватар пользователя для плагина WordPress SSO?

Плагин SSO работает отлично.
Однако он не может синхронизировать аватары пользователей из Discourse с WordPress.
Не могли бы вы добавить эту функцию?

Привет @cmdntd :slight_smile:

Получается, у вас Discourse настроен как провайдер DiscourseConnect для WordPress через плагин WP Discourse? Так?

Сами по себе WordPress не поддерживает кастомные аватары пользователей. Вам понадобится плагин для аватаров в WordPress. Отчасти поэтому в плагине WP Discourse нет просто настройки для синхронизации аватаров Discourse, когда Discourse выступает в роли провайдера DiscourseConnect, так как способ обработки кастомных аватаров зависит от того, как именно WordPress реализует эту функцию.

Однако плагин WP Discourse предоставляет фильтр, с помощью которого можно получить URL аватара Discourse: wpdc_sso_client_updated_user. Этот фильтр применяется каждый раз, когда пользователь входит в WordPress через DiscourseConnect.

add_filter( 'wpdc_sso_client_updated_user', 'my_wpdc_sso_client_updated_user', 10, 2 );
function my_wpdc_sso_client_updated_user( $updated_user, $query ) {
	## используйте $query['avatar_url']
}

Таким образом, если вы используете плагин для аватаров в WordPress, чтобы разрешить пользователям устанавливать кастомные аватары, и примените этот фильтр, вы сможете назначать аватары пользователей WordPress их аватарам из Discourse, когда Discourse является провайдером DiscourseConnect.

Спасибо, это именно Discourse Connect provider for Wordpress. Я видел этот плагин:

Но этот плагин также дает пользователям возможность менять аватар.
На самом деле, я не хочу, чтобы пользователи меняли свои аватары. Могу ли я заставить их использовать аватар из Discourse, запретив возможность его изменения?

Да, вы можете использовать этот плагин. Вам нужно будет использовать упомянутый мной фильтр для установки изображения аватара через discourse_image_url. Это решение специфично для плагина Simple Local Avatars и не будет включено напрямую в плагин WP Discourse.

Если вы не уверены, как реализовать эту интеграцию, вы можете обратиться к разработчикам плагина или нанять кого-нибудь в Marketplace.