소셜 로그인시에도 이메일 인증 메일이 발송됩니다

안녕하세요, 코스모스팜 회원관리를 구입해서 잘 사용하고 있는데요,

일반가입 시 이메일 인증 가입을 사용하고 있는데, 소셜 로그인에는 동작하지 않는다고 알고 있습니다.

그런데 페이스북, 구글, 네이버, 카카오 소셜 로그인 시에도 이메일 인증 메일이 발송됩니다.

발송된 메일로 메일 인증하지 않아도 가입은 잘 완료됩니다만, 왜 인증 메일이 동작하는지 모르겠네요.

어떤 부분이 문제인지 말씀해주시면 정말 감사하겠습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    소셜 로그인으로 가입된 사용자에게는 이메일 인증 메일을 보내지 않는 코드를 추가해보시겠어요?

    FTP로 접속해서 /wp-content/plugins/cosmosfarm-members/cosmosfarm-members.php 파일에

    아래의 코드를 찾아서

    function cosmosfarm_members_send_verify_email($user, $verify_code=''){
    	if($user->ID && $user->user_email){
    		
    		if(!$verify_code) $verify_code = md5(uniqid());
    		$option = get_cosmosfarm_members_option();
    		
    		if($option->verify_email_title && $option->verify_email_content){
    			
    			$blogname = get_option('blogname');
    			$home_url = home_url();
    			$verify_email_url = home_url('?action=cosmosfarm_members_verify_email_confirm&verify_code='.$verify_code);
    			
    			$subject = str_replace('[blogname]', $blogname, $option->verify_email_title);
    			$subject = str_replace('[home_url]', sprintf('<a href="%s" target="_blank">%s</a>', $home_url, $home_url), $subject);
    			$subject = str_replace('[verify_email_url]', sprintf('<a href="%s" target="_blank">%s</a>', $verify_email_url, $verify_email_url), $subject);
    			
    			$message = str_replace('[blogname]', $blogname, $option->verify_email_content);
    			$message = str_replace('[home_url]', sprintf('<a href="%s" target="_blank">%s</a>', $home_url, $home_url), $message);
    			$message = str_replace('[verify_email_url]', sprintf('<a href="%s" target="_blank">%s</a>', $verify_email_url, $verify_email_url), $message);
    			
    			if($option->allow_email_login){
    				$subject = str_replace('[id_or_email]', $user->user_email, $subject);
    				$message = str_replace('[id_or_email]', $user->user_email, $message);
    			}
    			else{
    				$subject = str_replace('[id_or_email]', $user->display_name, $subject);
    				$message = str_replace('[id_or_email]', $user->display_name, $message);
    			}
    			
    			$verify_email = array(
    				'to' => $user->user_email,
    				'subject' => $subject,
    				'message' => $message,
    			);
    			$verify_email = apply_filters('cosmosfarm_members_send_verify_email', $verify_email, $user);
    			
    			$mail = new Cosmosfarm_Members_Mail();
    			$mail->send($verify_email);
    		}
    	}
    	return $verify_code;
    }

    아래의 코드로 교체해보세요.

    function cosmosfarm_members_send_verify_email($user, $verify_code=''){
    	$action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : '';
    	
    	if($user->ID && $user->user_email && !$action){
    		
    		if(!$verify_code) $verify_code = md5(uniqid());
    		$option = get_cosmosfarm_members_option();
    		
    		if($option->verify_email_title && $option->verify_email_content){
    			
    			$blogname = get_option('blogname');
    			$home_url = home_url();
    			$verify_email_url = home_url('?action=cosmosfarm_members_verify_email_confirm&verify_code='.$verify_code);
    			
    			$subject = str_replace('[blogname]', $blogname, $option->verify_email_title);
    			$subject = str_replace('[home_url]', sprintf('<a href="%s" target="_blank">%s</a>', $home_url, $home_url), $subject);
    			$subject = str_replace('[verify_email_url]', sprintf('<a href="%s" target="_blank">%s</a>', $verify_email_url, $verify_email_url), $subject);
    			
    			$message = str_replace('[blogname]', $blogname, $option->verify_email_content);
    			$message = str_replace('[home_url]', sprintf('<a href="%s" target="_blank">%s</a>', $home_url, $home_url), $message);
    			$message = str_replace('[verify_email_url]', sprintf('<a href="%s" target="_blank">%s</a>', $verify_email_url, $verify_email_url), $message);
    			
    			if($option->allow_email_login){
    				$subject = str_replace('[id_or_email]', $user->user_email, $subject);
    				$message = str_replace('[id_or_email]', $user->user_email, $message);
    			}
    			else{
    				$subject = str_replace('[id_or_email]', $user->display_name, $subject);
    				$message = str_replace('[id_or_email]', $user->display_name, $message);
    			}
    			
    			$verify_email = array(
    				'to' => $user->user_email,
    				'subject' => $subject,
    				'message' => $message,
    			);
    			$verify_email = apply_filters('cosmosfarm_members_send_verify_email', $verify_email, $user);
    			
    			$mail = new Cosmosfarm_Members_Mail();
    			$mail->send($verify_email);
    		}
    	}
    	return $verify_code;
    }

    해당 코드 변경 사항은 추후 업데이트에 반영하도록 하겠습니다.

    고맙습니다.

  • 말씀하신 대로 하니 잘 변경되었습니다. 감사합니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요