やわらかしかっけい

なんでもすぐに忘れてしまう自分のために

コンタクトフォーム7 + reCAPTCHA v3

WordPressのお問い合わせフォームにGoogle reCAPTCHA

reCAPTCHA v3はバックグラウンドで動くので、
ユーザーに絵合わせ(?)させたり、チェックを入れさせたりしなくて良いらしい。

reCAPTHCA登録

Sign in - Google Accounts

Googleログイン状態で、ここからドメインを登録する。

ContactForm7と連携

お問い合わせ > インテグレーション から、
サイトキーとシークレットキーを入力する。

おわり。
contactform7.com

お問い合わせページ以外で読み込まないようにする

このままでは全てのページの右下に、reCAPTHCAバッジが固定で表示されてしまう。
reCAPTCHAにお問い合わせページのURLだけを登録できればよいのだが、それは不可。

なので、お問い合わせページ以外ではreCAPTHCAを読み込まないように
functions.phpにこれを書く。

<?php
function load_recaptcha_js() {
 if ( ! is_page( 'contact' ) ) {
  wp_deregister_script( 'google-recaptcha' );
 }
}
add_action( 'wp_enqueue_scripts', 'load_recaptcha_js' );
?>

参考
mirai-creators.com

Google推奨の、別の方法がある

reCAPTCHAバッジを全てのページで非表示にして、
下記を載せればOKらしい。

This site is protected by reCAPTCHA and the Google
    <a href="https://policies.google.com/privacy">Privacy Policy</a> and
    <a href="https://policies.google.com/terms">Terms of Service</a> apply.

↑を載せた上で、CSSでバッジを非表示にする。

.grecaptcha-badge { visibility: hidden; }

ここに載ってる:Google公式のQ&A

参考
【Google推奨】reCAPTCHAのロゴを非表示にする方法【画像で解説】 | JIKORICH