네이버 로그인 필드 가져오기

      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));
                }
            }
        }

안녕하세요 네이버 소셜로그인을 코스모스팜과 연동중에 저희가 네이버에서 나이와 성별을 받아오려고 합니다.

https://blog.cosmosfarm.com/archives/1014/%ec%9b%8c%eb%93%9c%ed%94%84%eb%a0%88%ec%8a%a4-%eb%84%a4%ec%9d%b4%eb%b2%84-%ec%86%8c%ec%85%9c-%eb%a1%9c%ea%b7%b8%ec%9d%b8-%ec%9d%b4%eb%a6%84-%ec%a0%95%eb%b3%b4-%ea%b0%80%ec%a0%b8%ec%98%a4%ea%b8%b0/

위 예제에 나온대로  회원이름을 받아오는 걸 활용해서 나머지 필드도 받아오려고 하는데 관리자 페이지를 보면 필드가 안들어오는 것 같더라구요. 저렇게 작성하면 들어오던 회원이름도 이상하게 들어오고.. 예제를 더 만들어 주실수 있으신가요?

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    네이버 쪽 설정에서 추가적인 정보를 받아올 수 있게 설정하셨는지요?

    소셜 로그인 시 사용자가 필수 제공 항목을 동의하지 않고 회원가입을 하게 되면

    추가 정보를 받아오지 못할 수도 있습니다.

     

    워드프레스 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));
    		}
    	}
    }

     

    페이스북 소셜 로그인 설정 방법은

    아래의 링크를 참고해보세요.

    페이스북 소셜 로그인 설정 방법

     

    추가로, 소셜 로그인 시 이메일은 별도로 추가하지 않으셔도

    소셜 쪽에서 보내준 이메일로 등록이 됩니다.

    이미 등록된 이메일이라면 소셜 쪽에서 받아온 메일이 아닌

    임의의 문자로 변환해서 사용자를 등록하고 있습니다.

    고맙습니다.

  • 감사합니다 큰 도움이 되었습니다!!

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기