WordPress|Contactform7
こんにちは。
Contactform7といえば、ワードプレスのお問い合わせフォームとしては、必須のプラグインです。
EDITO DESIGNでもサイト作成時には、ほぼ100%の確率で使用しております。
お問い合わせでは、
メールアドレス入力のミスなどで、メールが届かず連絡が行かない…
というようなことが多々あります。
そのような状況をできる限り招かないよう、
お問い合わせフォームには、「確認メールアドレス」を入力する欄を設けています。
「メールアドレス」と「確認メールアドレス」の内容が異なれば、エラーが返ってくるようになっています。
しかし、プラグインのアップデートとともに(正確には「Contact Form 7 4.1」からとのこと)
「メールアドレス」と「確認メールアドレス」の内容が異っていても、エラーとならずに問い合わせができてしまうようになっておりました。
以前は、使用しているテーマフォルダのfunction.phpに
と記載していましたが、この記述では動かなくなってしまったようで、
新たに
としましたところ、無事に動くようになりました。
プラグインのアップデートは、このような思いがけない変更がおこることがありますので、
やはり、アップデート後のチェックはこまめにしなければ・・・と改めて感じました。
参考にさせていただきました。ありがとうございます。
【[Contact Form 7 4.1] 確認用メールアドレスのエラーチェック(最新版対応)】
Written by IShiko
Contactform7といえば、ワードプレスのお問い合わせフォームとしては、必須のプラグインです。
EDITO DESIGNでもサイト作成時には、ほぼ100%の確率で使用しております。
お問い合わせでは、
メールアドレス入力のミスなどで、メールが届かず連絡が行かない…
というようなことが多々あります。
そのような状況をできる限り招かないよう、
お問い合わせフォームには、「確認メールアドレス」を入力する欄を設けています。
「メールアドレス」と「確認メールアドレス」の内容が異なれば、エラーが返ってくるようになっています。
しかし、プラグインのアップデートとともに(正確には「Contact Form 7 4.1」からとのこと)
「メールアドレス」と「確認メールアドレス」の内容が異っていても、エラーとならずに問い合わせができてしまうようになっておりました。
以前は、使用しているテーマフォルダのfunction.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; }
と記載していましたが、この記述では動かなくなってしまったようで、
新たに
/**メールアドレス確認 */ 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'] = array( $name => '確認用のメールアドレスが一致していません' ); } } } return $result; }
としましたところ、無事に動くようになりました。
プラグインのアップデートは、このような思いがけない変更がおこることがありますので、
やはり、アップデート後のチェックはこまめにしなければ・・・と改めて感じました。
参考にさせていただきました。ありがとうございます。
【[Contact Form 7 4.1] 確認用メールアドレスのエラーチェック(最新版対応)】
Written by IShiko