WordPressでサイトを実装する中で、お問い合わせにreCaptcha v2を導入したがバッジが表示されず、メールの送信ができない、というエラーが発生しました。こちらの対処方法に丸3日悩んだため、備忘録としてまとめます。同様のエラーが生じている方の一助になると幸いです。
エラーの内容
お問い合わせにreCaptcha v2を導入したがバッジが表示されず、メールの送信ができない。
解消方法
カスタマイズした「footer-bottom.php」内で「wp_footer();」を書き忘れていたため、これを記述するとバッジが表示され、メールの送信も可能になった。
利用環境
・発生日:2024/3/12
・WordPressバージョン:Ver.6.4.3
・テーマ:Cocoon Ver.2.6.7
・Contact Form 7:Ver.5.9
※phpでコードをカスタマイズ
・reCaptchaバージョン:v2
・その他実装したプラグイン:ReCaptcha v2 for Contact Form 7
・その他:サイト移管のため、本番と同じドメインのテストページで検証していた
試したこと
・Contact Form 7 のフォームで[recaptcha]のタグを削除
→メールの送信ができるようになりました。これで、メールの送信にreCaptchaツールが関係していることが分かりました。
・Google reCaptchaのサイトキーとシークレットキーを再発行
→再発行後もバッジは表示されませんでした。
・ReCaptcha v2 for Contact Form 7の実装内容を見直し
→phpでコードをカスタマイズしていない複数のサイトを使って実装したところ、reCaptcha v2でも問題なくバッジが表示されました。v2実装について説明しているサイトが少なく原因の一つと考えていましたが、特に問題ないようです。
以上より、以下が原因であると絞り込めました。
①「本番と同じドメインのテストページ」であることから、Google側でサイトを認証できず、バッジが表示できない
②phpのコードで誤りがある
ここでchat GPTを使って検索したところ、「wp_footer();」書き忘れでエラーになった事象を発見!こちらを確認したところ、カスタマイズした「footer-bottom.php」で同様に記述が抜けていることを確認できました!こちらを修正してサイトを更新すると、無事にバッジが表示され、メールも送信できるようになりました!
①に関してはサイトの移管などを含めると検証が難しかったので、②で対処できたのは救いでした(^^;;
まとめ
24/3の時点で、以下が確認できました。
・メールの送信ができない場合はreCaptchaをまず疑う
・reCaptcha v2は実装可能。ReCaptcha v2 for Contact Form 7を使っても問題ない
・本番と同ドメインの検証用テストページでもreCaptchaツールは動作する
・reCaptchaを実装する場合は「wp_footer();」は重要