워드프레스 Quform과 케이보드 게시판 연동 소스 코드

워드프레스에는 다양한 문의 폼 플러그인이 있습니다. 무료 플러그인으로는 Contact Form 7나 WPForms와 같은 플러그인이 있습니다. 워드프레스 사이트에서 방문자가 Quform 문의 양식을 제출했을 때 케이보드에도 자동으로 게시되도록 하고 싶은 경우 이 글에서 소개하는 Quform과 케이보드 게시판 연동 코드를 사용 할 수 있습니다.

워드프레스 Quform과 케이보드 게시판 연동 소스 코드

워드프레스 컨택트 폼 문의 양식 Quform

Quform은 현재까지 약 3만 개가 판매된 인기 유료 컨택트 폼 플러그인입니다. 이 블로그에는 초기부터 이 컨택트 폼 플러그인이 사용되고 있습니다. 기능이 복잡하지 않고 사이트 속도에도 큰 영향을 미치지 않는 것 같아 개인적으로는 만족하고 있습니다.

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

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

사용자가 Quform으로 제작된 문의폼을 통해 데이터를 제출하면 데이터가 메일로 전송되고 관리자 페이지에서도 확인이 가능합니다.

방문자가 Quform 문의 양식을 제출하면 데이터가 케이보드 게시판에 게시글로도 등록되도록 하고 싶은 경우 다음 코드를 사용할 수 있습니다.

/* quform과 kboard 연동 */
function my_quform_process(array $result, Quform_Form $form)
{
global $wpdb;
	$contact_sender = $form->getValue('quform_5_3'); // 이름
	$contact_email = $form->getValue('quform_5_5'); // 이메일
	$contact_tel = $form->getValue('quform_5_8'); // 전화번호
	$contact_subject = $form->getValue('quform_5_6');
	$contact_details = $form->getValue('quform_5_7');



			
$current_date = date("YmdHis", current_time('timestamp')); // 현재 날짜
$maincontent = '<br>담당자 이름: ' . $contact_sender . '<br>이메일: ' . $contact_email . '<br>담당자 전화번호: ' . $contact_tel . '<br>제목: ' . $contact_subject. '<br>문의내용: ' . $contact_details . '<br></p>'; // 케이보드 글 본문

$contact_title = $contact_sender . '님의 문의'; // 케이보드 글 제목

$table_name = $wpdb->prefix . "kboard_board_content";

$result = $wpdb->insert( $table_name, array( 'board_id' => 4, 'member_display' => $contact_sender, 'password' => $contact_tel, 'title' => $contact_title, 'content' => $maincontent, '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' => false) );


return $result;
}


add_filter('quform_post_process_5', 'my_quform_process', 10, 2);

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

Quform 문의 양식에서 제출된 데이터를 Kboard 게시판에 등록하도록 하는 데 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다.

마치며

이상으로 Quform 데이터를 케이보드로 제출하는 방법을 살펴보았습니다. 본문에 소개한 코드를 응용하여, DB 테이블을 직접 만들어서 사용자가 제출하는 데이터를 저장하는 것도 가능합니다.

워드프레스 DB 데이터를 프런트엔드에 표시하는 작업을 하는 경우 wpDataTables 플러그인을 사용하면 편리할 것입니다. 이 플러그인은 가격이 299달러로 제법 비싼 편이지만 DB 작업이 잦은 경우 유용하게 활용할 수 있습니다.

참고

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

