Импорт существующих пользователей WordPress в Discourse

Всем привет,

Возможно, я что-то упускаю, но как мне реализовать следующее?

Существующий сайт на WordPress с сотнями зарегистрированных участников.
Новая самодостаточная установка Discourse, использующая WordPress в качестве провайдера SSO.

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

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

Сейчас они привыкли к системе досок объявлений Google Groups, где они могут общаться, отправляя сообщения исключительно по электронной почте. Поэтому они не смогут самостоятельно настроить учётные записи в новом размещённом Discourse.

Буду очень признателен за любые идеи.

Вы пытаетесь мигрировать пользователей в Discourse или в Discord?

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

@simon Извините за беспокойство в Discourse.

У меня включена эта опция, но я не хочу, чтобы пользователи были обязаны входить в систему для создания их учётных записей в Discourse.
Из-за низкой технической грамотности пользователей мне необходимо массово импортировать их в Discourse без какого-либо участия с их стороны.

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

Есть несколько способов подойти к этому. Если вы готовы заняться программированием, плагин WP Discourse предоставляет ряд статических функций для сайтов, использующих WordPress в качестве провайдера SSO для Discourse. Эти функции находятся в этом файле: https://github.com/discourse/wp-discourse/blob/master/lib/utilities.php.

Чтобы использовать их, вам нужно перебрать всех пользователей WordPress и для каждого вызвать:

$sso_params = \WPDiscourse\Utilities\Utilities::get_sso_params( $user );

\WPDiscourse\Utilities\Utilities::sync_sso_record( $sso_params );

Параметр $user в первой строке должен быть объектом пользователя WordPress.

Вам необходимо учитывать ограничения скорости (rate limiting) со стороны Discourse. Рекомендуется ограничивать запросы примерно до одного запроса в секунду. При успешном вызове sync_sso_record будет возвращён пользователь Discourse.

Отлично, спасибо. А что, если я не очень уверенно чувствую себя в программировании?

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

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

Спасибо, @simon.
Я опубликовал в Marketplace.

Спасибо за вашу помощь.

В зависимости от вашей ситуации, самым простым решением будет не использовать SSO для входа пользователей в Discourse. Вместо этого вы можете экспортировать список пользователей из WordPress, извлечь их адреса электронной почты в CSV-файл и использовать функцию массовой рассылки приглашений в Discourse bulk invite functionality, чтобы пригласить их на ваш форум. Вы можете настроить шаблон письма с приглашением, чтобы пользователи знали, что им нужно перейти по ссылке в письме и согласиться присоединиться к сообществу. После этого они смогут взаимодействовать с форумом через электронную почту.

Звучит так, что вам следует импортировать существующие данные. Можете ли вы получить файлы mbox с этим списком?