expexp.jp

WordPress

【WordPress】MW WP Formのお問い合わせデータをダッシュボードに表示したい

WordPressでお問い合わせフォームなどを簡単に作成できるプラグイン「MW WP Form」で、お問い合わせデータをダッシュボードに表示する例を紹介します。ダッシュボードにお問い合わせデータが表示されるので、いちいちナビゲーションから入っていかなくても確認できます。

このサンプル、需要あるかな。

ダッシュボードにデータを表示するためのウィジェットを追加

特に難しいことはしませんが、functions.phpに記述できる知識は必要です。プラグイン化をご希望の場合はご連絡ください。

MW WP Formでの設定

設定のメタボックスで「問い合わせデータをデータベースに保存」にチェックが入っているか確認してください。

functions.php

お問い合わせデータをダッシュボードに表示するfunctions.phpの記述例です。XXXの部分はフォーム識別子になります。

使用するフックはwp_dashboard_setupで、今回はAPIにダッシュボードにウィジェットを追加できるwp_add_dashboard_widgetを使用します。

// ダッシュボードにMW WP Formの問い合わせデータを表示する関数
add_action( 'wp_dashboard_setup', function() {

  /* 問い合わせデータをウィジェットに追加する関数
  wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null ) */
  wp_add_dashboard_widget( 'mwform_save_data_widget', 'お問い合わせデータ', function() {

    /* ここから$callback部分 */
    /* get_posts関数用の引数を設定。サンプルでは最新5件表示 */
    $args = array(
      'post_type' => 'mwf_XXX',
      'posts_per_page' => 5,
    );

    /* 引数をセットしてget_posts! */
    $save_data = get_posts( $args );

    /* お問い合わせデータが空かどうかチェック */
    if( !empty( $save_data ) ) {

      /* ラッパーはとりあえずリストで */
      $output = '<ul>';
      
      /* タイトルだけだと寂しいのでアイコンも表示 */
      $icon = '<i class="dashicons dashicons-admin-page"></i> ';

      /* 問い合わせデータをループ! */
      foreach( $save_data as $data ) {
        $output .= '<li>'.$icon.'<a href="post.php?post='.$data->ID.'&action=edit">'.$data->post_title.'</a><li>';
      }

      /* ラッパー閉じ */
      $output .= '</ul>';
    }

    /* 残念ながらお問い合わせデータがない場合 */
    else {
      $output = 'お問い合わせデータはありません。';
    }

    /* あうとぷっと! */
    echo $output;

    /* ここまで$callback部分 */

  } );
} );

これでダッシュボードにMW WP Formのお問い合わせデータが表示されます。

関連記事