10개 댓글

  1. 위의 만들어주신 코드는 어디에 넣으면 되는건가요..;;;;;; 별도의 설명은 없으시다고 하셨지만...여쭤봅니다.ㅜㅠ

  2. 안녕하세요, 해당 글을 보고 Quform에 작성한 글이 Kboard에 자동 업데이트 되는 부분 확인했습니다. 그런데 Quform도 3개이고 Kboard도 세개일 때 id나 숫자를 변경해서 function을 세개 복사해 옮겼더니 다시 되지 않더라구요... Quform과 Kboad가 각각 3개씩일 때에는 어떻게 수정해서 올려야하는지 궁금합니다ㅠㅠ 좀 급해서요...ㅠㅠ 부탁드립니다.

    3개 중 한 페이지는 아래의 코드로 수정하여 Kboard에 자동 업데이트 되는 것을 확인하였습니다.

    /* 가족오락관 */
    function my_quform_process(array $result, Quform_Form $form)
    {
    global $wpdb;
    $contact_id = $form->getValue('quform_4_76'); // 회원아이디
    $contact_category = $form->getValue('quform_4_16'); // 참가부문
    $contact_time = $form->getValue('quform_4_18'); // 시간선택
    $contact_name = $form->getValue('quform_4_23'); // 가족대표이름
    $contact_relationship = $form->getValue('quform_4_24'); // 관계
    $contact_birth = $form->getValue('quform_4_27'); // 생년월일
    $contact_phone = $form->getValue('quform_4_31'); // 휴대폰번호
    $contact_number = $form->getValue('quform_4_33'); // 참여인원
    $contact_companionfamily = $form->getValue('quform_4_42'); // 동반가족
    $contact_personalinformation = $form->getValue('quform_4_17'); // 개인정보동의
    $contact_password = $form->getValue('quform_4_77'); // 본인확인 비밀번호

    $current_date = date("YmdHis", current_time('timestamp')); // 현재 날짜
    $maincontent = '회원아이디 : ' . $contact_id . '참가부문 : ' . $contact_category . '시간선택 : ' . $contact_time . '가족대표이름: ' . $contact_name . '관계 : ' . $contact_relationship . '생년월일 : ' . $contact_birth . '휴대폰번호 : ' . $contact_phone . '참여인원 : ' . $contact_number . '동반가족: ' . $contact_companionfamily . '개인정보동의 : ' . $contact_personalinformation . ''; // 케이보드 글 본문

    $contact_title = $contact_id . '님의 가족오락관 접수'; // 케이보드 글 제목

    $table_name = $wpdb->prefix . "kboard_board_content";

    $result = $wpdb->insert( $table_name, array( 'board_id' => 2, 'member_display' => $contact_id, 'password' => $contact_password, 'title' => $contact_title, 'content' => $maincontent, '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' => false) );

    return $result;
    }

    add_filter('quform_post_process_4', 'my_quform_process', 10, 2);

    1. 안녕하세요, 비전테크님.

      Quform으로 제작한 문의 폼(양식)의 아이디를 바꾸어주시고 Kboard 게시판 아이디를 바꾸셔야 합니다. 그리고 개별 quform 필드 id도 변경하시고요.

      quform 아이디는 맨 하단의 quform_post_process_4에서 숫자 부분을 실제 Quform의 폼 양식 ID로 변경해주세요.
      그리고 KBoard 게시판 아이디는 board_id 부분의 숫자(위에서는 '2')를 적절히 변경해주세요.
      이외에 quform의 개별 필드 아이디를 확인하여 변경해주세요(예: quform_4_27 이 부분을 적절히 변경).

      잘 안 되시면 다시 질문을 올려주시기 바랍니다.

      참고로 위의 코드는 유료 서비스로 제공하면서 만든 코드를 공개한 것입니다. 도움이 되셨다면 후원을 통해 블로그 운영을 지원하실 수 있습니다.ㅎ

      추운 날씨에 감기 조심하세요.

      1. 정말 죄송하지만ㅠㅠ
        아래와같이 아이디랑 숫자를 다 변경 했는데 안되어서요...
        바쁘신줄은 알지만 확인 부탁드릴게요ㅠㅠ

        /* quform과 kboard 연동 */
        /* 가족백일장 */
        function my_quform_process(array $result, Quform_Form $form)
        {
        global $wpdb;
        $contact_id = $form->getValue('quform_1_35'); // 회원아이디
        $contact_target = $form->getValue('quform_1_14'); // 대상
        $contact_grade = $form->getValue('quform_1_15'); // 학년
        $contact_category = $form->getValue('quform_1_16'); // 참가부문
        $contact_contents = $form->getValue('quform_1_33'); // 작성글
        $contact_agree = $form->getValue('quform_1_17'); // 동의여부
        $contact_password = $form->getValue('quform_1_36'); // 본인확인비밀번호

        $current_date = date("YmdHis", current_time('timestamp')); // 현재 날짜
        $maincontent = '회원아이디 : ' . $contact_id . '대상 : ' . $contact_target . '학년 : ' . $contact_grade . '참가부문: ' . $contact_category . '작성글 : ' . $contact_contents . '동의여부 : ' . $contact_agree . '본인확인비밀번호 : ' . $contact_password . ''; // 케이보드 글 본문
        $contact_title = $contact_id . '님의 가족백일장 접수'; // 케이보드 글 제목
        $table_name = $wpdb->prefix . "kboard_board_content";
        $result = $wpdb->insert( $table_name, array( 'board_id' => 1, 'member_display' => $contact_id, 'password' => $contact_password, 'title' => $contact_title, 'content' => $maincontent, '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' => false) );

        return $result;
        }

        add_filter('quform_post_process_1', 'my_quform_process', 10, 2);

        /* 가족오락관 */
        function my_quform_process(array $result, Quform_Form $form)
        {
        global $wpdb;
        $contact_id = $form->getValue('quform_4_76'); // 회원아이디
        $contact_category = $form->getValue('quform_4_16'); // 참가부문
        $contact_time = $form->getValue('quform_4_18'); // 시간선택
        $contact_name = $form->getValue('quform_4_23'); // 가족대표이름
        $contact_relationship = $form->getValue('quform_4_24'); // 관계
        $contact_birth = $form->getValue('quform_4_27'); // 생년월일
        $contact_phone = $form->getValue('quform_4_31'); // 휴대폰번호
        $contact_number = $form->getValue('quform_4_33'); // 참여인원
        $contact_companionfamily = $form->getValue('quform_4_42'); // 동반가족
        $contact_personalinformation = $form->getValue('quform_4_17'); // 개인정보동의
        $contact_password = $form->getValue('quform_4_77'); // 본인확인 비밀번호

        $current_date = date("YmdHis", current_time('timestamp')); // 현재 날짜
        $maincontent = '회원아이디 : ' . $contact_id . '참가부문 : ' . $contact_category . '시간선택 : ' . $contact_time . '가족대표이름: ' . $contact_name . '관계 : ' . $contact_relationship . '생년월일 : ' . $contact_birth . '휴대폰번호 : ' . $contact_phone . '참여인원 : ' . $contact_number . '동반가족: ' . $contact_companionfamily . '개인정보동의 : ' . $contact_personalinformation . ''; // 케이보드 글 본문
        $contact_title = $contact_id . '님의 가족오락관 접수'; // 케이보드 글 제목
        $table_name = $wpdb->prefix . "kboard_board_content";
        $result = $wpdb->insert( $table_name, array( 'board_id' => 2, 'member_display' => $contact_id, 'password' => $contact_password, 'title' => $contact_title, 'content' => $maincontent, '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' => false) );

        return $result;
        }

        add_filter('quform_post_process_4', 'my_quform_process', 10, 2);

      2. 연동되어야 하는 케이보드 게시판 페이지 URL과 Quform 컨택트 폼 페이지 URL을 메뉴의 문의 페이지를 통해 보내주시겠어요?
        나중에 한 번 확인해볼게요.

      3. 오류가 나는 이유는 my_quform_process 함수 이름 때문인 것 같습니다.

        각 필터에 대하여 my_quform_process의 함수 이름을 바꾸어보세요. 두 개 항목씩 바꾸시면 될 것입니다. 함수명이 일치하지 않도록 해주세요.

댓글 남기기

* 이메일 정보는 공개되지 않습니다.