プラグインを使わずにContact Form 7 から送信されたメールの履歴を保存する ( カスタム投稿 )

概要説明

お問い合わせの履歴をプラグインを使わずに保存できるようにするためのカスタマイズ。カスタム投稿を事前に用意する必要があります。お問い合わせの履歴としての使い方だけでなく、ユーザー投稿型の機能もこちらのカスタマイズで簡単に実装が行えます。

カスタム投稿記事としてメールを保存

functions.php
/*----------------------------------------------------
 Contact Form 7 から送信された情報をカスタム投稿に保存させる
----------------------------------------------------*/
if ( !function_exists( 'wpcf7_send_add_post' ) ){
    function wpcf7_send_add_post(){
        // 送信情報を取得
        $submission = WPCF7_Submission::get_instance();
        if($submission) {
            $formdata = $submission->get_posted_data();

            // 特定のフォームの場合のみとしたい場合はidを使用
            $formid = $submission->get_contact_form()->id();

            // 管理画面からフォームの編集画面を表示させ url のpost=55 の部分を指定
            if ( $formid == 55 ) ) {

                // 例) 本文とメールアドレスを記事本文に設定
                $post_content = $formdata['your-message'] . "\n" . $formdata['your-email'];

                // 投稿を作成
                $insert_post = array(
                    'post_type'    => 'mail_history',             // メール履歴用のカスタム投稿を事前に用意
                    'post_title'   => $formdata['your-subject'],  // 記事タイトル
                    'post_content' => $post_content,              // 本文
                    'post_status'  => 'draft'                     // 下書き保存
                );
                wp_insert_post($insert_post);
            }
        }
    }
    add_action('wpcf7_mail_sent', 'wpcf7_send_add_post');
}

/wp-admin/admin.php?page=wpcf7&post=55&action=edit

特定のフォームのみという制限を加える場合は管理画面のフォーム編集画面を表示させ、URL内に含まれるパラメーターを確認します

実装後フォームから送信を行い動作確認

プラグインを使わずにContact Form 7 から送信されたメールの履歴を保存する ( カスタム投稿 )

正常に動作していると上記のように管理画面のカスタム投稿一覧画面にフォームからの送信内容が表示されるようになります

こちらの機能を使って投稿機能を実装

メールの送信履歴保存で使うのも便利ですが、ユーザー投稿型のコンテンツサイトにも使えます。

Contact Form 7 を使ってユーザーからの投稿を記事として表示させるような機能を簡単に作ることができます。

WordPress Developer Resources

関連機能

  1. カテゴリー編集ページに任意の項目を追加

  2. ダッシュボードに自由に使えるメモ用エリアを追加

  3. WordPress 特定の固定ページだけreCAPTCHAを有効にする ( Contact Form 7使用 )

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

三次元に希望を持っていた時期が
僕にもありますた

STEINS;GATE
by ダル(橋田至)

Profile

PAGE TOP
Amazon プライム対象