안녕하세요, 회원가입 시 이름을 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 이벤트에 대한 자세한 내용은
아래의 링크를 참고해보세요.
고맙습니다.