WEBサイト制作

Contact Form 7でメールアドレス等のデータを取得する方法

WordPressのお問い合わせフォームのプラグイン「Contact Form 7」から、現在登録されているメールアドレス等のデータを取得したいことがあると思います。

通常の投稿やカスタムポストであれば、wp_queryで取得できますが、Contact Form 7のデータはやや特殊な形式でデータベースに入っていますので、直接、WordPressのDBにアクセスしてデータを抜き出してくるのが手っ取り早いです。

コンタクトフォームの取得

まずは、コンタクトフォームを取得します。コンタクトフォームもカスタムポストタイプの一つですので、wp_postsテーブルからpost_typeを指定してコンタクトフォームだけ抽出し、そのpost_idを取得します。

コンタクトフォームの項目データの取得

コンタクトフォームのデータは、wp_postmetaテーブルに入っていますが、wp_postmetaテーブルのカラムは次のような構造になっています。

【wp_postmetaのテーブルカラム構造】

ID 関連するpostのID キー
meta_id post_id meta_key meta_value

コンタクトフォームの設定画面には「フォーム」「メール」「メッセージ」「その他の設定」というタブがありますが、それぞれ次のキーが使われています。

内容 meta_key
「フォーム」タブの項目 _form
「メール」タブの「メール」の項目 _mail
「メール」タブの「メール (2)」の項目 _mail2
「メッセージ」タブの項目 _messages
「その他の設定」タブの項目 _additional_settings

登録されているメールアドレスの情報を取得する場合は、「meta_key: _mail」の情報を取得すれば良いです。
取得したmeta_valueは、シリアライズ化されたデータ(a:1:{s:6:”active”;})となっていますので、デシリアライズして、変数 $wpcf7_data_mail に代入します。
メールアドレスが入っているのは「recipient」キーであり、$wpcf7_data_mail[‘recipient’] で取り出せます。

あとはそれぞれの目的に応じて自由にデータを利用すれば良いですが、とりあえず、ここでは全てのキーと値を画面に表示してみます。

他のタブの項目データを取得するには、meta_keyに別のキーを指定して取得すれば良いです。

まとめ

コードをすべて合わせておきます。

 

カテゴリー