[질문] 회원가입 플러그인, 패스워드 변경 validation 기능 추가

안녕하세요.

코스모스팜 회원가입 플러그인을 사용중입니다.

강력한 비밀번호 설정하면

회원가입 화면에서는 패스워드 validator가 잘 동작합니다.

(영문, 숫자, 특수문자 포함 8자리 이상만 등록 가능하게)

그런데 패스워드 변경 페이지에서는 validation이 되지 않습니다.

WP-Members 문제라면 따로 찾아볼 텐데 코스모스팜 플러그인 이슈라서 여기에 질문드립니다.

혹시 방법 아시는 분 계시면 답변 부탁드립니다~

감사합니다

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 답변 감사합니다!

    :-)

  • 안녕하세요~^^

    FTP로 접속해서 /wp-content/plugins/cosmosfarm-members/skin/default/script.js 파일에

    1. 아래의 코드를 찾아서

    var password1 = jQuery('.cosmosfarm-members-form input[name="password"]').val();
    var password2 = jQuery('.cosmosfarm-members-form input[name="confirm_password"]').val();

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

    var password1;
    var password2;
    if(jQuery('.cosmosfarm-members-form input[name="password"]').length){
    	password1 = jQuery('.cosmosfarm-members-form input[name="password"]').val();
    	password2 = jQuery('.cosmosfarm-members-form input[name="confirm_password"]').val();
    }
    else if(jQuery('.cosmosfarm-members-form input[name="pass1"]').length){
    	password1 = jQuery('.cosmosfarm-members-form input[name="pass1"]').val();
    	password2 = jQuery('.cosmosfarm-members-form input[name="pass2"]').val();
    }

     

    2. 아래의 코드를 찾아서

    if(cosmosfarm_members_settings.use_strong_password){
    	jQuery('.cosmosfarm-members-form input[name="password"]').keyup(function(){
    		cosmosfarm_members_check_password_strength();
    	});
    	jQuery('.cosmosfarm-members-form input[name="confirm_password"]').keyup(function(){
    		cosmosfarm_members_check_password_strength();
    	});
    }

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

    if(cosmosfarm_members_settings.use_strong_password){
    	jQuery('.cosmosfarm-members-form input[name="password"]').keyup(function(){
    		cosmosfarm_members_check_password_strength();
    	});
    	jQuery('.cosmosfarm-members-form input[name="confirm_password"]').keyup(function(){
    		cosmosfarm_members_check_password_strength();
    	});
    	jQuery('.cosmosfarm-members-form input[name="pass1"]').keyup(function(){
    		cosmosfarm_members_check_password_strength();
    	});
    	jQuery('.cosmosfarm-members-form input[name="pass2"]').keyup(function(){
    		cosmosfarm_members_check_password_strength();
    	});
    }

     

    3. 아래의 코드를 찾아서

    jQuery('.cosmosfarm-members-form.signup-form form').submit(function(){
    	if(cosmosfarm_members_settings.use_strong_password){
    		var strength = cosmosfarm_members_check_password_strength();
    		switch(strength){
    			case 'mismatch':
    				alert(cosmosfarm_members_localize_strings.your_password_is_different);
    				break;
    			case 'short':
    				alert(cosmosfarm_members_localize_strings.password_must_consist_of_8_digits);
    				break;
    			case 'space':
    				alert(cosmosfarm_members_localize_strings.please_enter_your_password_without_spaces);
    				break;
    			case 'bad':
    				alert(cosmosfarm_members_localize_strings.password_must_consist_of_8_digits);
    				break;
    			default:
    				//alert('안전한 비밀번호입니다.');
    		}
    		if(strength != 'good'){
    			return false;
    		}
    	}
    	return true;
    });

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

    jQuery('.cosmosfarm-members-form.signup-form form').submit(cosmosfarm_members_form_submit);
    jQuery('.cosmosfarm-members-form.pwdchange-form form').submit(cosmosfarm_members_form_submit);

     

    4. 아래의 코드를 찾아서

    jQuery(document).ready(function(){

    찾은 코드위에 아래의 코드를 추가해보세요.

    function cosmosfarm_members_form_submit(){
    	if(cosmosfarm_members_settings.use_strong_password){
    		var strength = cosmosfarm_members_check_password_strength();
    		switch(strength){
    			case 'mismatch':
    				alert(cosmosfarm_members_localize_strings.your_password_is_different);
    				break;
    			case 'short':
    				alert(cosmosfarm_members_localize_strings.password_must_consist_of_8_digits);
    				break;
    			case 'space':
    				alert(cosmosfarm_members_localize_strings.please_enter_your_password_without_spaces);
    				break;
    			case 'bad':
    				alert(cosmosfarm_members_localize_strings.password_must_consist_of_8_digits);
    				break;
    			default:
    				//alert('안전한 비밀번호입니다.');
    		}
    		if(strength != 'good'){
    			return false;
    		}
    	}
    	return true;
    }

     

    /wp-content/plugins/cosmosfarm-members/skin/default/change-password-form.php 파일에

    5. 아래의 코드를 찾아서

    <div class="password-strength-meter-display"></div>
    			
    <label for="pass2"><?php echo __('Confirm new password', 'cosmosfarm-members')?></label>
    <div class="div_text">
    	<input name="pass2" type="password" id="pass2" class="password" required>
    </div>

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

    <label for="pass2"><?php echo __('Confirm new password', 'cosmosfarm-members')?></label>
    <div class="div_text">
    	<input name="pass2" type="password" id="pass2" class="password" required>
    	<?php if($option->use_strong_password):?>
    	<span class="password-strength-meter-display bad"><?php echo __('Password must consist of 8 digits, including English, numbers and special characters.', 'cosmosfarm-members')?></span>
    	<?php endif?>
    </div>

     

    추후 위의 내용들을 업데이트에 반영하겠습니다.

    고맙습니다.

  • 답변 감사합니다!

    그런데 런칭을 빨리해야해서요.

    다른 플러그인을 사용하거나

    functions.php에서 기능 추가 할 수 있는 방법은 없을까요?

    아니면 WP-Members 플러그인을 이용하는 방법이라도요 ㅎㅎ

    snippet 작성가능합니다.

    현재 가능한 방법이 있으면 가이드 부탁드려요~

    감사합니다.

  • 안녕하세요~^^

    비밀번호 변경 페이지 기능을 업데이트 하도록 하겠습니다.

    개발 건들이 많이 밀려있지만 최대한 빠르게 업데이트하도록 하겠습니다.

    고맙습니다.

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