Автоматическая синхронизация аватара из Discourse в Wordpress

Я пытался искать, но находил темы о том, как сделать это наоборот, а не так, как нужно мне…

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

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

Как это можно реализовать?

Спасибо!

Не важно, я справился с этим сам, используя Webhooks!

Привет, Шон!

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

Удачи!
Джр

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

  1. Создайте вебхук Discourse, который будет отправлять запрос в PHP-файл вашего плагина или темы каждый раз, когда кто-то обновляет свой профиль.
  2. На PHP-странице получите полезную нагрузку (payload), которая включает идентификатор пользователя (User ID). Извлеките оттуда URL аватара и сохраните его как пользовательское мета-поле для этого пользователя в WordPress.
  3. Обновите код в WordPress, отвечающий за вывод аватара пользователя, добавив функцию, которая вместо этого возвращает значение из этого мета-поля.

Всё!

Я как раз думал, не могли бы вы поделиться использованными фрагментами кода? Мы могли бы добавить их сюда в документацию WP/SSO или в обучающие материалы сообщества? :slight_smile:

Конечно, как только у меня будет доступ к компьютеру :grinning_face: