WP (SSO) + LMS + Discourse Advice/Best Practices?

Hi!

I’m still reading through old threads on using WP SSO, but I was curious if sharing our roadmap might surface any advice. Are there things we should look out for? Things we should avoid?

Our Stack:

  • WordPress (foundation)
  • MemberPress (manages user accounts)
  • LearnDash (LMS, course creation)
  • Discourse (private, member community)

Our Desired Onboarding Experience:

  1. Visitor arrives on our WP site (content marketing) & converts to paid member.
    – We’re thinking about a 24-hour free trial (w/ auto-conversion).
  2. WP Discourse plugin (SSO) generates Discourse account (TL0).
  3. TL0 gets read-only access to the bulk of the categories.
  4. TL0-1 promotion requires 5 minutes posting an introduction.
  5. After 24hrs, member’s card is charged, membership is official, auto-promoted to TL1.

WP SSO would manage accounts so that only paid/current members have access to both community and LMS content.

I’m curious if there’s either a simpler or better way to do this. Reducing new member friction is important, but so is ensuring longterm scalability, ya know?

Appreciate any insights. Thank you.

From your onboarding list, it looks like you are hoping to override the Discourse trust level system. I think a better approach would be to use Discourse group membership to control access to your site’s content. For details about how this works, see Understanding groups and category permissions.

The WP Discourse plugin has a couple of functions that you can use to add and remove users from groups. Details are in this topic: Manage group membership in Discourse with WP Discourse SSO. That topic uses the PaidMembershipsPro plugin as an example, but the same idea should work with MemberPress.

Another topic that may have useful information is How to prevent some WP users from being able to login to Discourse.

Thank you, Simon. I’ll be sure to read those topics first/next. Appreciate it.

Those threads were helpful. I’ve got WP Discourse installed and connected to Discourse. I might even have some new (better) ideas for our onboarding experience. Thank you, @simon!

I stopped short of making any SSO decisions, though. Afraid the more I read about these, the more my brain goes in circles and I get dizzy. Could I trouble you for a bit more advice on this front?

Given: WordPress & MemberPress + Discourse + LearnDash… and wanting to pay gate everything that isn’t a blog post…

If Discourse is SSO CLIENT, we’d use MemberPress to manage accounts in WordPress and access to LearnDash courses. This was how we approached things from the start, so it inherently makes sense, if not from a place of implementation/scalability best practices.

If Discourse is SSO PROVIDER, we’d need to source and implement a paygate on the Discourse side (none of which I’ve seen so far instill much confidence, to be honest). If we could dump MemberPress on the WP side, it might be worth the switch, but I’m not sure how this would work with wanting synced users in WP accessing LMS content at special, member-prices, while the general public was presented full retail.

Does this make sense? Tried to make this clear, but I’m getting a bit turned around.

I feel like one email to Jay would handle this, but every dollar spent on dev is a dollar we don’t have for the rest of our startup plans. (Feels more and more like we should defer to Jay.) :wink:

Thanks.

이 스택/프론트에서 흥미로운 발전이 있었습니다. @simon 님, 어떻게 생각하시는지 궁금합니다.

  • MemberPress는 멤버십 및 결제 처리를 담당합니다. 이 부분은 비교적 간단합니다.
  • MemberPress는 로컬 WordPress 콘텐츠에 대한 접근을 관리하도록 설계되었습니다.
  • MemberPress는 SSO를 통해 Discourse 접근을 제한할 권한이 없습니다.

제가 발견한 바로는, 누군가의 신용카드가 거절되면 해당 사용자의 멤버십은 정지되지만, WordPress에 로그인할 수 있으므로 SSO를 통한 Discourse 접근 권한은 유지됩니다.

SSO 플러그인이 누군가가 Discourse에 로그인하도록 허용하기 전에 멤버십 상태(MemberPress에서 가져옴)를 고려하도록 하는 것이 얼마나 큰 문제가 될까요?

현재까지 우리가 통합한 방식은 비용 대비 효율적이고 충분히 간단하여, SSO 플러그인이 이 부분을 처리한다면 당분간 문제가 없을 것 같다는 느낌을 받습니다. 하지만 동시에 이 경로가 대규모 커스텀 개발 작업으로 이어질 수도 있다는 느낌도 듭니다.

개인적 의견으로는, 가능한 한 Discourse의 기본(box-stock) 상태에 가깝게 유지할수록 우리에게 더 유리할 것입니다.

다시 한번 조언해 주셔서 감사합니다. Simon 님, 방해해서 죄송합니다. :slight_smile:

MemberPress가 WordPress에서 보호된 콘텐츠에 접근할 수 있는 사용자를 어떻게 결정하는지 알아낼 수 있다면, 동일한 데이터를 사용하여 Discourse의 SSO 로그인을 제한할 수 있습니다. 이를 수행하려면 이 주제의 두 번째 게시물인 일부 WP 사용자가 Discourse에 로그인하지 못하도록 하는 방법에 있는 두 함수에 조건문을 추가해야 합니다. 해당 조건문은 사용자 계정이 정지된 경우 true를 반환해야 합니다.

원하시는 것은 구현 가능하지만, 제가 링크한 두 함수의 조건문에 무엇을 넣어야 하는지 파악하기 위해 WordPress 개발자의 도움이 필요할 수 있습니다.

항상 감사합니다, 시몬.

솔직히 그 코드를 검토하다 보니 머리가 좀 아플 정도였지만, 끝까지 해내겠습니다. :slight_smile:

Marketplace 카테고리에 주제를 생성하면 이 사이트에서 도움을 줄 수 있는 사람이 있을지도 모릅니다. 당신이 이루고자 하는 것과 비슷한 내용을 다루는 오래된 마켓플레이스 주제를 하나 발견했습니다: [HIRING] Integrate our Discourse with Memberpress for membership site.

조언해 줘서 고마워, 시몬. 확인해 볼게!