컨택트폼 필드 자동입력 관련 문의

워드프레스 게시판 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 스킨에서도 자동입력이 되게 하려면 어떻게 하는지 방법 좀 부탁드립니다. 감사합니다. 

  • 감사드립니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요