WordPressのContact Form 7のメールフォームで、メールアドレス再入力のチェックを行う方法が紹介されておりましたので、シェアさせていただきました。
Contact Form 7のフォームでメールアドレスを再入力チェック
管理画面の左メニュー「お問い合わせ」>「コンタクトフォーム」へ進みます。メールフォームの編集画面で、メールアドレスと確認用メールアドレスの2つのフィールドを用意します。
1 2 3 4 5 |
<label>メールアドレス</label> [email* inquiry_mail] <label>メールアドレス(確認用)</label> [email* inquiry_mail_confirm] |
メールアドレス(確認用)のname属性の末尾に_confirm
を追加します。
最後に、ご利用のテーマのfunctions.phpに以下のコードを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function wpcf7_main_validation_filter( $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; } add_filter( 'wpcf7_validate_email', 'wpcf7_main_validation_filter', 11, 2 ); add_filter( 'wpcf7_validate_email*', 'wpcf7_main_validation_filter', 11, 2 ); |
※10行目、13行目のエラーメッセージは変更可能です。
参考情報
https://qiita.com/uto-usui/items/b01310cf268660228b11
コメント