質問: WordPressで無料テーマ「STINGER PLUS2」をカスタマイズしながらサイトを作っております。 プラグイン「Contact Form 7」で申込みフォームを作成し、入力した内容がメール送信されるところまで動作確認出来たので、 スパム対策として「Google reCAPCHA」を利用出来るよう、サイト上の情報等を参考に設定をしたところ、「reCAPTCHA」自体は 正常に動くところまで確認出来ましたが、今度はメール送信が失敗するようになってしまいました。 サイト上の情報を調べたところ、プラグイン「WP Mail SMTP」を導入する事で解決できるとの情報を見つけ、「WP Mail SMTP」を 導入・有効化し、必要な設定を施して試してみましたが、「WP Mail SMTP」のテストメール送信では正常に送信出来るものの、 「Contact Form 7」の申し込みフォームからは送信に失敗してしまいます。 とりあえず「reCAPTCHA」に関連する設定(「Contact Form 7」のインテグレーション、問い合わせフォームに設置した「reCAPTCHA」、 「header.php」から「reCAPTCHA」を動作させるための1文等を全て削除)すると、送信出来る様になるので、「reCAPTCHA」に関する 設定部分が悪影響しているかと思われます。 「Contact Form 7」、「reCAPTCHA」の組み合わせによるメール送信失敗に関して、何かアドバイスを頂けると助かります。 念のため「reCAPTCHA」に施した「reCAPTCHA」に関する追加文を入れた形でソースをアップ致しますので、何かおかしい部分が ありましたら、アドバイスをお願い致します。 ※~の間に「」を追加するとの事で の直前に追加しております。 また、メールのエラーログが存在していないか確認してみようと思い、ローカル環境(XAMPP)のメール送信時のログの格納先や プラグイン「WP Mail SMTP」の関連フォルダ等を確認してみましたが、エラーログと思われるログ情報が見つかりませんでした。 ※情報が少ないとのご指摘をいただきましたので、いくつか追記致します。 ◎ローカル環境のバージョン ・WordPress:5.0.3-ja ・XAMPP:7.0.33 ・Apache:2.4.37 ・PHP:7.0.33 ◎デバッグモード ・デバッグモードを試してみましたが、エラー箇所が上手く表示されませんでした。 ◎reCAPTCHAのバージョン ・V2にて試しております。 ・Contact Form 7のインテグレーションでサイトキーと秘密キーを指定することで PHPに一文を追加する必要はないとの事で、その様な記述がされているサイトの 情報に従って試してみましたが、reCAPTCHAのチェックボックスが表示されず、 やはり送信すると失敗します。 参考にしたサイトにはフォームの編集画面に「reCAPTCHA」ボタンが表示されると ありましたが、そもそもボタンガ表示されていないので、設定上の問題が あるのかもしれません。 ・V3を試してみた。 とりあえずV3のキーも取得して試してみたところ、こちらに関しては上手く 動作しました。 ただし、ユーザ登録制を前提としていることから、ユーザ登録の部分をWp-Membersの プラグインを使っており、こちらのプラグインではV3のキーを設定するとキーエラーに なることから、V3は対応していないかと思われます。 Contact Form 7とWp-Membersの両方でreCAPTCHAを使うとなると、V2とV3を混在して 利用するしかないかとも思っておりますが、何か良い方法等があれば、アドバイスを お願いします。 ※javacriptのエラーについて確認がありましたので、以下、試した内容とエラー内容を追記します。 ・V2で当初質問事項に記載したPHPに「」 を追加し、フォームに「」を追加した状態。 ※reCAPTCHAのチェックボックスは表示されるが、以下のエラーが発生している。 ・GET https://www.google.com/recaptcha/api.js?render=6LexpYsUAAAAAOsq1baRxIQ2-DuPSUtIYd_ wkkCZ&ver=3.0 net::ERR_ABORTED 400 ・GET https://www.google.com/recaptcha/api.js?render=6LexpYsUAAAAAOsq1baRxIQ2-DuPSUtIYd_ wkkCZ&ver=3.0 net::ERR_ABORTED 400 ・Uncaught Error: Invalid site key or not loaded in api.js: 6LexpYsUAAAAAOsq1baRxIQ2- DuPSUtIYd_wkkCZ at Object.I4 [as execute] (recaptcha*ja.js:540) at execute ((index):1038) at Yb (recaptcha*ja.js:542) at UF (recaptcha*ja.js:539) at recaptcha*ja.js:554 at recaptcha*ja.js:573 I4 @ recaptcha*ja.js:540 execute @ (index):1038 Yb @ recaptcha*ja.js:542 UF @ recaptcha*ja.js:539 (anonymous) @ recaptcha*ja.js:554 (anonymous) @ recaptcha*ja.js:573 ・V2で当初質問事項に記載したPHPから「」 を削除し、フォームに「」、またはを「[recaptcha]」を追加した状態。 ※reCAPTCHAのチェックボックスが表示されず、以下のエラーが発生している。 ・GET https://www.google.com/recaptcha/api.js?render=6LexpYsUAAAAAOsq1baRxIQ2-DuPSUtIYd_ wkkCZ&ver=3.0 net::ERR_ABORTED 400 ・GET https://www.google.com/recaptcha/api.js?render=6LexpYsUAAAAAOsq1baRxIQ2-DuPSUtIYd_ wkkCZ&ver=3.0 net::ERR_ABORTED 400 ・Uncaught ReferrenceError: Grecaptcaha is not defined ``` > ID ): ?> /* この1分を追加してます。(「reCAPCHA」関連) */ > ```
回答: お使いのプラグインは、 * Contact Form 7 * Wp-Members で、reCAPTCHA を使いたいということですよね? そうであれば、reCAPTCHA v3 のキーとシークレットを用意するだけで、テンプレートファイルを編集する必要はありません。 それぞれのプラグインの設定中に reCAPTCHA v3 の設定(キーとシークレットを設定する画面)がありますので、両方のプラグインで **同じ** 「キー」と「シークレット」で設定すれば必要な JavaScript は自動的に追加されるので reCAPTCHA は問題なく動作します。 参考情報 WP-Members ドキュメント * Options の「Enable CAPTCHA」 * Using CAPTCHA Contact Form 7 ドキュメント * reCAPTCHA (v3)