クライアントには、ユーザーがログインしてDiscourseにアクセスするためのMemberpressが搭載されたWordPressインストールがあります。
Memberpressの有効なプランを持つユーザーにのみDiscourseへのアクセスを許可することは可能でしょうか?
ありがとうございます。
Per
クライアントには、ユーザーがログインしてDiscourseにアクセスするためのMemberpressが搭載されたWordPressインストールがあります。
Memberpressの有効なプランを持つユーザーにのみDiscourseへのアクセスを許可することは可能でしょうか?
ありがとうございます。
Per
Discourse へのログインを制限する方法の詳細については、このトピックへの私の最初の返信をご覧ください:https://meta.discourse.org/t/how-to-prevent-some-wp-users-from-being-able-to-login-to-discourse/93234。これは、WordPress サイトが Discourse の SSO プロバイダーとして機能しており、WP Discourse プラグインを使用していることを前提としています。
ありがとう、サイモン!素晴らしいですね! ![]()
これにより、ユーザーを Discourse に誘導する前にアクセスを確認できるようになりました。
ユーザーの有効なサブスクリプションがあるかを確認する良い方法をご存知でしょうか?
これが、ユーザーを Discourse に誘導するかどうかの条件になります。
ありがとうございます!!
もちろん方法はあると思いますが、WordPress でユーザーの Memberpress サブスクリプションレベルにアクセスする方法はわかりません。ただし、Support > WordPress カテゴリの投稿にその方法の例があるかもしれません。
はい、ありがとうございます ![]()
素敵な週末をお過ごしください!
同じことを目指している方がいれば、私はここで解決策を見つけました:
Simon:もう一つ質問があります。Discourse にログインしているユーザーは、ログアウトされるまでどのくらいの時間ログインしたままになるのでしょうか?それとも、「ログアウト」ボタンをクリックするまで、ユーザーは永久にログインしたままになるのでしょうか?
これは、Discourse の「maximum session age」(最大セッション有効期間)というサイト設定で制御されます。この設定のデフォルト値は 1440 時間です。非常に小さな値に設定しない限り、ユーザーをログアウトさせる信頼性の高い方法ではありません。なぜなら、これはユーザーの「最後の訪問」からログイン状態が維持される時間を設定するものだからです。また、「maximum session age」を非常に短い時間に設定すると、サイト利用者にとって不便を招く可能性があります。
メンバーシップの有効期限が切れた際に API を通じてユーザーを Discourse からログアウトさせるのが、最も良いアプローチだと考えられます。その方法のコード例は、こちらにあります:wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub API を呼び出してユーザーをログアウトさせる処理を実装するには、開発者のサポートが必要になるかもしれません。
logout_from_discourse() 関数を直接呼び出せばよいのでしょうか、それともそのコード全体をコピーする必要がありますか?
logout_from_discourse() 関数を呼び出すだけでは単純ではありませんが、WordPress のアクションフックを使用して、WordPress サイト上で特定のアクションが実行された際にその関数を呼び出すことは可能です。例えば、ユーザーの会員レベルが剥奪された場合などが挙げられます。Discourse コミュニティの誰かが、その動作を実現するために必要な構文についてお手伝いできるかもしれません。