CMS

Contact Form 7で確認用メールアドレスの入力フォームを加える方法

Contact Form 7はお問い合わせフォームを用意するのに、非常に便利なWordPressプラグインです。これまでWordPressを使ったサイトで、このプラグインを入れなかったことは一回もありません。

今回確認用メールアドレスを入力欄として設けなくてはならなくて調べたのですが、意外にいい方法が見つからなかったので、自分で作ってみました。

functions.phpに下記コードを追加(UTF-8で保存すること!)

<?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;
}
?>

※2015/3/4に修正しました。まつしたさん、情報ありがとうございます!

Contact Form 7の設定画面では次のようなフォームを記述

<p>メールアドレス<br />
[email* your-email] </p>

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

これで確認用メールアドレスが実現できますよ~

65 comments

  1. Pingback: contactForm7 へ確認用メールアドレス | html5とcss3

  2. おた

    はじめまして。こちらの方法を使わせて頂いております。
    Contactform7のアドレスと確認アドレスが違った場合のエラー表示が”null”と出てしまいます。
    修正方法がお分かりになりますでしょうか?宜しくお願い致します!

  3. smilkobuta Post author

    @おたさん
    こんにちは。「null」と表示される件、Contact Form 7(ver 4.1.1)+WordPress(ver 4.1.1–ja)では再現しませんね。
    エラーチェック自体は機能しているみたいですので、functions.phpの文字コードがUTF-8以外になっているのかもしれません。

  4. Pingback: Contact form 7の注意点

  5. Pingback: 【WordPress】確認用メールアドレスの入力フォームでコピペを禁止する方法 | itsukoko [ いつここ ]

  6. Pingback: Contact Form 7 の確認メールアドレスチェックの不具合の解決 | レインボウ情報館

  7. Jordanpsymn

    Здравствуйте!
    Как вы считаете, положительные отзывы о вас
    в интернете увеличивают ваши продажи?
    Мы знаем, что ваши клиенты интересуются тем, что пишут о вас в сети.
    У нас есть замечательное решение для вас – написание и размещение положительных
    упоминаний о вас в интернете.
    По ссылке вы можете заказать отзывы с хорошей скидкой
    Заманчиво?

    http://clck.ru/C4mKx

  8. Pingback: [Contact Form 7 4.1] 確認用メールアドレスのエラーチェック(最新版対応) - TECHBIRD | TECHBIRD - プログラミングを楽しく学ぼう

コメントを残す

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

Comments links could be nofollow free.