워드프레스 WPForms 문의 글을 케이보드에 자동으로 게시하기 소스 코드

Last Updated: 2023년 07월 16일 | | 댓글 남기기

WPForms는 워드프레스 인기 컨택트 폼 플러그인으로 현재 400만 개가 넘는 워드프레스에 설치되어 사용되고 있습니다. 방문자가 WPForms 문의 폼을 제출했을 때 케이보드에도 자동으로 게시되도록 하고 싶은 경우 아래에서 소개하는 코드를 사용할 수 있습니다.

워드프레스 WPForms 문의 글을 케이보드에 자동으로 게시하기

워드프레스 WPForms 문의 글을 케이보드에 자동으로 게시하기 소스 코드

단순히 보여주기 위한 목적으로 컨택트 폼 7에서 제출한 데이터를 프런트엔드에 표 형식으로 표시하고 싶은 경우에는 "워드프레스 Contact Form 7 데이터 표시하기"에서 소개하는 방법을 사용할 수 있습니다. 그러면 다음 영상에서와 같이 Kboard 게시판을 설치할 필요가 없이 Contact Form 7 데이터를 표 형식으로 표시할 수 있습니다.

WPForms 문의 글을 케이보드에 자동으로 등록하는 코드(WPForms와 케이보드 연동)

사용자가 WPForms 문의폼을 통해 데이터를 제출하면 데이터가 이메일로 전송됩니다. 유료 버전에서는 DB에도 데이터를 저장하여 관리자 페이지에서 확인할 수도 있습니다.

또한, WPForms 유료 버전을 사용하면 제출된 데이터를 케이보드 게시판에 게시글로 자동 발행되도록 하거나 사용자가 생성한 DB 테이블에 데이터를 저장할 수도 있습니다.

WPForms 유료 버전을 사용하는 경우 아래 코드를 사용하여 문의 데이터를 케이보드에 게시글로 자동 발행되도록 할 수 있습니다. WPForms Lite 버전에서는 오류가 발생할 것입니다.

// WPForms 데이터를 KBoard 게시글로 자동 게시하기
function wpf_dev_process_complete( $fields, $entry, $form_data, $entry_id ) {
      
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #5.
    if ( absint( $form_data['id'] ) !== 22749 ) {
        return;
    }
     
     global $wpdb;
    // Get the full entry object
    $entry = wpforms()->entry->get( $entry_id );
 
    // Fields are in JSON, so we decode to an array
    $entry_fields = json_decode( $entry->fields, true );
 
    // Check to see if user selected 'yes' for callback
 
$formtitle = $entry_fields[19]['value'];
 $yourname = $entry_fields[0]['value'];
 
$yourphone = $entry_fields[9]['value'];
$youraddress = $entry_fields[11]['value'];
$yourwebsite = $entry_fields[13]['value'];
$shippingmethod = $entry_fields[16]['value'];
$yourpwd = $entry_fields[17]['value'];

$current_date = date("YmdHis", current_time('timestamp'));
$thiscontent = $entry_fields[2]['value'];
	$main_content = '<table width="100%" border="1" cellspacing="0" cellpadding="6" BORDERCOLOR="#E8E8E8">
  <tr>
    <td width="23%">제목</td>
    <td width="77%">' . $formtitle . '</td>
  </tr>
  <tr>
    <td width="23%">이름</td>
    <td width="77%">' . $yourname . '</td>
  </tr>
 <tr>
    <td>전화번호</td>
    <td>' . $yourphone . '</td>
  </tr>
  		  <tr>
    <td>주소</td>
    <td>' . $youraddress . '</td>
  </tr>
  		  		  <tr>
    <td>웹사이트</td>
    <td>' . $yourwebsite . '</td>
  </tr>
    		  <tr>
    <td>방법</td>
    <td>' . $shippingmethod . '</td>
  </tr>
  		  <tr>
    <td>문의 내용</td>
    <td>' . $thiscontent . '</td>
  </tr>

</table>';
 
$table_name = $wpdb->prefix . "kboard_board_content";
$wpdb->insert( $table_name, array( 'board_id' => 4, 'member_display' => $yourname, 'password' => $yourpwd, 'title' => $formtitle, 'content' => $main_content, 'parent_uid' => 0, 'category1' => false, 'date' => $current_date, 'update' => $current_date, 'member_uid' => 0, 'comment' => 0, 'vote' => 0, 'like' => 0, 'unlike' => 0, 'secret' => true, 'view' => 0, 'thumbnail_file' => false, 'thumbnail_name' => false, 'category2' => false, 'search' => 1, 'notice' => false, 'status' => '') );

return;
 
}
add_action( 'wpforms_process_complete', 'wpf_dev_process_complete', 10, 4 );

위의 코드는 예시일 뿐이며 WPForms 폼 ID와 각 필드명과 케이보드 게시판 ID 등을 적절히 변경하여 응용하시기 바랍니다. 워드프레스를 조금 아시면 위의 코드를 쉽게 적용할 수 있을 것이므로 위의 코드에 대해서는 별도의 설명은 하지 않겠습니다.

위의 코드가 최신 버전에서 작동하는지 체크하지 않았지만 위의 코드에 사용된 훅(Hook)을 WPForms에서 변경하지 않으면 문제 없이 작동할 것입니다.

워드프레스 컨택트 폼 플러그인(Quform, Contact Form 7, WPForms, Gravity Forms 등)을 통해 제출한 데이터를 케이보드 게시판에 게시글로 등록하는 것과 관련하여 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다.

마치며

WPForms 데이터를 케이보드로 제출하는 방법을 살펴보았습니다. 위의 코드를 응용하여, DB 테이블을 직접 만들어서 사용자가 제출하는 데이터를 저장하는 것도 가능합니다.

wpDataTables 플러그인을 사용하면 워드프레스 DB 데이터를 프런트엔드에 표시할 수 있습니다("워드프레스 Quform의 제출 내용을 프런트엔드에 표시하는 방법").

참고


댓글 남기기

Leave a Comment