企業、店舗向けのホームページ制作で必要なメールフォームでいつもお世話になっているwordpressプラグイン「MW WP Form」。項目入力してすぐ送信する仕様なら「Contact Form 7」で十分かもしれませんが、確認画面、完了画面と遷移していく仕様だと「MW WP Form」のほうが便利です。
以前から新規のwordpressでメールフォームを作成するたびに毎回コピペしたりして設定していくのが面倒で、無駄なことしてるなと思っていました。
よくよく調べてみると公式にフィルターフックがあったので、その使い方をサンプルコードつけて解説します。
サンプルコード
MW WP Form公式 mwform_default_settingsにも、サンプルコードがあるのですが、よく使う項目をもう少し具体的に設定していったサンプルコードです。
細かいところはそれぞれの仕様にあわせて変更してください。
これをfunctions.phpに貼り付けます。
MW WP Formで1つのメールフォームを新規追加するときに適用されるフィルターフックなので、一度保存してしまえば削除するなり、コメントアウトしても大丈夫です。
よく使うテーマやオリジナルのテーマがある場合は、最初から書いておくと楽だと思います。
/**
* @param empty $value
* @param string $key
* @return mixed
*/
//共通初期値設定
function my_mwform_default_settings( $value, $key ) {
// 自動返信メール件名
if ( $key == 'mail_subject' ) {
return '【' . get_bloginfo('name') . '】お問い合わせ確認メール';
}
// 自動返信メール本文
if ( $key == 'mail_content' ) {
$content = "";
$content .= '{name} 様' . PHP_EOL . PHP_EOL;
$content .= 'この度は、お問い合わせありがとうございます。' . PHP_EOL;
$content .= '後ほど、担当者から折り返しご連絡させていただきます。' . PHP_EOL;
$content .= PHP_EOL;
$content .= 'お名前 : {name}' . PHP_EOL;
$content .= 'ふりがな: {kana}' . PHP_EOL;
$content .= 'E-mail :{email}' . PHP_EOL;
$content .= 'お問い合わせ内容:' . PHP_EOL;
$content .= '{message}' . PHP_EOL;
$content .= PHP_EOL;
$content .= '********************************************' . PHP_EOL;
$content .= get_bloginfo("name") . PHP_EOL;
$content .= '〒' . PHP_EOL;
$content .= 'TEL:' . PHP_EOL;
return $content;
}
// 自動返信メール
if ( $key == 'automatic_reply_email' ) {
return 'email';
}
// 管理者宛メール件名
if ( $key == 'admin_mail_subject' ) {
return 'HPからお問い合わせがありました';
}
// 管理者宛メール本文
if ( $key == 'admin_mail_content' ) {
$content = "";
$content .= '以下、お問い合わせ内容です。' . PHP_EOL;
$content .= PHP_EOL;
$content .= 'お名前 : {name}' . PHP_EOL;
$content .= 'ふりがな: {kana}' . PHP_EOL;
$content .= 'E-mail :{email}' . PHP_EOL;
$content .= 'お問い合わせ内容:' . PHP_EOL;
$content .= '{message}' . PHP_EOL;
return $content;
}
// URL設定
// 入力画面URL
if ( $key == 'input_url' ) {
return '/contact/';
}
// 入力画面URL
if ( $key == 'confirmation_url' ) {
return '/contact/confirm/';
}
// 入力画面URL
if ( $key == 'complete_url' ) {
return '/contact/complete/';
}
// 入力画面URL
if ( $key == 'validation_error_url' ) {
return '';
}
// バリデーション
if ( $key == 'validation' ) {
return array(
array(
'target' => 'name',
'noempty' => true,
),
array(
'target' => 'kana',
'noempty' => true,
'kana' => true,
),
array(
'target' => 'tel',
'noempty' => true,
'tel' => true,
),
array(
'target' => 'email',
'noempty' => true,
'mail' => true,
),
array(
'target' => 'email2',
'noempty' => true,
'mail' => true,
'eq' => array(
'target' => 'mail'
)
),
array(
'target' => 'message',
'noempty' => true,
),
);
}
}
add_filter( 'mwform_default_settings', 'my_mwform_default_settings', 10, 2 );
解説
MW WP Form管理画面で項目を確認します。
バリデーションルールは、「バリデーションを適用する項目」に入力した値が「target」になります。
バリデーションルール以外は各入力欄を右クリック→「検証」で、デベロッパーツールを開きます。
デベロッパーツールで、クリックした項目のname属性を確認し、「mw-wp-form[●●]」の●●が「$key」の値になります。
まとめ
このフィルターフックで何度もつくるメールフォーム作成がとっても簡単になりました。
MW WP Formはとっても便利でもっといろいろなフィルターフックやアクションフックがあるので、他の改善方法もまた紹介していきます。
フォームカスタマイズに便利!MW WP Formの使い方まとめ【WordPress】
WordPressのメールフォームをカスタマイズする方法を知りたいですか?この記事では、カスタマイズに便利なプラグインMW WP Formの使い方、カスタマイズ方法などをまとめて紹介しています。ぜひご覧ください。