회원가입을 진행하면 일반 유저 권한으로 가입이 되는데
이때 자동으로 유저 메타를 추가하는 방법이 있을까요?
add_user_meta를 사용하는 건 알겠는데,
add_user_meta가 실행되기 전에 가입된 권한을 한번 확인하고 실행시키고 싶습니다.
https://www.cosmosfarm.com/threads/document/34162 여기에 달아주신 답변을 바탕으로
소스를 수정해서 사용해봤는데, 올려주신 소스로는 잘 실행되지만 권한을 확인하는 if문을 넣으면
정상적으로 작동하지 않아서요...
안녕하세요~^^
워드프레스 사이트에서 회원가입 후 코드를 추가하고 실행되게 하시려면
올려주신 링크처럼 user_register 액션을 활용하시면 가능합니다.
말씀하신 권한은 워드프레스 역할을 말씀하시는 건지요?
워드프레스 사용자 ID로 워드프레스 역할을 가져오는 방법은
아래의 링크를 참고해보시겠어요?
https://stackoverflow.com/questions/36720949/get-user-role-by-id-wordpress
워드프레스 역할과 권한에 대한 설명은
아래의 링크를 참고 부탁드립니다.
https://wordpress.org/support/article/roles-and-capabilities/
고맙습니다.
아래 내용이 기존 다른 답변에서 남겨주신 소스입니다.
add_action('user_register', 'my_user_register', 10, 1);
function my_user_register($user_id){
if($user_id){
add_user_meta($user_id, 'my_primary_key', uniqid(), true);
}
}
이 소스로 역할을 추가하고 싶어서 아래와 같이 수정했는데 동작하지 않습니다ㅠㅠ
add_action('user_register', 'my_user_register', 10, 1);
function my_user_register($user_id){
$user = get_userdata( $user_id );
$user_roles = $user->roles;
if ( in_array( 'subscriber', $user_roles, true ) ) {
if($user_id) {
add_user_meta($user_id, 'company_id', '777', true);
}
}
}
저희 쪽 테스트 서버에서 해당 코드를 확인해보니
정상적으로 동작하는 것을 확인했습니다.
추가한 user meta는 어떻게 확인하셨는지 알려주시겠어요?
고맙습니다.
DB에서 직접 확인 했습니다. user meta에 추가 되지 않더라구요...
user_register 액션이 동작하지 않는 건지
추가하신 조건문이 동작하지 않는 건지 확인해보셔야 할 듯합니다.
user_register 액션 내부에 exit; 코드를 활용하면
코드 실행을 중지시킬 수 있습니다.
자세한 내용은 아래의 링크를 참고해보세요.
고맙습니다.