MW WP Form 送信されたデータをカスタム投稿一覧に反映

こちらの記事が参考になります
https://www.sidethree.co.jp/blog/memo/201909.html

まずカスタム投稿を作成
function.phpに以下を記載

function create_post_type() {
  $datalist = [
    'title',
    'revisions'
  ];
  register_post_type( 'datalist',
    array(
      'label' => 'キャンペーンLP',
      'public' => true,
      'has_archive' => false,
      'menu_position' => 3, 
    )
  );
}
add_action( 'init', 'create_post_type' );

MW WP Formのお問い合わせデータがデータベースに登録後
そのコピーデータを新しくカスタム投稿に保存する

まず先にプラグインACFを使ってカスタム投稿の入力欄を作成していく

その後以下コードをfunction.phpに記載

function save_datalist_posts() {
  $new_post = array(
    'post_type'   => 'datalist',
    'post_status' => 'publish',
    'post_title'  => $_POST['namae'],
    'post_author' => 1
  );
  $post_id = wp_insert_post( $new_post, true );
  update_post_meta( $post_id, 'list_adpattern', $_POST['adpattern'] );
  update_post_meta( $post_id, 'list_namae', $_POST['namae'] );
  update_post_meta( $post_id, 'list_kana', $_POST['kana'] );
  update_post_meta( $post_id, 'list_Email', $_POST['Email'] );
  update_post_meta( $post_id, 'list_Tele', $_POST['Tele'] );
  update_post_meta( $post_id, 'list_month', $_POST['month'] );
  update_post_meta( $post_id, 'list_ContentOfInquiry', $_POST['ContentOfInquiry'] );
  }
  add_filter( 'mwform_before_send_admin_mail_mw-wp-form-4114', 'save_datalist_posts' );
  add_filter( 'mwform_before_send_admin_mail_mw-wp-form-3742', 'save_datalist_posts' );

‘list_adpattern’ はACFで作成したフィールド名
‘adpattern’ はMW WP FORMのnameで指定した名称

add_filter( ‘mwform_before_send_admin_mail_mw-wp-form-4114’, ‘save_datalist_posts’ );
add_filter( ‘mwform_before_send_admin_mail_mw-wp-form-3742’, ‘save_datalist_posts’ );

この部分の数字はフォームのID
ABテストなどで複数あれば上記のように2行それぞれのフォームIDを指定

作成したカスタム投稿一覧に項目名を表示

function add_posts_columns( $columns ) {
  $columns['list_progress'] = '来館誘致状況';
  $columns['list_namae'] = '申込者名';
  $columns['list_kana'] = 'フリガナ';
  $columns['list_month'] = '挙式希望時期';
  $columns['list_adpattern'] = '広告経路';
  return $columns;
}
add_filter( 'manage_edit-datalist_columns', 'add_posts_columns' );

一覧に表示した項目のそれぞれのデータを表示

function custom_posts_column( $column_name, $post_id ) {
  if ( $column_name == 'list_progress' ) {
    $list_progress = get_post_meta( $post_id , 'list_progress' , true );
    echo ( $list_progress ) ? $list_progress : '未対応'; //'未対応'はでフォルテで表示する文言。何もなければ'-'とする。
  }
  if ( $column_name == 'list_namae' ) {
    $list_namae = get_post_meta( $post_id , 'list_namae' , true );
    echo ( $list_namae ) ? $list_namae : '-';
  }
  if ( $column_name == 'list_kana' ) {
    $list_kana = get_post_meta( $post_id , 'list_kana' , true );
    echo ( $list_kana ) ? $list_kana : '-';
  }
  if ( $column_name == 'list_month' ) {
    $list_month = get_post_meta( $post_id , 'list_month' , true );
    echo ( $list_month ) ? $list_month : '-';
  }
  if ( $column_name == 'list_adpattern' ) {
    $list_adpattern= get_post_meta( $post_id , 'list_adpattern' , true );
    echo ( $list_adpattern ) ? $list_adpattern : '-';
  }
}
add_action( 'manage_posts_custom_column', 'custom_posts_column', 10, 2 );

タイトルとURLをコピーしました