Contact Form7で送信後にサンクスページに遷移させる方法(お問い合わせフォームが複数の場合)
前回『Contact Form7』で送信後にサンクスページに遷移させる方法を記載しましたが、サイトによってはお問い合わせフォームが複数あって、それに伴いサンクスページも複数ある場合ありますよね。
そのような場合の遷移方法を紹介します。
オフィシャルのお問い合わせや採用ページ等でサイト内にお問い合わせフォームが複数あったりしますよね。
↓前回の記事はこちら
https://www.sasatatsu-blog.com/web/wordpress/259/
複数のお問い合わせフォームに対応させる手順
各お問い合わせフォーム送信後のサンクスページを作成しておきます
「thanks-○○」などお問い合わせフォーム別にそれぞれ用意しておきます。
functions.phpに遷移させるコードを追加します。
add_action( 'wp_head', 'mycustom_wp_footer' );
function mycustom_wp_footer() {
$thanks01 = 'スラッグ名';
$thanks02 = 'スラッグ名';
$thanks03 = 'スラッグ名';
?>
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
if('ContactForm7のID' == event.detail.contactFormId) {
location = '<?php echo home_url('/'.$thanks01); ?>';
} else if('ContactForm7のID' == event.detail.contactFormId) {
location = location = '<?php echo home_url('/'.$thanks02); ?>';
} else if('ContactForm7のID' == event.detail.contactFormId) {
location = location = '<?php echo home_url('/'.$thanks03); ?>';
}
}, false );
</script>
<?php
}
サンクスページを格納する変数をページ分用意しておきます。
$thanks01 = 'スラッグ名';
$thanks02 = 'スラッグ名';
$thanks03 = 'スラッグ名';
if文でお問い合わせフォームを分岐して、それぞれ送信後のサンクスページを格納した変数を追加します。
if('ContactForm7のID' == event.detail.contactFormId) {
location = '<?php echo home_url('/'.$thanks01); ?>';
} else if('ContactForm7のID' == event.detail.contactFormId) {
location = location = '<?php echo home_url('/'.$thanks02); ?>';
} else if('ContactForm7のID' == event.detail.contactFormId) {
location = location = '<?php echo home_url('/'.$thanks03); ?>';
}
「Contact Form7のID」はショートコードに記載されているIDです。Contact Form7の管理画面で確認できます。
コード内の‘ContactForm7のID’の箇所に各お問い合わせフォームに対応したIDを数字で入れればOKです。
おわりに
お問い合わせフォーム別にサンクスページがあると、ページに記載する内容などを変えたりできますので、利用者の満足度も上げることができると思います。
Googleアナリティクスでサンクスページをコンバージョンにしている場合でも、サンクスページ別にコンバージョンを取得できますので是非利用してみてください。