WordPressのお問い合せにTransmitMailを使う方法
ワードプレスのお問い合せフォームにはプラグイン「Contact Form7」や「MW WP Form」がありますが、今回は柔軟にカスタマイズできるTransmitMailをワードプレスのお問い合せフォームに利用します。
TransmitMailの特徴
- Copyrightが不要
- ファイルの添付が可能
- ファイルの保存期間や上限サイズ、拡張子を設定できる
- 入力、確認、エラー、完了のテンプレートがありデザインも自由にできる
- 自動返信可能
- メールの受信先に複数の宛先を設定できる
- 自動返信メールのレイアウトや書式も自由にできる
- メールや数字、ひらがな、カタカナなどのバリデーション
- CSVファイルに記録させることができる
- エラーログも出力される
- アクセス拒否ホストが設定できる
- 外部SMTPサーバを利用できる
- 確認、完了へ遷移する時にURLが変わらないため、アナリティクスの設定には仮想URLの設定が必要になる
などなど、柔軟で機能も豊富なPHPフォームです。
WordPressにTransmitMailを設置する方法
ワードプレスでTransmitMailが使えるようにファイルをアップロードして、設定していきます。
ファイルのディレクトリ構造
TransmitMailはテンプレートディレクト内にアップロードします。
ディレクトリ構造は下記のようになります。index.phpは削除します。
固定ページのテンプレートファイル
固定ページのテンプレートファイルには「TransmitMail」のテンプレートを表示させる箇所に下記を記述します。
「TransmitMail.php」「config.php」のパスは適宜変更してください。
<?php get_header(); ?>
<main>
<?php
require_once TEMPLATEPATH . '/inquiry/lib/TransmitMail.php';
$tm = new TransmitMail(TEMPLATEPATH . '/inquiry/config/config.php');
?>
<?php
$tm->run();
?>
</main>
<?php get_footer(); ?>
固定ページにお問い合せページを作成
固定ページに「お問い合せ」ページを作成します。
今回はスラッグを「inquiry」にします。
config.phpを編集する
TransmitMailのconfig.phpファイルを編集します。
TransmitMailのテンプレートファイルのパスを記述します。パスは適宜変更してください。
<?php
$config['to_email'] = 'info@example.com';
$config['to_subject'] = 'お問い合わせ';
$config['auto_reply_subject'] = 'お問い合わせありがとうございます';
$config['auto_reply_name'] = 'ITTI';
// TransmitMailのテンプレートパスを記述する
$config['tpl_input'] = TEMPLATEPATH . '/inquiry/input.html';
$config['tpl_confirm'] = TEMPLATEPATH . '/inquiry/confirm.html';
$config['tpl_finish'] = TEMPLATEPATH . '/inquiry/finish.html';
$config['tpl_error'] = TEMPLATEPATH . '/inquiry/error.html';
$config['mail_body'] = TEMPLATEPATH . /inquiry/config/mail_body.txt';
$config['mail_auto_reply_body'] = TEMPLATEPATH . '/inquiry/config/mail_auto_reply_body.txt';
$config['log_dir'] = TEMPLATEPATH . '/inquiry/log/';
$config['tmp_dir'] = TEMPLATEPATH . '/inquiry/tmp/';
TransmitMailのテンプレートファイルを編集する
今回のポイントになります。
formタグの「action」を「./」に変更します。
<form method="post" action="./" enctype="multipart/form-data">
「送信」や「戻る」ボタンのform箇所も「./」に変更します。
<form method="post" action="./">
あとは、設定マニュアル通りに進めていけばOKです。
上手く可動しない場合
FAQでエラーやカスタマイズについて解説されています。
とても情報が豊富です。
送信ボタンを押しても反応しない
formのactionのパスが間違っている可能性があります。
「action="./"」や「action="inquriry/”」など環境に合わせて変更してみてください。