Discourse のサインアップを WP ページに埋め込み、新規ユーザーを自動的に特定のグループに追加できますか?

Discourse への特定のグループの方々のサインアップを許可したいと考えています。希望する流れは以下の通りです:

  1. WordPress または Discourse のページでサインアップを行い、ユーザー名、メールアドレス、パスワード(必要に応じて自動作成も可能)の入力を求める
  2. ユーザーが Discourse に追加され、さらにグループにも追加される

Memberful を使わずにこれは可能でしょうか?

「いいね!」 1

この機能は、WordPress サイトを Discourse サイトのシングルサインオン(SSO)プロバイダーとして使用することで実現できます。WP Discourse プラグインには、この設定に使用できる「SSO プロバイダー」オプションがあります。

難しい点は、ユーザーを Discourse グループに追加することです。WP Discourse プラグインでこれを行うには、WordPress サイトにいくつかのコードを追加する必要があります。ユーザーをグループに追加するためのコード例は当フォーラムにありますので、ご紹介できますが、WordPress ユーザーをどの Discourse グループに追加すべきかを判断する方法が必要です。その一つの方法として、WordPress サイトにメンバーシッププラグインを追加し、WordPress のメンバーシップレベルに基づいてユーザーを Discourse グループに追加するというやり方があります。

カスタムコードを追加せずにユーザーがサインアップして Discourse グループに自動追加されるようにしたい場合は、Discourse Patreon プラグインを検討してください。Memberful も優れた選択肢です。

「いいね!」 1

以下のようなコードで動作します。

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 関数の実装は読者への課題として残しておきます。:wink:

これで解決しない場合、かつ予算があるようでしたら、Marketplace チャンネルでお問い合わせいただくか、私までご連絡ください。

「いいね!」 4