【WP】Contact Form 7 でメールアドレスの再入力欄に一致チェック機能を付ける方法
お問い合わせ時の、メールアドレスの入力ミスを防ぐためのカスタマイズです。
メールアドレス入力欄を2つ設置し、一致しない場合はエラーメッセージを表示します。
Contact form 7 でメールアドレス項目と確認用メールアドレス項目を用意する
1 2 3 4 5 |
<dt>メールアドレス</dt> <dd>[email* your-email]</dd> <dt>メールアドレス(確認用)</dt> <dd>[email* your-email_confirm placeholder "確認のためもう一度入力してください"]</dd> |
確認用メールアドレスの名前は、メールアドレスの名前に「_confirm」を付けた名前にします。
function.php にコードを追加する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/****************************/ /** Contact Form 7 確認用のメールアドレスに一致チェック機能を付加 **/ /****************************/ 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; } |
動作確認
送信ボタンを押した際、メールアドレスと確認用メールアドレスの入力値が異なる場合にはエラーメッセージが表示されます。