WP (SSO) + LMS + Discourse: советы и лучшие практики?

Привет!

Я всё ещё читаю старые темы об использовании WP SSO, но мне интересно, может ли раскрытие нашего плана развития дать какие-то советы. На что нам стоит обратить внимание? Чего следует избегать?

Наш стек:

  • WordPress (основа)
  • MemberPress (управление учётными записями пользователей)
  • LearnDash (LMS, создание курсов)
  • Discourse (закрытое сообщество для участников)

Желаемый опыт онбординга:

  1. Посетитель заходит на наш сайт WP (контент-маркетинг) и становится платным участником.
    – Мы рассматриваем вариант 24-часового бесплатного пробного периода (с автоматическим переходом).
  2. Плагин WP Discourse (SSO) создаёт учётную запись в Discourse (TL0).
  3. TL0 получает доступ только для чтения к большинству категорий.
  4. Повышение до TL1 требует публикации введения продолжительностью 5 минут.
  5. Через 24 часа с карты участника списывается оплата, членство подтверждается, и он автоматически повышается до TL1.

WP SSO будет управлять учётными записями так, чтобы доступ к сообществу и контенту LMS имели только платные/текущие участники.

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

Буду благодарен за любые insights. Спасибо.

Судя по вашему списку онбординга, вы планируете переопределить систему уровней доверия Discourse. Я считаю, что более подходящий подход — использовать членство в группах Discourse для контроля доступа к контенту вашего сайта. Подробную информацию о том, как это работает, см. по адресу: Understanding groups and category permissions.

Плагин WP Discourse включает несколько функций, которые позволяют добавлять и удалять пользователей из групп. Подробности описаны в этой теме: Manage group membership in Discourse with WP Discourse SSO. В этой теме в качестве примера используется плагин PaidMembershipsPro, но тот же принцип должен работать и с MemberPress.

Ещё одна тема, которая может содержать полезную информацию: How to prevent some WP users from being able to login to Discourse.

Спасибо, Саймон. Я обязательно сначала прочитаю эти темы. Ценю это.

Эти темы были очень полезны. Я установил и подключил WP Discourse к Discourse. У меня даже появились новые (более лучшие) идеи для нашего процесса онбординга. Спасибо, @simon!

Однако я пока не принял решения по поводу SSO. Чем больше я читаю об этом, тем сильнее у меня кружится голова. Не могли бы вы дать мне ещё немного советов по этому вопросу?

Исходные данные: WordPress + MemberPress + Discourse + LearnDash… и желание закрыть платным доступом всё, кроме публикаций блога…

Если Discourse выступает в роли SSO-клиента, мы будем использовать MemberPress для управления учётными записями в WordPress и доступа к курсам LearnDash. Именно так мы изначально подходили к вопросу, поэтому это кажется логичным, даже если не с точки зрения лучших практик реализации или масштабируемости.

Если же Discourse будет SSO-провайдером, нам потребуется найти и внедрить систему платного доступа на стороне Discourse (честно говоря, ни одно из имеющихся решений пока не внушает особого доверия). Если бы мы могли отказаться от MemberPress на стороне WordPress, возможно, такой переход стоил бы того, но я не уверен, как это будет работать в случае, когда синхронизированные пользователи в WordPress должны получать доступ к контенту LMS по специальным ценам для участников, в то время как широкой публике предлагается полная розничная цена.

Имеет ли это смысл? Я старался изложить всё максимально понятно, но сам немного запутался.

Кажется, что одно письмо Джейю решило бы эту проблему, но каждый доллар, потраченный на разработку, — это доллар, которого не будет у нас для реализации остальных планов по запуску стартапа. (Всё больше кажется, что нам стоит положиться на Джейя.) :wink:

Спасибо.

Интересное развитие событий в этом стеке/фронте. @simon, интересно, что ты думаешь.

  • MemberPress обрабатывает членство и платежные операции. Всё достаточно просто.
  • MemberPress предназначен для управления доступом к локальному контенту WordPress.
  • MemberPress не имеет полномочий ограничивать доступ к Discourse через SSO.

Я обнаружил, что когда кредитная карта кого-то отклоняется, его членство приостанавливается, но так как он всё ещё может войти в WordPress, он сохраняет доступ к Discourse через SSO.

Насколько сложно было бы настроить плагин SSO, чтобы он учитывал статус членства (из MemberPress) перед разрешением входа в Discourse?

Мне кажется, что на данный момент наша интеграция экономична и достаточно проста, и если бы плагин SSO решал эту задачу, мы были бы в отличной форме на обозримое будущее. Но я также чувствую, что этот путь может привести к масштабной кастомной разработке.

Чем ближе мы сможем оставаться к стандартной версии Discourse, тем лучше, на мой взгляд.

Спасибо ещё раз за совет. Извини за беспокойство, Саймон. :slight_smile:

Если вы выясните, как MemberPress определяет, какие пользователи должны иметь доступ к защищённому контенту в WordPress, то те же данные можно использовать для ограничения входа через SSO в Discourse. Для этого вам нужно добавить условное выражение в две функции, упомянутые во втором посте этой темы: Как предотвратить вход некоторых пользователей WP в Discourse. Условное выражение должно возвращать true, если учётная запись пользователя приостановлена.

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

Спасибо, как всегда, Саймон.

Признаюсь, от проверки этого кода у меня сейчас голова гудит, но я справлюсь. :slight_smile:

На этом сайте, возможно, найдется кто-то, кто сможет вам помочь, если вы создадите тему в нашей категории Marketplace. Я вижу старую тему на тему маркетплейса, которая похожа на то, что вы пытаетесь сделать: [HIRING] Integrate our Discourse with Memberpress for membership site.

Спасибо за совет, Саймон. Я проверю!