これは便利!WordPress問い合わせフォームプラグイン Contact Form 7

「WordPress のお問い合わせフォームプラグイン。シンプル、でも柔軟。」がキャッチフレーズのContact Form 7というプラグインがあります。使ってみたところ、すごく簡単にインストールができて、利用もできました。


このプラグインを使うと、固定ページへ問い合わせフォームを貼り付けることができて、すぐに問い合わせページができます。とても便利です。デフォルトの設定では、固定ページにもコメントフォームやコメントが表示されるようになっていますから、忘れずに表示しないように設定する必要があります。ただ、気になるのはメールで内容がすべて通知されてしまう点です。個人情報などをメールで受け取るようにしておくと、何かと心配なのでメールでは問い合わせがあったことだけを通知して、内容はサーバ側において一元管理をしたいところです。

そうすると、プラグインを使わずに基本機能だけでできないだろうか、と考えてしまいます。よく考えてみると、コメント通知をメールで飛ばさないように設定をした上で、コメントありの固定ページを作って、それで対応するという方法もあります。問い合わせ用の固定ページテンプレートを特別に用意してあげるのです。ただ、こうすると、コメント通知を何らかの方法で受けとることができるようにしないと気がつかないということになるので、それが若干面倒です。

SQLが使えて、MySQLからデータを取り出せるなら、WordPress用のデータベースへアクセスして情報を取得することができます。例えば、問い合わせ専用の固定ページのIDは下記でわかります。

select ID, post_title from wp_posts;

固定ページのIDが2だったとしたら、ここへある日時以降にコメントされたかどうかは、下記のようなSQL文で取得できます。ここでは「2011-06-02 18:00:00」以降という指定をしています。

select comment_post_ID,comment_author,comment_date
  from wp_comments
  where comment_date > '2011-06-02 18:00:00' and comment_post_ID=2;

あとは、シェルスクリプトなどで、「3時間ごとに、3時間前以降にコメントが合ったかをSQL文とmysqlコマンドを使ってチェックして、0件でないならメールで通知をする」という処理をしてあげれば良いということになります。

もちろん、ここまでできるなら、「Contact Form 7」を改造してメール通知の部分だけちょっと変更すれば良いという話もあります。ざっとみたところ、
contact-form-7/includes/classes.php にある、function compose_and_send_mail( $mail_template ) あたりを修正して、入力された内容はファイルへ書き出し、メールでは問い合わせがあったことだけを通知するようにすれば良さそうです。

などと考えていたところ、「Contact Form 7 to Database Extension」というWordPressのプラグインを見つけました。入力された内容をファイルへ書き出すという処理は、このプラグインを導入すれば不要です。

ということで、例えばfunction compose_and_send_mail( $mail_template )にある、@wp_mailを使っている部分を次のようにおきかえておくと、めでたく本文は流れてこなくなります。個人情報保護といった面からすると、fromも隠蔽しておいて、サーバ側で一括管理をしておきたいことも多いでしょうから、その場合は、該当する部分も置き換えた方が良いでしょう。

//return @wp_mail( $recipient, $subject, $body, $headers, $for_this_mail );
return @wp_mail( $recipient, $subject, "there is a post.\nplease check", $headers, $for_this_mail );

//return @wp_mail( $recipient, $subject, $body, $headers );
return @wp_mail( $recipient, $subject, "there is a post.\nplease check", $headers );

かなり手抜きの感じがあるので、実際に使ってみるといろいろと不便に感じることもあるかもしれませんが、面倒な問い合わせフォームを自作しなくても簡単に実装できるということを考えると、こういったプラグインを利用できるというのは、ありがたいことです。開発者の皆さんに感謝ですね。

関連書籍:

同じタグの記事: WordPress
同じカテゴリの記事: General
関連書籍: WordPress