on_sent_ok廃止によるContactForm7サンクスページ変更方法

on_sent_okon_submit はContactForm7 5.0から廃止になりました。以前はContactForm7の「その他の設定」に以下を記述しておけばサンクスページへ移動してくれました。

cotactform7
目次

functions.phpにコードの追加

ContactForm7 5.0 からon_sent_okon_submit は利用できないのでContactForm7のカスタムDOMイベントによる方法で対応します。

wp-content\themes\テーマ\functions.php

例1)locationに飛ばし先のURL設定

functions.phpの末尾に次のコードを追加します。

add_action( 'wp_footer', 'mycustom_wp_footer' );
  
function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
    location = 'https://サイトドメイン/contact/thanks';
}, false );
</script>
<?php
}

7行目のlocationのところに飛ばし先のURLを設定します。

ContactForm7のコンタクトフォームより

「その他の設定」タブから「on_sent_ok」の行を削除し、コンタクトフォームの保存を行います。

これで完了です。

例2)location.replaceでブラウザの[戻る]ボタンを利用できないようにする方法

location.replaceはページを移動すると履歴が残らないため、 ブラウザの「戻る」ボタンで前のページに戻ることができなくなります。

functions.phpの末尾に次のコードを追加します。

add_action( 'wp_footer', 'mycustom_wp_footer' );
  
function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
    location.replace(‘https://サイトドメイン/contact/thanks’);
}, false );
</script>
<?php
}

7行目のlocation.replaceのところに飛ばし先のURLを設定します。

ContactForm7のコンタクトフォームより

「その他の設定」タブから「on_sent_ok」の行を削除し、コンタクトフォームの保存を行います。

これで完了です。

例3)【複数対応】特定のコンタクトフォームのみ実行する方法

特定のコンタクトフォームのみ対応したい場合、IDを設定してサンクスページへ飛ばすことができます。

functions.phpの末尾に次のコードを追加します。

add_action( 'wp_footer', 'mycustom_wp_footer' );
  
function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
    if ( '12' == event.detail.contactFormId ) {
        location = 'https://サイトドメイン/contact/thanks';
    }
}, false );
</script>
<?php
}

コンタクトフォームにできるショートコードのidif文のところに設定します。
あとは、同じくlocationのところに飛ばし先のURLを設定します。

ContactForm7のコンタクトフォームより

「その他の設定」タブから「on_sent_ok」の行を削除し、コンタクトフォームの保存を行います。

これで完了です。

on_sent_ok は廃止されます

https://contactform7.com/ja/2017/06/07/on-sent-ok-is-deprecated/

DOM イベント

https://contactform7.com/ja/dom-events/
あわせて読みたい
Contact Form 7 にサンクスページを作ってみる WordPressのプラグイン「Contact Form 7」にフォーム送信後の画面「サンクスページ」を作ってみました。 【サンクスページの作り方】 1. まず固定ページにサンクスペー...
  • URLをコピーしました!
目次