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のアバターURL
$params = array(
'external_id' => $user_id,
'avatar_url' => $avatar_url,
'avatar_force_update' => 'true'
);
DiscourseUtilities::sync_sso_record( $params, $user_id );
}
$avatar_url 変数には、WordPress(おそらくUltimate Memberのドキュメントで見つかるでしょう)のアバターURLを設定する必要があります。
パラメータに以下を追加する必要がありました。
'external_id' => $user_id,
それ以外は動作しました。ありがとうございます!
(ただし、現在、フックがファイルの移動前にトリガーされてしまい、古いアバターを取得してしまうという問題が発生しています。しかし、それはあなたのせいではありません😅)
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.