ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

Contact Form 7で確認用メールアドレスを使用可能にする@WordPress

WordPressのプラグイン「Contact Form 7」ではお問い合わせ用メールフォームでよくある「確認用メールアドレス」の項目が、デフォルトでは利用できません。

これを利用可能にします。

使用しているテーマのディレクトリ内にある(ない場合は新規に用意する)functions.phpに以下の記述を追加します。

/** Contact Form 7 に確認用メールアドレスの設定を可能に **/
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;
}

あとは管理画面から「お問い合わせ>コンタクトフォーム」(実装したいフォーム)を選んで「編集」をクリックし、「フォーム」項目内に以下の記述を追加します。([email* your-email_confirm]部分を)

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

これでオーケー。

確認用メールアドレスの入力内容がメールアドレスと合わない場合のアラートメッセージは、さっきのfunctions.phpに追加した中に該当文字列があるので、そこを変更します。

本格ビジネスサイトを作りながら学ぶ WordPressの教科書 Ver.4.x対応版

本格ビジネスサイトを作りながら学ぶ WordPressの教科書 Ver.4.x対応版