どなたかが開発したWordpressのテーマで、MW WP Formの実装を行ったのですが、どうも思い通りに遷移しない。さらに、ページ遷移をしない状態にしても、cooikeが消え無いなど、どうも挙動がおかしく、あれこれ悩みました。で、ググって最終的にたどり着いたのが、footer.php内にwp_footer()が埋め込まれていなかったという単純なミスでした。
自分で作ったものなら、当たり前に埋め込むwp_footer()ですが、他の方が作ったものを触るときは、確認するべきでした。
それと、こちらのWordpressではWP fastest cacheを使っていたのでcookieのキャッシュが効かないように
WP Fastest Cache の設定>除外する>Cookiesを除外する
で「mw-wp-form_」を追加して、こちらをキャッシュしないようにしました。
reCAPTCHA for MW WP Formにバグ
また、spam対策としてreCAPTCHA for MW WP Formをインストロールしたのですが、こちらでは「Invalid reCAPTCHA Secret key.」となって、遷移できないというトラブルに遭遇しました。
サイトキーとセキュリティキーを取得し直したり、色々トライしても同じ状態です。で、念の為、ソースコード確認すると、セキュリティキーを記述するべき場所にサイトキーが格納されていました。単純ミスすぎる〜(# ゚Д゚)
早速プラグインのソースを確認するとEnqueueController.phpで致命的なバグを見つけました。
$data = <<< EOL
grecaptcha.ready(function() {
grecaptcha.execute('$site_key', {
action: 'homepage'
}).then(function(token) {
var recaptchaResponse = jQuery('input[name="recaptcha-v3"]');
recaptchaResponse.val(token);
});
});
EOL;
$site_keyとありますが、ここにはシークレットキーを埋め込むべきなので、$secret_keyとするべきです。加えてoptionから取得してくるコードも抜けていて、この上に
$secret_key = esc_html($option[‘secret_key’]);
を追加したら正しく動作しました。

MW WP Formがよく出来ているプラグインなので安心して使いましたが、reCAPTCHA for MW WP Formに関しては失格です。
コードに書き換えて納品しても良かったのですが、プラグインはアップデートされることがあるので、今回はreCAPTCHAのコードを直書きしました。
<script type='text/javascript' src='https://www.google.com/recaptcha/api.js?render=6LeETdseAAAAADp--gtM9n_Pxxxxxxxxxx' async charset='UTF-8' id='recaptcha-script-js'></script>
<script type='text/javascript' id='recaptcha-script-js-after'>
grecaptcha.ready(function() {
grecaptcha.execute('6LeETdseAAAAAJTPXnT1NlN_Wxxxxxxxxxx', {
action: 'homepage'
}).then(function(token) {
var recaptchaResponse = jQuery('input[name="recaptcha-v3"]');
recaptchaResponse.val(token);
});
});
</script>
※キーは一部書き換えています。