Заполнение discourse_username при отсутствии DiscourseConnect

Для этого уже существует своего рода решение. Discourse можно настроить как провайдера DiscourseConnect для WordPress (обратное от обычной конфигурации). Это легко настроить. При включении этой опции появляется дополнительная настройка, позволяющая синхронизировать учётные записи WordPress и Discourse на основе адреса электронной почты пользователя.

Более того, на странице профиля пользователя появляется ссылка:


(редактирование: можно ли добавить подпись к изображению без использования ИИ?)

Прямо сейчас я провожу тестирование: при нажатии на ссылку на странице профиля поле «Имя пользователя Discourse» не заполняется, хотя должно. Однако при нажатии на ссылку «Войти через Discourse», которую можно добавить на страницу входа, поле «Имя пользователя Discourse» автоматически обновляется.

Полагаю, суть синхронизации учётных записей заключается в безопасном обновлении поля «Имя пользователя Discourse», поэтому стоит разобраться, что именно происходит в данном случае. Также, похоже, существует проблема: учётные записи с «неподтверждённым» адресом электронной почты в WordPress могут синхронизироваться с Discourse. По умолчанию это, вероятно, не должно быть разрешено.

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

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