WordPress Contact Formプラグインのメールアドレス確認を実装する

WordPressでよく使われるメールフォームのプラグイン「Contact Form7」ですが、メールアドレスの確認用の入力フォームが、標準でついてるかと思ってたらついてなかったので、調べてみました。

こちらのサイトさんが、簡単に実装出来る方法を公開してくれてましたので、紹介したいと思います。

設定方法

テーマのfunction.phpに以下のコードを追加します。

<?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]) {
                $result['valid'] = false;
                $result['reason'][$name] = '確認用のメールアドレスが一致していません';
            }
        }
    }
    return $result;
}
?>

Contact Form 7の方では以下のように設定します。

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

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

これで簡単に実装出来ました。動作確認済です。

参考サイト:こぶたのラッパ

投稿日:
カテゴリー: WordPress

コメントする

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

CAPTCHA