Invisible reCaptcha と Contact Form 7を利用時にサンクスページに遷移しない時の対処 <wordpress>
こんにちは、
Contact Form 7を利用時にInvisible reCaptchaを使いreCaptchaを設定していると
サンクスページに遷移しなくなります。
今日は問題なくページ遷移してくれる様にする方法をご紹介します。
設定するにはContact Form 7の「wpcf7_mail_sent」というアクションフックを利用して実装していきます。
今回は結構強引な方法で送信に成功したらスクリプトタグを吐き出しページを遷移させる、というものになります。
早速コードを見ていきましょう。
1 2 3 4 5 6 7 8 9 10 |
<?php add_action('wpcf7_mail_sent','my_wpcf7_mail_sent'); function my_wpcf7_mail_sent(){ $html = <<<EOT <script> location = '/contact/complete/'; </script> EOT; echo $html; } |
ちなみに複数のフォームを設置している場合は現在のURLから設定できる様にしておきましょう。
例としては下記のような感じ
1 2 3 4 5 6 7 8 9 10 11 |
<?php add_action('wpcf7_mail_sent','my_wpcf7_mail_sent'); function my_wpcf7_mail_sent(){ $url = strpos($_SERVER['REQUEST_URI'],'/contact/') !== false ? '/contact/complete/' : '/recruit/complete/'; $html = <<<EOT <script> location = '$url'; </script> EOT; echo $html; } |
まぁ、ちなみにこの方法ではなくてもデフォルトでContact Form 7はreCaptchaの設定はできるのでそっちを使っても良いと思います。
(自分はcss設定するのが面倒なのと、どうせならログイン画面にも設置したいのでデフォルト機能はあまり使わないですが。)
もしくはサンクスページ自体無くしてしまうのも良いと思います。
2021.07.02修正
NEWS