1. 정확한 제품 또는 플러그인 이름
코스모스팜 회원관리
2. 상세 내용
작년 9~10월쯤 처음 워드프레스 시작할 때 문의글을 작성했었습니다.
https://www.cosmosfarm.com/threads/document/61479?page=3
소셜로그인 기능 중 기존 회원들이 자신의 SNS와 기존 아이디를 연결 및 연결 해제에 대한 기능인데요.
당시에 어찌어찌 공부해서 직접 코드를 수정하여 원하던 기능을 현재까지 잘 이용하고 있습니다.
다른 건 없고, 코스모스팜 회원관리 플러그인이 더 완벽해지길 바라는 마음에 공유 글을 작성해봅니다. 혹시라도 문제가 될 시 삭제하겠습니다.
수정한 코드 경로: cosmosfarm-members/class/Cosmosfarm_Members_Controller.class.php 2438번째 줄부터 2503번째 줄까지(social_login_callback() 함수)
코드 대조
아래는 연동 해제 버튼 숏코드의 함수입니다.
//소셜로그인 연동해제 버튼 숏코드
function delete_user_meta_shortcode()
{
$user_id = get_current_user_id();
$cosmosfarm_members_social_id = get_user_meta($user_id, 'cosmosfarm_members_social_id', true);
$cosmosfarm_members_social_channel = get_user_meta($user_id, 'cosmosfarm_members_social_channel', true);
$social_login_first_update = get_user_meta($user_id, 'social_login_first_update', true);
if ($cosmosfarm_members_social_id || $cosmosfarm_members_social_channel || $social_login_first_update) {
?>
<form action="" method="post">
<input type="hidden" name="delete_user_meta" value="1">
<input type="submit" value="소셜 로그인 연동 해제">
</form>
<?php
if (isset($_POST['delete_user_meta'])) {
delete_user_meta($user_id, 'cosmosfarm_members_social_id');
delete_user_meta($user_id, 'cosmosfarm_members_social_channel');
delete_user_meta($user_id, 'social_login_first_update');
delete_user_meta($user_id, 'cosmosfarm_members_social_picture');
echo "<script>alert('소셜 로그인 연동이 해제되었습니다. 소셜로그인으로 회원가입하신 경우 비밀번호를 꼭 변경해주십시오.')</script>";
}
} else {
return '소셜 로그인을 클릭하여 현재 계정과 연동할 수 있습니다.';
}
}
add_shortcode('delete_user_meta', 'delete_user_meta_shortcode');
3. 확인 가능한 상세 페이지 주소
https://metamind.kr/register
https://metamind.kr/login
https://metamind.kr/mypage/profile1
4. 수정한 코드 내역 (있다면)
위에 설명
안녕하세요~^^
연구하신 코드를 공유 해주셔서 감사합니다.
남겨주신 코드를 살펴보고 내부적으로 검토후에
가능하다면 코스모스팜 회원관리에 플러그인에 추가해보도록 하겠습니다.
고맙습니다.