Двусторонняя синхронизация между именем пользователя WP Discourse и именем пользователя Discourse?

Я перенес это сообщение в категорию Support > WordPress, так как категория Contribute > Feature предназначена для функций Discourse.

Поле «Discourse Username Editable» (Редактируемое имя пользователя Discourse) в плагине WordPress, возможно, названо неудачно. Описание этой настройки определенно нуждается в обновлении, чтобы стало ясно, для чего она предназначена. Когда настройка Discourse Username Editable включена, пользователи на сайте WordPress могут указать свое имя пользователя Discourse на странице профиля WordPress. Если эта настройка отключена, имя пользователя Discourse может установить только администратор сайта WordPress. Имя пользователя Discourse используется плагином исключительно для публикации сообщений с WordPress на Discourse.

При использовании DiscourseConnect между WordPress и Discourse имя пользователя Discourse изначально устанавливается на основе имени пользователя WordPress. Если на сайте Discourse включена настройка auth_overrides_username, имя пользователя на Discourse может быть изменено только из WordPress. Если настройка auth_overrides_username на Discourse не включена, пользователи могут изменить свое имя пользователя на Discourse, что приведет к рассинхронизации имен пользователей между двумя системами.

Что касается поля «Discourse Username», то в идеале это поле всегда должно заполняться в фоновом режиме на основе имени пользователя Discourse. Я давно не заглядывал в соответствующий код, но полагаю, что поле «Discourse Username» заполняется автоматически, если сайт WordPress используется в качестве поставщика SSO для Discourse и на вкладке параметров провайдера DiscourseConnect в WordPress включена опция «Create or Sync Discourse Users on Login» (Создавать или синхронизировать пользователей Discourse при входе). Поле «Discourse Username» также автоматически устанавливается, если Discourse используется в качестве поставщика SSO для WordPress (с помощью настройки клиента DiscourseConnect).

В идеале поле «Discourse Username» должно всегда автоматически заполняться, когда WordPress является поставщиком SSO для Discourse, независимо от того, включена ли опция «Create or Sync Discourse Users on Login» на Discourse. Я не думаю, что что-то можно сделать в случае, когда DiscourseConnect не используется между двумя сайтами, но, возможно, у @angus есть идеи по этому поводу.

По умолчанию WordPress не позволяет пользователям изменять свои имена, поэтому вопросов по этому поводу у нас было немного. Если вы хотите убедиться, что имена пользователей синхронизируются между WordPress и Discourse, убедитесь, что на Discourse включена настройка auth_overrides_username. Возможно, вам также стоит включить опцию «Create or Sync Discourse Users on Login» на WordPress. При включении этой опции пользователи будут обновляться на Discourse каждый раз при входе на ваш сайт WordPress. Если эта опция отключена, пользователи будут обновляться на Discourse только при выходе из Discourse, а затем повторном входе с использованием DiscourseConnect.