안녕하세요 default 게시판에 텍스트/숨김 필드를 추가하여
주민등록번호폼을 생성하였습니다. 주민등록입력시
앞자리 숫자는 보여지고 (생년월일 6자리) 뒷자리 입력시에는 마스킹처리 ******* 이렇게 나와야하는데용
관리자는 숫자를 모두 볼수 있어야하고 ...
방법이 있을가용??? ㅜ'
폼을 나란히 두개를 해야하는지요?
111111 - ******* 아래식으로용
어렵다면
그냥 전체 마스킹 처리하는 방법도 알려주시면 감사하겠습니다.
안녕하세요~^^
kboard_document_add_option_value_field_html 필터를 활용하시면
게시글 본문에 표시되는 입력 필드의 내용을 편집하실 수 있습니다.
주민번호 뒷자리를 마스킹 처리하시려면
아래의 코드를 활용해보시겠어요?
add_filter('kboard_document_add_option_value_field_html', 'kboard_document_add_option_value_field_html_20210107', 10, 4);
function kboard_document_add_option_value_field_html_20210107($html, $field, $content, $board){
$meta_key = isset($field['meta_key']) ? $field['meta_key'] : '';
$field_name = isset($field['field_name']) ? $field['field_name'] : $field['field_label'];
if($board->id == '1' && $meta_key == '메타키' && $content->option->{$meta_key}){ // 실제 게시판 id로 적용해주세요.
$value = preg_replace('/\s+/', '', $content->option->{$meta_key});
$strlen = mb_strlen($value, 'utf-8');
if($strlen == 14){
$value = substr($value, 0, 7) . '*******';
}
else if($strlen == 13){
$value = substr($value, 0, 6) . '*******';
}
$html = '<div class="kboard-document-add-option-value meta-key-'.$meta_key.'"><span class="option-name">'.$field_name.'</span> : '.$value.'</div><hr>';
}
return $html;
}
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.
$meta_key == '메타키' 부분은 실제 입력 필드의 메타키로 적용해보세요.
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.
안녕하세요 답변감사드립니다.
사용중인 테마 > functions.php 에 소스를 넣어봐도 아무 변화가 없어용..
글 입력시에 **** 표시가 나와야하는데 숫자가 그대로 노출되어 나옵니다.
add_filter('kboard_document_add_option_value_field_html', 'kboard_document_add_option_value_field_html_20210107', 10, 4);
function kboard_document_add_option_value_field_html_20210107($html, $field, $content, $board){
$meta_key = isset($field['meta_key']) ? $field['meta_key'] : '';
$field_name = isset($field['field_name']) ? $field['field_name'] : $field['field_label'];
if($board->id == '9' && $meta_key == 'jumin' && $content->option->{$meta_key}){ // 실제 게시판 id로 적용해주세요.
$value = preg_replace('/\s+/', '', $content->option->{$meta_key});
$strlen = mb_strlen($value, 'utf-8');
if($strlen == 14){
$value = substr($value, 0, 7) . '*******';
}
else if($strlen == 13){
$value = substr($value, 0, 6) . '*******';
}
$html = '<div class="kboard-document-add-option-value meta-key-'.$meta_key.'"><span class="option-name">'.$field_name.'</span> : '.$value.'</div><hr>';
}
return $html;
}
게시판9번 메타키를 jumin 으로 했습니다.
안녕하세요.
이전 댓글에 안내해드린 코드는
게시글 본문 페이지에 표시할 때 마스킹 처리되는 코드입니다.
글쓰기 시 별표 처리하는 건 jQuery keyup 이벤트를 활용해야 할 듯합니다.
게시글 작성 시 별표 처리한다면 실제 저장된 데이터도 별표 처리되기 때문에
별표 처리되지 않은 데이터도 필요하다면 input type이 hidden인 필드에
별표 처리 되지 않은 필드도 추가해주셔야 합니다.
jQuery keyup 이벤트에 대한 자세한 내용은
아래 링크를 참고해보세요.
고맙습니다.