在 WP 页面嵌入 Discourse 注册,并自动将新用户添加到特定群组?

我想让特定群体的人注册我的 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 个赞