Contact Form 7でon_sent_okを使用しないで送信完了(サンクスページ)に飛ばす方法!

Contact Form 7を送信後に、サンクスページなど異なるURLの送信完了へリダイレクトさせたい場合、いままではon_sent_okを使用している人が多いと思いますが、別の方法をここでは紹介したいと思います。

スポンサーリンク

on_sent_okは廃止される予定です

そもそもon_sent_okは廃止される予定になっています。いやon_sent_okとon_submitはContact Form 7 5.0で正式に廃止されたようです。なので、今後新しくContact Form 7を使う人は、on_sent_okを使えないかと思います。

フォームが1つだけの場合

functions.phpに下記を入れます。

// contactformサンクスページリダイレクト
add_action( 'wp_footer', 'add_thanks_page' );
function add_thanks_page() {
 
  if( get_the_ID() == '14' ) { /* ページID */
    echo <<< EOD
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
  location = 'https:/shiritai.net/req-thanks/'; /* 遷移先のURL */
}, false );
</script>
EOD;
  }
}

ページIDはお問い合わせフォームなどを使用している固定ページのIDです。
遷移先のURLは、サンクスページのURLです。

フォームが複数の場合

お問い合わせフォームが複数あって、それぞれサンクスページのメッセージも変えたい場合があると思います。
例えば1つは資料請求フォーム、もうひとつはお問い合わせフォームなど。
その場合は下記をfunctions.phpに入れます。

// contactformサンクスページリダイレクト
add_action( 'wp_footer', 'add_thanks_page' );
function add_thanks_page() {
  if( get_the_ID() == '16' ) {/* ページID */
    echo <<< EOD
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
  location = 'https:/shiritai.net/contact-thanks/'; /* 遷移先のURL */
}, false );
</script>
EOD;
  }
  if( get_the_ID() == '14' ) { /* ページID */
    echo <<< EOD
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
  location = 'https://saxophonist.xsrv.jp/prof/req-thanks/'; /* 遷移先のURL */
}, false );
</script>
EOD;
  }
}

固定ページに入れる方法

functions.phpに入れるのが怖い人は、お問い合わせページの中に下記のスクリプトを入れれば良いと思います。
お問い合わせフォームのショートコードの下にでも。

[contact-form- 7 id="10" title="コンタクトフォーム 1"]

~~~~~~~~~~~~↓↓↓↓↓↓↓↓↓

<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
    location.replace('遷移先のURL');
}, false );
</script>

コメントをどうぞ