Utilities 文件中有一个用于此的辅助函数:
DiscourseUtilities::sync_sso_record( $sso_params );
昨天我发布了一个如何使用它的示例:I cannot add user to the discouse forum from a wordpress website when user added in a membership - #10 by simon sso_params 参数创建数组。该数组必须包含 external_id 字段。它设置为用户的 WordPress ID:
$sso_params = array(
'external_id' => $user_id,
);
您可以在此处包含此列表中的任何字段:discourse/lib/discourse_connect_base.rb at 8f52fd1051e20fdff41321c5cff99fda05af86c1 · discourse/discourse · GitHub ACCESSORS 列表正下方显示的 BOOLS 数组。它指示哪些可用选项是 booleans(true/false)。从 WordPress 发出请求时,任何布尔字段都必须设置为字符串 'true' 或 'false',而不是 PHP 的 true 或 false 值。
要更新头像,请在 $sso_params 数组中设置 avatar_url 字段,并将 avatar_force_update 字段设置为 'true'。
有一个 bio 字段可用于设置简介。
WP Discourse 插件已设置 bio 和 avatar_url 字段。其 SSO 设置中还有一个“强制头像更新”选项。问题可能是这些设置仅在用户通过 WordPress 网站登录 Discourse 时才更新。sync_sso_record 函数会立即更新字段,无需用户登录 Discourse。
另外,如果您发现用户的简介未在 Discourse 上设置,可能是因为它们未在插件期望的 WordPress 网站上设置:wp-discourse/lib/plugin-utilities.php at 99325e15190f3a705284dbf582f1c4b2c0b21492 · discourse/wp-discourse · GitHub Woocommerce 为简介使用不同的字段,您可以访问该字段并在调用 sync_sso_record 时使用它。