워드프레스 게시판 KBoard(케이보드) 사용중입니다.
contact form 으로 양식을 만들어서 정보를 입력받으려고 합니다.
그런데 그 내용 중에 이름, 아이디, 연락처, 이메일, 기타내용 등을 받습니다.
이 내용들 중에서 이름, 연락처, 이메일 등을 회원가입 시 입력한 정보로 양식 폼에 자동 입력을 시키고 싶은데요...
보니까 퍼스트 컨텐츠몰에는 그런 설정 기능이 있던데요...
방법을 좀 알려주세요... 부탁드립니다. 감사합니다.
안녕하세요~^^
최신 버전의 KBoard 플러그인 Contact Form 스킨을 사용 중이시라면
kboard_get_template_field_data 필터를 사용하시면
로그인 사용자의 정보로 게시글 기본값을 설정하실 수 있습니다.
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_filter('kboard_get_template_field_data', 'my_kboard_get_template_field_data', 10, 3);
function my_kboard_get_template_field_data($field, $content, $board){
$user_id = get_current_user_id();
$user = get_userdata($user_id);
if($board->id == '1' && is_user_logged_in()){
if(isset($field['default_value']) && isset($field['meta_key'])&&$field['meta_key'] && $field['meta_key'] == 'last_name'){
$field['default_value'] = $user->last_name;
}
if(isset($field['default_value']) && isset($field['meta_key'])&&$field['meta_key'] && $field['meta_key'] == 'phone1'){
$field['default_value'] = $user->phone1;
}
if(isset($field['default_value']) &&isset($field['meta_key'])&&$field['meta_key'] && $field['meta_key'] == 'user_email'){
$field['default_value'] = $user->user_email;
}
}
return $field;
}
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.
$field['meta_key'] == 'last_name', $field['meta_key'] == 'phone1', $field['meta_key'] == 'user_email' 부분은
KBoard 입력 필드의 메타키로 적용해보시겠어요?
워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 입력필드 설정 페이지에서 확인하실 수 있습니다.
$user->last_name, $user->last_name, $user->user_email 부분은 실제 회원가입 시
입력받는 필드 메타키로 적용해보세요.
WP-Members 플러그인을 사용 중이시라면
워드프레스 관리자 -> 설정 -> WP-Members -> 필드 페이지에서 각 필드 메타키를 확인하실 수 있습니다.
get_userdata에 원하는 정보가 없다면
get_user_meta 함수로 사용자 메타 정보를 가져올 수 있습니다.
아래 링크들을 참고해보시겠어요?
https://codex.wordpress.org/Function_Reference/get_userdata
https://codex.wordpress.org/Function_Reference/get_user_meta
고맙습니다.
안녕하세요.
실제 적용하신 코드는 어떻게 되시는지요?
아이디도 입력 필드 기본값을 설정하실 수 있습니다.
아래의 코드를 활용해보시겠어요?
$user->user_login;
고맙습니다.
아래처럼 수정해서 입력을 했더니... 페이지 오류 메시지가 나타나면서 홈페이지가 안열리는데요???
뭐가 문제인지 모르겠습니다. 참고로 default 스킨에 적용을 했습니다.
add_filter('kboard_get_template_field_data', 'my_kboard_get_template_field_data', 10, 3);
function my_kboard_get_template_field_data($field, $content, $board){
$user_id = get_current_user_id();
$user = get_userdata($user_id);
if($board->id == '129' && is_user_logged_in()){
if(isset($field['default_value']) && isset($field['meta_key'])&&$field['meta_key'] && $field['meta_key'] == 'app_name){
$field['default_value'] = $user->first_name;
}
if(isset($field['default_value']) && isset($field['meta_key'])&&$field['meta_key'] && $field['meta_key'] == 'cell_mem'){
$field['default_value'] = $user->billing_phone;
}
}
return $field;
}
알려주신 내용대로 잘 적용해서 사용을 하고 있습니다. 그런데요... 아이디의 경우 똑같이 했는데도 적용이 안되는 이유는 뭘까요?
아이디는 적용을 할 수 없는건가요? 아니면 아이디도 되는데 제가 뭘 잘 못하고 있는 걸까요??
코드를 잘못 수정하신 듯합니다.
올려주신 코드 중에서 'app_name 부분을
'app_name'로 교체해보시겠어요?
고맙습니다.
아래 볼드글씨부분이 에러라고 나옵니다.
Parse error: syntax error, unexpected 'default_value' (T_STRING) in /home/overid/wp-content/themes/Melos_Pro/functions.php on line 599 이렇게요...
$field['default_value'] = $user->first_name;
사용 중이신 KBoard 플러그인 버전이 입력 필드 설정 기능을 지원한다면
default 스킨도 이전에 안내해드린 코드가 적용됩니다.
고맙습니다.
default 스킨에서도 설정하는 방법이 동일한가요?? 혹시 다르다면
default 스킨에서도 자동입력이 되게 하려면 어떻게 하는지 방법 좀 부탁드립니다. 감사합니다.
감사드립니다.