【Contact Form7】確認用メールアドレス入力欄を作る方法

Contact Form 7
記事内に商品プロモーションを含む場合があります。

メールアドレスの誤入力を防止するために、Contact Form7に確認用のメールアドレス入力欄を作りたい。

Contact Form7には、デフォルトで確認用のメールアドレス入力欄を作る機能はありません。

そのため、今からご紹介する方法で自作する必要があります。

とはいえコピペで出来る簡単な作業なので、ぜひご活用ください。

スポンサーリンク

Contact Form7に確認用メールアドレス入力欄を作る方法

Contact Form7に確認用メールアドレス入力欄を作るには、下記の手順で行います。

  1. コンタクトフォームにメルアド確認用のタグを設置する
  2. functions.phpにコードをコピペする

順番に解説します。

メールアドレス確認用のタグを設置する

WordPress管理画面から「お問い合わせ」→「新規追加」へと進み、コンタクトフォームの作成画面に入ります。

デフォルトだと下のようになっていると思います。

ここでemailタグの名前が「your-email」になっていることを確認してください(※この名前は絶対に変えないでください)。

この下に、メールアドレス入力確認用のタグを設置します。

タグを設置したい場所にカーソルを置き「メールアドレス」をクリックします。

メールアドレスのタグを作成するためのモーダルが開くので、下記の通り入力します。

項目タイプ
:必須であればチェック
名前
your-email-confirmと入力(※違う名前だと動きません)

タグの設置が完了後、タグの名前がそれぞれ「your-email」「your-email-confirm」になっていればOKです(※これ以外の名前だと動かないので注意してください)。

ちなみに「必須」にしなくても大丈夫です(ほぼ「必須」だと思いますが)。

functions.phpにコードをコピペする

functions.phpに下記コードをコピペしてください。

function wpcf7_custom_email_validation_filter( $result, $tag ) {
  if ( 'your-email-confirm' == $tag->name ) {
    $your_email = isset( $_POST['your-email'] ) ? trim( $_POST['your-email'] ) : '';
    $your_email_confirm = isset( $_POST['your-email-confirm'] ) ? trim( $_POST['your-email-confirm'] ) : '';
    if ( $your_email != $your_email_confirm ) {
      $result->invalidate( $tag, "メールアドレスが一致しません" );
    }
  }
  return $result;
}
add_filter( 'wpcf7_validate_email', 'wpcf7_custom_email_validation_filter', 20, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_custom_email_validation_filter', 20, 2 );

「your-emai」で入力された値と「your-email-confirm」で入力された値を比較し、合致していれば送信、違っていれば「メールアドレスが一致しません」というエラーメッセージを返し送信をストップするコードです。

なお、メールアドレスの前後に空白があっても文字列さえ一致すればエラーは表示されません(半角空白のみ。全角だとエラーになります)。

また、メールアドレスの入力が「必須」でなくても作動するようにしています。

確認メッセージを変更したい場合は、「メールアドレスが一致しません」の箇所を自由に変えてください。

動作確認してみましょう。

入力確認欄に違うメールアドレスを入力してみて、エラーが表示されればOKです。

スポンサーリンク

まとめ

今回は、Contact Form7に確認用のメールアドレス入力欄を作る方法を解説しました。

「メルアドをコピペされたら意味ないじゃん」はごもっともなのですが、需要があるのは間違いないので、やり方だけは押さえておきましょう。