将现有 WordPress 用户导入 Discourse

大家好,

也许我漏掉了什么,但我该如何实现以下目标?

现有的 WordPress 站点包含数百名已注册用户。
新的 Discourse 自托管安装,使用 WordPress 作为 SSO 提供商。

我需要将所有现有的 WordPress 用户导入到 Discourse 中,这样他们就不需要先登录 WordPress 站点就能接收 Discourse 的通知。

这些用户并不精通技术,要求他们先登录网站对他们来说太复杂了。

他们目前习惯于使用 Google Groups 公告板系统,可以通过电子邮件直接发布帖子进行交流。因此,他们不会可靠地在新的托管 Discourse 中自行注册。

任何建议都将不胜感激。

您是想将用户迁移到 Discourse 还是 Discord?

如果您使用 WordPress 作为 Discourse 的 SSO 提供商,并安装了 WP Discourse 插件,启用“登录时创建或同步 Discourse 用户”选项即可实现您的需求。当用户首次登录您的 WordPress 网站时,Discourse 用户将从 WordPress 用户创建。

@simon 抱歉,Discourse 的问题。

我启用了该选项,但我不希望用户必须登录才能在 Discourse 中创建账户。
由于用户的技术能力有限,我需要批量导入他们到 Discourse,而无需他们进行任何操作。
绝大多数用户实际上永远不会登录。然而,他们确实会通过邮件回复参与讨论。

有几种方法可以采用。如果您不介意进行一些编程工作,WP Discourse 插件为将 WordPress 用作 Discourse 的 SSO 提供程序的网站提供了一些静态函数。这些函数位于此文件中:https://github.com/discourse/wp-discourse/blob/master/lib/utilities.php。

要使用这些函数,您需要遍历所有 WordPress 用户,并为每个用户调用:

$sso_params = \WPDiscourse\Utilities\Utilities::get_sso_params( $user );

\WPDiscourse\Utilities\Utilities::sync_sso_record( $sso_params );

第一行中的 $user 参数应为 WordPress 用户对象。

您需要注意 Discourse 的速率限制。建议将请求频率限制为大约每秒一次。当 sync_sso_record 调用成功时,将返回一个 Discourse 用户。

太棒了,谢谢。如果我对编程不太自信怎么办?

我上面发布的内容可能是将现有用户导入 WordPress 的最简便方法。如果您有预算,可以在我们的 Marketplace 分类中创建一个主题,寻找专人为您完成这项工作。

如果您没有预算,可以恳请您的用户登录您的 WordPress 站点。如果您有许多用户永远不会登录 WordPress 或 Discourse,那么您可能需要重新考虑您的方案。

谢谢 @simon
我已在 Marketplace 中发布。

感谢您的协助。

根据您的具体情况,最简单的做法是不使用 SSO 将用户登录到 Discourse。您可以从 WordPress 导出用户列表,将他们的电子邮件地址提取到 CSV 文件中,然后使用 Discourse 的 批量邀请功能 邀请他们加入您的论坛。您可以自定义邀请邮件,告知用户需要点击邮件中的链接并同意加入社区。一旦他们完成这些操作,就可以通过电子邮件自由地参与互动。

听起来你应该做的是导入现有数据。你能获取该列表的 mbox 文件吗?