Contact Form 7にメールアドレス確認用のフォームを追加する方法

Contact Form 7にメールアドレス確認用のフォームを追加する方法

Contact Form 7にメールアドレス確認用のフォームを追加する方法
  • シェアしてね♪
  • このエントリーをはてなブックマークに追加

  • このエントリーをはてなブックマークに追加

メールアドレスを2回入力して、メールアドレスが正しいかどうかを判断する、といったフォームはよく見かけると思います。Contact Form 7で同じようにメールアドレス確認用のフォームを設置しようと思っても、デフォルトでは機能が備わっていません。

今回は、Contact Form 7にメールアドレス確認用のフォームを追加する方法をご紹介いたします。

スポンサードリンク

Contact Form 7にメールアドレス確認用のフォームを追加する方法

適用しているテーマのfunctions.phpに以下を追加します。

functions.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 ) {
$type = $tag['type'];
$name = $tag['name'];
$_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) );
if ( 'email' == $type || 'email*' == $type ) {
if (preg_match('/(.*)_confirm$/', $name, $matches)){
$target_name = $matches[1];
if ($_POST[$name] != $_POST[$target_name]) {
if (method_exists($result, 'invalidate')) {
$result->invalidate( $tag,"確認用のメールアドレスが一致していません");
} else {
$result['valid'] = false;
$result['reason'][$name] = '確認用のメールアドレスが一致していません';
}
}
}
}
return $result;
}

Contact Form 7のフォーム設定では、以下のように記述します。

<p>メールアドレス (必須)<br />
[email* your-email] </p>
<p>メールアドレス確認用 (必須)<br />
[email* your-email_confirm] </p>

これでメールアドレス確認用のフォームを設置することができます。メールアドレスが一致しない場合は、「確認用のメールアドレスが一致していません」というエラーが表示されます。

確認用のメールアドレスが一致していません

あとがき

functions.phpにコードをコピペするだけで実装できますので、メールアドレス確認用のフォームを追加したい場合はぜひ参考にしていただければと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。