Discourse への特定のグループの方々のサインアップを許可したいと考えています。希望する流れは以下の通りです:
- WordPress または Discourse のページでサインアップを行い、ユーザー名、メールアドレス、パスワード(必要に応じて自動作成も可能)の入力を求める
- ユーザーが Discourse に追加され、さらにグループにも追加される
Memberful を使わずにこれは可能でしょうか?
Discourse への特定のグループの方々のサインアップを許可したいと考えています。希望する流れは以下の通りです:
Memberful を使わずにこれは可能でしょうか?
この機能は、WordPress サイトを Discourse サイトのシングルサインオン(SSO)プロバイダーとして使用することで実現できます。WP Discourse プラグインには、この設定に使用できる「SSO プロバイダー」オプションがあります。
難しい点は、ユーザーを Discourse グループに追加することです。WP Discourse プラグインでこれを行うには、WordPress サイトにいくつかのコードを追加する必要があります。ユーザーをグループに追加するためのコード例は当フォーラムにありますので、ご紹介できますが、WordPress ユーザーをどの Discourse グループに追加すべきかを判断する方法が必要です。その一つの方法として、WordPress サイトにメンバーシッププラグインを追加し、WordPress のメンバーシップレベルに基づいてユーザーを Discourse グループに追加するというやり方があります。
カスタムコードを追加せずにユーザーがサインアップして Discourse グループに自動追加されるようにしたい場合は、Discourse Patreon プラグインを検討してください。Memberful も優れた選択肢です。
以下のようなコードで動作します。
if ( class_exists( '\WPDiscourse\Discourse\Discourse' ) ) {
add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
}
function wpdc_custom_sso_params( $params, $user ) {
$groups = get_group_list_for_current_user();
if ( strlen($groups) > 0 ) {
$params['add_groups'] = $groups;
}
return $params;
}
get_group_list_for_current_user 関数の実装は読者への課題として残しておきます。![]()
これで解決しない場合、かつ予算があるようでしたら、Marketplace チャンネルでお問い合わせいただくか、私までご連絡ください。