今まで、覚書で書き散らしたブログ内容をまとめて、誰でもが楽しくブログを始めることが出来るサイトを目指します。

『Contact Form 7』にメールアドレス確認を加える

WordPressでお問い合わせフォームといえば『Contact Form 7』を使っている人が多いと思う。とりあえずディフォルトでもいいのだが、やはりメールアドレスの確認は入れておきたい。

 そこで、メールアドレス確認を加えてみた。

functions.phpに次のコード貼り付けます。

add_filter( 'wpcf7_validate_email', 'wpcf7_validate_email_filter_confrim', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_validate_email_filter_confrim', 11, 2 );
function wpcf7_validate_email_filter_confrim( $result, $tag ) {
    $type = $tag['type'];
    $name = $tag['name'];
    if ( 'email' == $type || 'email*' == $type ) {
        if (preg_match('/(.*)_confirm$/', $name, $matches)){ //確認用メルアド入力フォーム名を ○○○_confirm としています。
            $target_name = $matches[1];
                $posted_value = trim( (string) $_POST[$name] ); //前後空白の削除
                $posted_target_value = trim( (string) $_POST[$target_name] ); //前後空白の削除
            if ($posted_value != $posted_target_value) {
                $result->invalidate( $tag,"確認用のメールアドレスが一致していません");
            }
        }
    }
    return $result;
}

このカスタマイズで重要なのは、「タグの名前」(先ほどの例で言うと「your-email」や「your-email_confirm」の部分)です。
 確認用メールアドレスの名前は必ずメールアドレスのタグ名に「_confirm」を付けた名前にすることです。

 このようにして作ったのが、このサイトのお問い合わせページである。

 メールアドレスの入力ミスでのトラブルを防ぐ為にも是非、メール確認機能はデフォルトでもいい機能だと思う。

 必ず、充分な確認を行ってください。何が合っても私は知らんので、自己責任でよろしく。