Нужна помощь: люди следят за темой, но не получают уведомлений по электронной почте

Всем привет,

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

Эта функция работает хорошо, когда клиент хотя бы раз входил в систему на экземпляре Discourse. Однако если пользователь «подписывается» на тему в Discourse, но не входил в систему на Discourse, он не получает никаких писем по этой теме.

У кого-нибудь есть идея, как решить эту проблему? =)

Заранее спасибо.

Краткий ответ: включите посещение Discourse в процесс онбординга клиентов каким-либо образом. Возможно, есть какая-то информация для новых клиентов, которую можно разместить на вашем Discourse и на которую они будут перенаправляться после регистрации на стороне WordPress?

Спасибо большое за ваш комментарий, @Ellibereth.

Правильно ли я понял, что зарегистрированный пользователь обязан посетить форум, прежде чем сможет получать какие-либо электронные письма с подтверждением?

Не могли бы вы отправить код функции, которая заставляет клиента просматривать пост?

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

Чтобы подтвердить это, зайдите на страницу пользователя в разделе «DiscourseConnect Single Sign On» для аккаунта, созданного недавно. Нажмите кнопку «Показать» для поля «Last Payload» и проверьте, установлен ли параметр require_activation в значение true.

Если это является причиной проблемы, возможно, существует способ обойти её.

Спасибо за ваш подробный ответ @simon — очень ценю.

Когда я проверяю require_activation, он установлен в ‘false’ — пожалуйста, посмотрите скриншот ниже.

На всякий случай, стоит также проверить, действительно ли пользователи Discourse создаются при первой регистрации на вашем сайте WordPress. Скорее всего, это обеспечивается включением опции «Create or Sync Discourse Users on Login» в плагине WP Discourse:

Пожалуйста, проверьте, включена ли эта опция, и действительно ли пользователи успешно создаются в Discourse при регистрации на вашем сайте WordPress.

Если это не решит проблему, я могу углубиться в её изучение. К сожалению, сейчас связь между моим локальным Discourse и сайтом WordPress не работает. Любые ответы от Discourse, которые получает сайт WordPress, возвращают ошибку: cURL error 61: Unrecognized content encoding type. libcurl understands deflate, gzip, br content encodings. Я почти уверен, что это связано с конфигурацией моего локального сервера. Я давно собирался разобраться с этим. Сегодня позже я посмотрю, что именно происходит.

Редактирование: Я нашёл временное решение для настройки связи между моими локальными сайтами WordPress и Discourse. При включённой опции «Create or Sync Discourse Users on Login» в WP Discourse я теперь могу зарегистрировать пользователя на сайте WordPress, автоматически создать для него учётную запись в Discourse и настроить пользователя на получение уведомлений по теме через API. Не совсем понятно, что может вызывать проблему на вашем сайте. Для справки приведу пример вызова API, который я использую. Параметр Api-Username в запросе устанавливается в имя пользователя Discourse того, кто хочет получать уведомления:

curl -X POST "http://localhost:4200/t/9969/notifications" -H "Api-Key: $api_key" -H "Api-Username: notifyme" -F "notification_level=3"

Спасибо всем за помощь в решении этой проблемы.

Нам удалось найти причину в некоторых проблемах с cron-задачами и отправленными письмами.