「Contact Form 7」に確認用メールアドレスの項目をつくる

Contact Form 7はデフォルトで最低限の項目が用意されています。当然Emailの入力項目も含まれていますが、入力したEmailが正しいかどうか確認する確認用のEmail入力欄はありません。特にビジネスでウェブサイトを使用する場合、Emailアドレスが誤って入力されていたら、いくら先方が自社製品に関して問合せをして下さっても「コンタクトをとれない」という最悪の状態になってしまいます。

そこで、今回はContact Form 7に確認用メールアドレスの項目を追加する方法をご紹介します。

function.phpを修正する

不慣れな方は、あまりphpに手を加えたくないと思われるかもしれません。しかし、今後カスタマイズをする上でphpの編集は避けては通れません。編集前に必ずバックアップを取っておくのを忘れないでください。バックアップを取っておけば問題ありません。

①ダッシュボードの「外観」→「テーマの編集」を開いてください。

※使用しているテーマによっては「テーマの編集」が表示されない場合があります。その場合はFTPでfunction.phpをダウンロードし、修正後アップロードします。function.phpは、「wp-content」→「themes」→「使用しているテーマのフォルダ」内にあります。FTPでfunction.phpをダウンロードされる方は、この後の③にお進みください。

②テーマの編集を開くと画面右側にphpのリストが表示されてます。この中から「テーマのための関数(function.php)を選択します。

③ function.phpに以下のコードを追加します。場所はどこでもかまいません。そのままコピー&ペーストしてください。

add_filter( 'wpcf7_validate_email', 'wpcf7_text_validation_filter_extend', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_text_validation_filter_extend', 11, 2 );
function wpcf7_text_validation_filter_extend( $result, $tag ) {
global $my_email_confirm;
$tag = new WPCF7_Shortcode( $tag );
$name = $tag->name;
$value = isset( $_POST[$name] )
? trim( wp_unslash( strtr( (string) $_POST[$name], "\n", " " ) ) )
: '';
if ($name == "your-email"){
$my_email_confirm=$value;
}
if ($name == "your-email_confirm" && $my_email_confirm != $value){
$result->invalidate( $tag,"確認用のメールアドレスが一致していません");
}return $result;
}

④ダッシュボードで編集していた方は「ファイルを更新」、ダウンロードして編集していた方は保存したfunction.phpをアップロードしてください。

Contact Form 7に確認用メールアドレス項目を追加する

Contact Form 7のEmail入力項目は[email* your-email]でした。function.phpで追加したコードはこのyour-emailに対して確認を行います(Email入力項目の名前がyour-emailでない場合は機能しませんのでご注意下さい)。

新しく作成した確認用メールアドレス項目のショートコードは[email* your-email_confirm]です。フォームの任意の場所にこのショートコードを入力すれば、メールアドレスの確認項目を追加することができます。

この記事が役に立ったらシェア!