【備忘録】Invisible reCaptchaとコンタクトフォーム7でサンクスページにリダイレクトしない問題を解決

■問題点
コンタクトフォーム7にreCaptchaの設定をする際にこれまでは「Invisible reCaptcha」プラグインを使って問い合わせページにのみreCaptchaを表示させていたところ、問い合わせ後にサンクスページにリダイレクトしない問題が起こった。どうもreCaptchaが邪魔をしているみたい。

■解決方法
コンタクトフォーム7でreCaptchaを設定し、function.phpで問い合わせページ以外にはreCaptchaを表示させない設定にすると解決した。
以下、function.phpでの設定。

add_action( 'wp_enqueue_scripts', function() {
    if ( is_page( 'contact' ) ) {
        return;
    }

    wp_deregister_script( 'google-recaptcha' );
}, 100, 0 );

この方法だと、ajaxが動いてリダイレクトされた。
リダイレクトはコンタクトフォームに以下を追記。

<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
    location = 'https://◯○.com/thanks';
}, false );
</script>

1点。
そもそもはコンタクトフォームでreCaptchaを設定するとすべてのページにreCaptchaが表示されてしまい無駄に表示速度が遅くなるので、「Invisible reCaptcha」で特定ページのみにreCaptchaを表示させていた。
で、今回はfunction.phpでreCaptcha表示場所を制御する形にしたが、コンタクトフォームでreCaptchaを設定した場合はwordpress管理画面のログインフォームにはreCaptchaはでないので、、結局「Invisible reCaptcha」でログインフォームにreCaptchaを表示させる必要があった。

以上!