코스모스팜 회원가입 시 이름 글자수 제한

안녕하세요, 회원가입 시 이름을 5자로 글자수를 제한하고 싶은데요

아래 링크를 참고하여서 2가지 방법으로 시도를 해보았습니다

마지막에 답변달아주신 코드를  display_name을 first_name으로 바꿔서  functions.php 파일에 코드를 추가했는데 작동을 안하여 문의드립니다 ! 

참고한 링크 : https://www.cosmosfarm.com/threads/document/39004

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

    코스모스팜 회원관리 플러그인 관련해서는 워드프레스 카테고리에 올려주시길 부탁드립니다.

    해당 게시글을 KBoard -> 워드프레스 카테고리로 이동하겠습니다.

     

    해당 링크에 안내되어 있는 wpmem_pre_register_data 액션과

    wpmem_pre_update_data 액션을 활용해서 입력 필드의 길이를 체크하는 코드를

    저희 쪽 테스트 서버에서 확인해보니 정상적으로 동작하는 것을 확인했습니다.

     

    실제 추가한 코드는 어떻게 되시는지요?

    HTML 등 프로그램 코드를 올려야 할 경우 에디터의 코드 스니펫 삽입 기능을 사용해주세요.

     

    first_name 부분은 실제 WP-Members 플러그인 쪽에서

    메타키가 first_name인 필드가 있는지도 확인해보셔야 할 듯합니다.

    고맙습니다.

  • script.js 에는 아래와 같이 코드를 작성하였으며,

    var value = jQuery('input[name="first_name"]').val();
    	var check = true;
    	for(var i = 0; i < value.length; i++){
    		var chr = value.substr(i,1);
    		chr = escape(chr);
    		if(chr.charAt(1) == "u"){
    			chr = chr.substr(2, (chr.length - 1));
    			if((chr < "AC00") || (chr > "D7A3")){
    				check = false;
    			}
    		}
    		else{
    			check = false;
    		}
    	}
    	
    	if(check){
    		if(value.length > 5){
    			alert('5자이내로 작성해주세요.');
    			return false;
    		}
    	}

     

    2번째 코드는  아래와 같이 작성하였습니다

    코드를 두개 다 적용해서 그런걸까요?!

     제가 잘못 작성한 부분을 알려주시면 감사하겠습니다 !

     

    *메타키는 first_name으로 되어있는것을 확인했습니다 

    add_action('wpmem_pre_register_data', 'my_wpmem_pre_register_data', 10, 1);
    add_action('wpmem_post_update_data', 'my_wpmem_pre_register_data', 10, 1);
    function my_wpmem_pre_register_data($fields){
    	$display_name = isset($fields['first_name']) ? $fields['first_name'] : '';
    	$length = mb_strlen($display_name, 'utf-8');
    	
    	if($length > 5){
    		echo "<script>alert('5글자만 입력가능합니다.'); history.go(-1);</script>";
    		exit;
    	}
    }

     

  • 회원가입 버튼을 눌렀을 때 체크를 하시려면

    자바스크립트 코드는 별도로 추가하지 않으셔도 됩니다.

     

    wpmem_post_update_data 부분은 wpmem_pre_update_data로 교체해주세요.

    wpmem_pre_register_data 액션과 wpmem_pre_update_data 액션이 정상적으로 동작하는지 확인해보셔야 할 듯합니다.

    액션이 정상적으로 실행된다면

    $display_name 변수와 $length 변수에는 어떤 값이 들어가는지도 출력해서 확인해보시겠어요?

    고맙습니다.

  • 친절한 답변 감사합니다 :D

    혹시 회원가입 시 이름을 입력할 때, 5자 이상 넘어가면 입력 못하게 할 수 있는 방법이 있을까요?!

  • 회원가입 버튼을 누르기 전에 입력 필드에 값을 입력할 때

    5자 이상 넘어가지 않게 하시려면 자바스크립트 코드를 추가해주셔야 합니다.

    jQuery keyup 이벤트에 대해 알아보시겠어요?

     

    keyup 이벤트에 대한 자세한 내용은

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

    https://api.jquery.com/keyup/

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기