안녕하세요?
커뮤니티 검색을 해서 테마 functions.php 파일에 아래 내용을 추가해서 사용중입니다.
회원가입시 닉네임 설정시 한글 5자, 영문 10자만 가능하도록 했는데요,
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['display_name']) ? $fields['display_name'] : '';
$length = mb_strlen($display_name, 'utf-8');
if($length < 2 || $length > 5){
echo "<script>alert('닉네임은 한글 5자, 영어 10자만 입력 가능합니다.'); history.go(-1);</script>";
exit;
}
}
제가 테스트 가입을 하려고 닉네임을 " power1234 , 파워1234 " 이렇게 했더니 경고창이 뜹니다.
위 닉네임이 한글5자와 영문 10자에 해당이 되는 건가요?
이 문제를 해결하려고 하면 어떻게 해야 되는지 궁금합니다.
그리고 추가로 위 소스의 불편한 점이 있는데요, 닉네임 양식에 입력을 하고 "중복확인"를 클릭하면 [사용가능합니다] 라는 창이 뜹니다.
그런데 최종적으로 회원가입 버튼을 클릭하면 [닉네임은 한글 5자, 영어 10자만 입력 가능합니다.] 이렇게 가입이 안되는데요,
애초에 중복확인시에 이 부분을 미리 체크하고 가능여부를 확인해 주는 방법이 있을까요?
고맙습니다.
안녕하세요~^^
길이 체크 시 한글을 2, 영어나 숫자를 1로 체크를 하고 싶으신 건지요?
올려주신 코드 중 아래의 코드를 찾아서
$length > 5
아래의 코드로 교체해보시겠어요?
$length > 10
아래의 코드를 찾아서
$length = mb_strlen($display_name, 'utf-8');
아래의 코드로 교체해보시겠어요?
$length = mb_strlen($display_name, 'euc-kr');
아래의 코드를 활용하시면
중복확인 시에도 길이 체크를 하실 수 있습니다.
add_filter('cosmosfarm_members_exists_check_result', 'cosmosfarm_members_exists_check_result_20210122', 10, 1);
function cosmosfarm_members_exists_check_result_20210122($result){
$meta_key = isset($result['meta_key']) ? sanitize_text_field($result['meta_key']) : '';
$meta_value = isset($result['meta_value']) ? sanitize_text_field($result['meta_value']) : '';
$length = mb_strlen($meta_value, 'euc-kr');
if($meta_key == 'display_name' && ($length < 2 || $length > 10)){
$result['message'] = '닉네임은 한글 5자, 영어 10자만 입력 가능합니다.';
}
return $result;
}
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.