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:
Visitor arrives on our WP site (content marketing) & converts to paid member.
– We’re thinking about a 24-hour free trial (w/ auto-conversion).
TL0 gets read-only access to the bulk of the categories.
TL0-1 promotion requires 5 minutes posting an introduction.
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?
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 How to use category security settings to control access to content.
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: Managing Discourse group membership with WP Discourse. That topic uses the PaidMembershipsPro plugin as an example, but the same idea should work with MemberPress.
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.)
Desenvolvimento interessante nesta stack/front. @simon, curioso para saber o que você acha.
O MemberPress gerencia memberships e processamento de pagamentos. Fácil o suficiente.
O MemberPress foi projetado para gerenciar o acesso a conteúdo local do WordPress.
O MemberPress não tem autoridade para limitar o acesso ao Discourse via SSO.
O que descobri é que, quando o cartão de crédito de alguém é recusado, o membership dela é suspenso, mas, como ela ainda pode fazer login no WordPress, mantém o acesso ao Discourse via SSO.
Quanto trabalho seria fazer o plugin de SSO levar em consideração o status do membership (do MemberPress) antes de permitir que alguém faça login no Discourse?
Acho que a forma como integramos as coisas até agora é econômica e fácil o suficiente para que, se o plugin de SSO cuidasse disso, estaríamos tranquilos por um bom tempo. Mas também sinto que esse caminho pode levar a um trabalho de desenvolvimento personalizado complexo.
Quanto mais conseguirmos manter as coisas próximas ao Discourse padrão, melhor estaremos, na minha opinião.
Obrigado novamente pelas dicas. Desculpe interromper, Simon.
Se você puder descobrir como o MemberPress está determinando quais usuários devem ter acesso ao conteúdo protegido no WordPress, os mesmos dados podem ser usados para restringir os logins SSO no Discourse. Para fazer isso, você precisará adicionar uma declaração condicional às duas funções na segunda postagem deste tópico: Como impedir que alguns usuários do WP façam login no Discourse. A declaração condicional deve retornar true se a conta do usuário tiver sido suspensa.
O que você deseja realizar é viável, mas talvez precise de ajuda de um desenvolvedor do WordPress para descobrir o que colocar na declaração condicional nas duas funções que vinculei.