로그인 실패 상황

안녕하세요 :)

워드프레스를 이용해서 커머스 사이트를 제작중에 있습니다.

회원제 사이트로 회원이 되고 관리자가 승인을 해줘야 이용이 가능한 사이트입니다.

https://imgur.com/F0wjF7k

 

1. 로그인시 회원정보(아이디 패스워드)가 달라서 실패

2. 로그인시 비활성화 상태라서 실패

 

이 두가지를 모두 제어하고 싶은데

add_filter('wpmem_login_failed', 'my_wp_login_failed', 10, 1);
function my_wp_login_failed($str){
	echo "<script>alert(\"로그인 정보가 틀렸습니다. 실시간상담 혹은 비밀번호 찾기를 진행 해주세요.\"); history.go(-1)</script>";
	exit;
}

이렇게 진행하니 비활성화나 회원정보가 틀렸을때나 둘다 적용됩니다.

 

로그인시 회원정보(아이디 패스워드)가 달라서 실패 -> alert띄우고 이전페이지

로그인시 비활성화 상태라서 실패 -> 특정 페이지 이동

 

이렇게 진행하고 싶습니다.

감사합니다.

 

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

    wpmem_login_failed_args 필터를 활용하시면

    로그인 시 활성화 되지 않은 사용자가 로그인을 시도하거나

    아이디, 비밀번호 잘못 입력할 때의 상황에 따라 코드를 실행되게 하실 수 있습니다.

    올려주신 코드 대신 아래의 코드를 활용해보시겠어요?

    add_filter('wpmem_login_failed_args', 'wpmem_login_failed_args_20200928', 10, 1);
    function wpmem_login_failed_args_20200928($args){
    	global $wpmem;
    	
    	$user_login = isset($_POST['log'])?sanitize_user($_POST['log']):'';
    	$user_password = isset($_POST['pwd'])?$_POST['pwd']:'';
    	
    	$user = get_user_by('login', $user_login);
    	if(!$user){
    		$user = get_user_by('email', $user_login);
    	}
    	
    	if($user && wp_check_password($user_password, $user->data->user_pass, $user->ID)){
    		if(($wpmem->mod_reg == 1) && (get_user_meta($user->ID, 'active', true) != 1)){
    			// 사용자가 활성화 되지 않았을 때 실행됩니다.
    		}
    		
    	}
    	else{
    		// 유효하지 않은 아이디 또는 비밀번호 입력 시 실행됩니다.
    	}
    	
    	return $args;
    }

    고맙습니다.

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