add_action('cosmosfarm_members_user_social_register','comosfarm_members_user_social_register', 10, 2);
function comosfarm_members_user_social_register($user_id, $social_login){
"<script>console.log( 'PHP_Console: " . $social_login . "' );</script>";
if($social_login->channel == 'naver'){
if(isset($social_login->raw_data->email)){
wp_update_user(array('ID'=>$user_id, 'email'=>$social_login->raw_data->email));
}
if(isset($social_login->raw_data->name) && $social_login->raw_data->name){
wp_update_user(array('ID'=>$user_id, 'display_name'=>$social_login->raw_data->name));
}
if(isset($social_login->raw_data->gender)){
wp_update_user(array('ID'=>$user_id, 'user_sex'=>$social_login->raw_data->gender));
}
if(isset($social_login->raw_data->age)){
wp_update_user(array('ID'=>$user_id, 'age'=>$social_login->raw_data->age));
}
}
}
안녕하세요 네이버 소셜로그인을 코스모스팜과 연동중에 저희가 네이버에서 나이와 성별을 받아오려고 합니다.
위 예제에 나온대로 회원이름을 받아오는 걸 활용해서 나머지 필드도 받아오려고 하는데 관리자 페이지를 보면 필드가 안들어오는 것 같더라구요. 저렇게 작성하면 들어오던 회원이름도 이상하게 들어오고.. 예제를 더 만들어 주실수 있으신가요?
안녕하세요~^^
네이버 쪽 설정에서 추가적인 정보를 받아올 수 있게 설정하셨는지요?
소셜 로그인 시 사용자가 필수 제공 항목을 동의하지 않고 회원가입을 하게 되면
추가 정보를 받아오지 못할 수도 있습니다.
워드프레스 wp_update_user 함수는
워드프레스 기본 필드를 업데이트할 때 사용됩니다.
user_email, display_name 등을 업데이트할 때 적용할 수 있습니다.
올려주신 코드를 보니 wp_update_user 함수에 email로 적용되어 있습니다.
user_email로 교체해서 확인해보시겠어요?
기본 필드가 아닌 별도로 추가한 필드라면
wp_update_user 함수대신 update_user_meta 함수를 활용해보시겠어요?
update_user_meta 함수에 대한 자세한 내용은
아래의 링크를 참고해보세요.
https://developer.wordpress.org/reference/functions/update_user_meta/
고맙습니다.
감사합니다. 혹시 페이스북 예제도 있을까요?
페이스북 소셜 로그인 경우에는
아래의 코드를 활용해보시겠어요?
add_action('cosmosfarm_members_user_social_register','comosfarm_members_user_social_register_facebook', 10, 2);
function comosfarm_members_user_social_register_facebook($user_id, $social_login){
if($social_login->channel == 'facebook'){
if(isset($social_login->raw_data->name)){
wp_update_user(array('ID'=>$user_id, 'display_name'=>$social_login->raw_data->name));
}
}
}
페이스북 소셜 로그인 설정 방법은
아래의 링크를 참고해보세요.
추가로, 소셜 로그인 시 이메일은 별도로 추가하지 않으셔도
소셜 쪽에서 보내준 이메일로 등록이 됩니다.
이미 등록된 이메일이라면 소셜 쪽에서 받아온 메일이 아닌
임의의 문자로 변환해서 사용자를 등록하고 있습니다.
고맙습니다.
감사합니다 큰 도움이 되었습니다!!