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」に関する追加文を入れた形でソースをアップ致しますので、何かおかしい部分が
ありましたら、アドバイスをお願い致します。
※<head>~</head>の間に「<script src='https://www.google.com/recaptcha/api.js'></script>」を追加するとの事で
</head>の直前に追加しております。
また、メールのエラーログが存在していないか確認してみようと思い、ローカル環境(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に「<script src='https://www.google.com/recaptcha/api.js'></script>」
を追加し、フォームに「<div class="g-recaptcha" data-sitekey="6LexpYsUAAAAAOsq1baRxIQ2-DuPSUtIYd_
wkkCZ"></div>」を追加した状態。
※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から「<script src='https://www.google.com/recaptcha/api.js'></script>」
を削除し、フォームに「<div class="g-recaptcha" data-sitekey="6LexpYsUAAAAAOsq1baRxIQ2-DuPSUtIYd_
wkkCZ"></div>」、またはを「[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
PHP
1<!DOCTYPE html> 2<!--[if lt IE 7]> 3<html class="ie6" <?php language_attributes(); ?>> <![endif]--> 4<!--[if IE 7]> 5<html class="i7" <?php language_attributes(); ?>> <![endif]--> 6<!--[if IE 8]> 7<html class="ie" <?php language_attributes(); ?>> <![endif]--> 8<!--[if gt IE 8]><!--> 9<html <?php language_attributes(); ?>> 10 <!--<![endif]--> 11 <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#"> 12 <meta charset="<?php bloginfo( 'charset' ); ?>" > 13 <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"> 14 <meta name="format-detection" content="telephone=no" > 15 16 <?php if ( is_home() && !is_paged() ): ?> 17 <meta name="robots" content="index,follow"> 18 <?php elseif ( is_search() or is_404() ): ?> 19 <meta name="robots" content="noindex,follow"> 20 <?php elseif ( !is_category() && is_archive() ): ?> 21 <meta name="robots" content="noindex,follow"> 22 <?php elseif ( is_paged() ): ?> 23 <meta name="robots" content="noindex,follow"> 24 <?php elseif ( trim($GLOBALS["stdata9"]) !== '' && ($GLOBALS["stdata9"]) == $post->ID ): ?> 25 <meta name="robots" content="noindex,follow"> 26 <?php elseif ( is_category() && trim($GLOBALS["stdata15"]) !== ''): ?> 27 <meta name="robots" content="noindex,follow"> 28 <?php endif; ?> 29 30 <link rel="alternate" type="application/rss+xml" title="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?> RSS Feed" href="<?php bloginfo( 'rss2_url' ); ?>" /> 31 <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" > 32 <!--[if lt IE 9]> 33 <script src="<?php echo esc_url( get_template_directory_uri() ) ; ?>/js/html5shiv.js"></script> 34 <![endif]--> 35 <?php if ( is_singular() ) wp_enqueue_script( "comment-reply" ); ?> 36 <?php wp_head(); ?> 37 <?php get_template_part( 'analyticstracking' ); //アナリティクスコード ?> 38 <?php get_template_part( 'st-ogp' ); //OGP設定 ?> 39 <?php get_template_part( 'st-richjs' ); //効果追加 ?> 40 <?php get_template_part( 'a-header-code' ); //ヘッダーに挿入するコード ?> 41 <script src='https://www.google.com/recaptcha/api.js'></script> /* この1分を追加してます。(「reCAPCHA」関連) */ 42 </head> 43 <body <?php body_class(); ?> > 44 <?php if( (!st_is_mobile()) && (trim($GLOBALS['stdata110']) !== '') && (trim($GLOBALS['stdata111']) !== '') ): //動画用ID ?> 45 <div id="st-player"> 46 <?php endif; ?> 47 <div id="st-ami"> 48 <div id="wrapper" class="<?php st_wrap_class(); ?>"> 49 <div id="wrapper-in"> 50 <header id="<?php st_head_class(); ?>"> 51 <div id="headbox-bg"> 52 <div class="clearfix" id="headbox"> 53 <?php get_template_part( 'st-accordion-menu' ); //アコーディオンメニュー ?> 54 <div id="header-l"> 55 <?php get_template_part( 'st-header-logo' ); //サイト名とディスクリプション ?> 56 </div><!-- /#header-l --> 57 <div id="header-r" class="smanone"> 58 <?php if ( isset($GLOBALS['stdata43']) && $GLOBALS['stdata43'] === 'yes' ) { 59 get_template_part( 'st-footer-link' ); //フッターリンク 60 } ?> 61 <?php get_template_part( 'st-header-widget' ); //電話番号とヘッダー用ウィジェット ?> 62 </div><!-- /#header-r --> 63 </div><!-- /#headbox-bg --> 64 </div><!-- /#headbox clearfix --> 65 <?php get_template_part( 'st-header-image' ); //カスタムヘッダー画像 ?> 66 67 </header> 68 <div id="content-w">

回答1件
あなたの回答
tips
プレビュー