Shauny
(Shaun Robinson)
6월 26, 2024, 4:07오후
1
이 모든 것을 설정하고 작동하게 만들었습니다. 이제 제 WordPress 사이트에서 누군가가 아바타를 변경한 후 포럼에서 로그아웃하고 다시 로그인하면, Discourse의 아바타도 업데이트됩니다.
하지만 사람들은 로그아웃해야 한다는 사실을 모르고 있고, 이는 꽤 짜증나는 일이므로, 제가 직접 트리거를 작동시키고 싶습니다. 누군가가 아바타를 업데이트할 때 발동되는 훅(hook)이 있습니다. 이 훅에 무엇을 추가해야 아바타를 Discourse로 직접 전송할 수 있을까요?
angus
(Angus McLeod)
6월 27, 2024, 6:54오전
2
안녕하세요 @Shauny . 아바타를 관리하기 위해 어떤 아바타 플러그인을 사용하시나요? 그리고 이 부분은 어떻게 설정하셨나요?
Shauny
(Shaun Robinson)
6월 27, 2024, 7:49오전
3
아바타에는 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 ){
// do something
}
angus
(Angus McLeod)
6월 27, 2024, 8:20오전
4
좋아요, 다음을 수행하려는 것이죠
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 );
}
Wordpress에서 아바타의 URL을 찾아야 합니다(이를 Ultimate Member 문서에서 찾을 수 있을 것입니다) 그리고 해당 값을 $avatar_url 변수에 설정해야 합니다.
Shauny
(Shaun Robinson)
6월 27, 2024, 3:52오후
5
파라미터에 다음을 추가해야 했습니다.
'external_id' => $user_id,
그 외에는 잘 작동합니다. 감사합니다!
(다만, 지금 제가 받은 훅이 파일이 이동되기 이전에 실행되어서 오래된 아바타를 가져오는 문제가 생겼습니다… 하지만 그건 당신 탓이 아니에요 )