我已经设置好并且可以正常工作了,所以如果有人在我的 WordPress 网站上更改了他们的头像,然后退出论坛并重新登录,他们的头像就会在 Discourse 上更新。
但用户不知道需要退出,这很麻烦,所以我想自己触发它。我有一个在有人更新头像时触发的钩子。我可以在其中添加什么来直接将新头像发送到 Discourse?
我已经设置好并且可以正常工作了,所以如果有人在我的 WordPress 网站上更改了他们的头像,然后退出论坛并重新登录,他们的头像就会在 Discourse 上更新。
但用户不知道需要退出,这很麻烦,所以我想自己触发它。我有一个在有人更新头像时触发的钩子。我可以在其中添加什么来直接将新头像发送到 Discourse?
嘿 @Shauny。您正在使用哪个头像插件来管理头像,以及您是如何设置的?
我正在使用 Ultimate Member 来处理头像,我已经找到了用户上传头像后触发的正确钩子,现在需要将其发送到 Discourse。
这是该操作:
add_action("um_after_upload_db_meta_profile_photo","um_custom_after_upload_profile_photo", 10, 1 );
function um_custom_after_upload_profile_photo( $user_id ){
// 做一些事情
}
好的,所以您想做以下事情
use WPDiscourse\\Utilities\\Utilities as DiscourseUtilities;
add_action( "um_after_upload_db_meta_profile_photo", "um_custom_after_upload_profile_photo", 10, 1 );
function um_custom_after_upload_profile_photo( $user_id ){
$avatar_url = // Ultimate Member avatar URL
$params = array(
'external_id' => $user_id,
'avatar_url' => $avatar_url,
'avatar_force_update' => 'true'
)
DiscourseUtilities::sync_sso_record( $params, $user_id );
}
您需要找出 WordPress 上头像的 URL(也许可以在 Ultimate Member 文档中找到),并将其设置为变量 $avatar_url。
我不得不在 params 中添加
'external_id' => $user_id,
但除此之外,它就能正常工作了。谢谢!
(不过我现在遇到的问题是,我收到的 hook 在文件移动之前触发,所以它获取的是旧的头像……但这不怪你
)
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.