WP (SSO) + LMS + Discourse のアドバイス/ベストプラクティス?

こんにちは!

WP SSO の使用に関する古いスレッドを読み進めていますが、私たちのロードマップを共有することで何かアドバイスが得られるか気になっています。注意すべき点や避けるべきことはありますか?

私たちの技術スタック:

  • WordPress(基盤)
  • MemberPress(ユーザーアカウント管理)
  • LearnDash(LMS、コース作成)
  • Discourse(非公開の会員コミュニティ)

目指すオンボーディング体験:

  1. 訪問者が当社の WordPress サイト(コンテンツマーケティング)にアクセスし、有料会員へ登録。
    → 24 時間の無料トライアル(自動更新付き)を検討中。
  2. WP Discourse プラグイン(SSO)が Discourse アカウント(TL0)を生成。
  3. TL0 は大部分のカテゴリに対して読み取り専用アクセス権を取得。
  4. 自己紹介を投稿して 5 分経過すると、TL0 から TL1 へ昇格。
  5. 24 時間後に会員カードが請求され、会員の正式化と自動昇格(TL1)が実施。

WP SSO によってアカウントを管理し、有料会員かつ現在の会員のみがコミュニティと LMS のコンテンツにアクセスできるようにします。

もっとシンプルで良い方法があるかどうか気になっています。新規会員の摩擦を減らすことも重要ですが、長期的なスケーラビリティを確保することも同様に重要です。

ご助言をいただければ幸いです。よろしくお願いいたします。

オンボーディングリストによると、Discourse の信頼レベルシステムをオーバーライドしようとしているようです。より良いアプローチとしては、Discourse のグループメンバーシップを使用して、サイトコンテンツへのアクセスを制御することをお勧めします。この仕組みの詳細については、Understanding groups and category permissions をご覧ください。

WP Discourse プラグインには、ユーザーをグループに追加または削除するためのいくつかの関数が用意されています。詳細については、Manage group membership in Discourse with WP Discourse SSO のトピックを参照してください。このトピックでは PaidMembershipsPro プラグインを例に挙げていますが、同じ考え方は MemberPress でも適用可能です。

また、以下のトピックも参考になるかもしれません:https://meta.discourse.org/t/how-to-prevent-some-wp-users-from-being-able-to-login-to-discourse/93234。

ありがとう、サイモン。まず、または次にそれらのトピックを読むようにします。感謝しています。

そのスレッドは非常に参考になりました。WP Discourse をインストールして Discourse と接続しました。オンボーディング体験について、さらに良いアイデアが見つかるかもしれません。@simon さん、ありがとうございます!

ただし、SSO に関する決定はまだ保留にしています。詳しく読むほどに頭が混乱し、めまいがしてしまいます。この点について、もう少しアドバイスをいただけないでしょうか?

前提条件:WordPress & MemberPress + Discourse + LearnDash… そして、ブログ記事以外はすべて有料化したい…

Discourse を SSO クライアントとする場合、WordPress 内で MemberPress を使ってアカウントと LearnDash コースへのアクセスを管理することになります。これは当初から採用していたアプローチなので、実装やスケーラビリティのベストプラクティスという観点からは疑問が残るものの、本質的には理にかなっています。

Discourse を SSO プロバイダーとする場合、Discourse 側で有料ゲート機能の導入と実装が必要になります(正直なところ、現時点で見た限りでは、どれも信頼に足るものはありません)。もし WordPress 側で MemberPress を不要にできるなら、切り替えを検討する価値があるかもしれませんが、WordPress 上の同期ユーザーが LMS コンテンツに特別価格でアクセスし、一般ユーザーには通常価格が表示されるという要件をどう実現するかは不明です。

これは理解いただけますか?明確に伝えようとしたつもりですが、少し混乱してしまっています。

Jay さんにメールを一本送れば済む話のようにも思えますが、開発にかけるお金は、スタートアップの他の計画に使える資金が減ることを意味します。(ますます Jay さんに任せたほうが良さそうな気もします。) :wink:

ありがとうございました。

このスタック/フロントに関する興味深い進展です。@simon、あなたの考えをお聞かせください。

  • MemberPress は会員管理と決済処理を担当します。比較的簡単です。
  • MemberPress は、*ローカル(WordPress コンテンツ)*へのアクセス管理を目的として設計されています。
  • MemberPress には、SSO を通じて Discourse へのアクセスを制限する権限はありません。

私が発見したことは、クレジットカードの決済が失敗すると、会員資格は停止されるものの、WordPress へのログインは可能であるため、SSO を通じて Discourse へのアクセス権が維持されてしまう点です。

SSO プラグインが Discourse へのログインを許可する前に、MemberPress から会員ステータスを参照するよう実装するのは、どれほど大変でしょうか?

現在の統合方法はコスト効果が高く、比較的簡単だと感じています。もし SSO プラグインがこの処理を担当すれば、当面は問題なく運用できるでしょう。しかし、この道筋は大掛かりなカスタム開発へとつながる可能性もあります。

私の意見では、できるだけ標準的な Discourse の状態に近い形で運用できる方が望ましいです。

アドバイスありがとうございます。すみません、Simon の時間を奪ってしまいました。:slight_smile:

MemberPress が WordPress で保護されたコンテンツへのアクセスを許可するユーザーをどのように判定しているかを確認できれば、同じデータを使用して Discourse への SSO ログインを制限することも可能です。そのためには、このトピックの 2 番目の投稿にある 2 つの関数に条件分岐を追加する必要があります:一部の WP ユーザーが Discourse にログインできないようにする方法。条件分岐は、ユーザーのアカウントが停止されている場合に true を返すように設定します。

実現したいことは可能ですが、条件分岐に何を記述すべきかを確認するために、WordPress 開発者のサポートが必要になるかもしれません。

いつもありがとう、サイモン。

正直なところ、あのコードをレビューして頭が少し痛くなってきましたが、やり遂げます。:slight_smile:

Marketplace カテゴリにトピックを作成すれば、このサイトの誰かがお手伝いできるかもしれません。あなたが実現しようとしていることと似た、以前のマーケットプレイスに関するトピックを見つけました:https://meta.discourse.org/t/hiring-integrate-our-discourse-with-memberpress-for-membership-site/104033。

アドバイスありがとうございます、サイモン。確認してみます!