Web活のロゴ

Web制作Output&初心者のための徹底ガイド

【Contact Form7】
サンクスページへの遷移(プラグインなし) #3/3

2023.11.29
はじめに
概要

このプラグインはフォームを構築する上で非常に便利です。自動返信メールの設定が簡単で、とても人気があります。しかし、このプラグインはサンクスページへの遷移する機能は基本的にできない仕様です。今回はプラグインを使わずに、送信した際にサンクスページへ遷移する方法を解説します。※実装はバックアップを取った上、テスト環境での実装をおすすめします。

スポンサーリンク
※本記事の情報は執筆時点のものであり、閲覧時点では変更されている可能性があります。また、ご利用の環境によっては、本記事の内容が正常に動作しないことがあります。最新の情報については、公式サイトなどでご確認ください。

 

参考サイト

この度の記事を書くにあたり、「じゅうぺいブログ」様のウェブサイトを参考にさせていただきました。特にこちらのページでは、貴重な情報を得ることができ、深い洞察につながりました。じゅうぺい様、素晴らしいコンテンツをありがとうございます。リンクはこちら

サンクスページの作成

まずは固定ページにサンクスページを作成し、コンテンツを記述します。

参考画像

サンクスページの作成

ここではパーマリンクをthanksと記述しています。次に送信ボタンを押した際に、このページに遷移するようにfunctions.phpに以下を記述します。

functions.php

// Contact Form7の送信ボタンをクリックした後の遷移先設定
add_action('wp_footer', 'add_origin_thanks_page');
function add_origin_thanks_page()
{
    $thanks = home_url('/thanks/');
    echo <<< EOC
     <script>
       var thanksPage = {
         24: '{$thanks}'
       };
     document.addEventListener( 'wpcf7mailsent', function( event ) {
       location = thanksPage[event.detail.contactFormId];
     }, false );
     </script>
   EOC;
}
記述の変更が必要なところは以下の2点です。

– 5行目$thanks = home_url(‘/thanks/’);
– 9行目24: ‘{$thanks}’

$thanks = home_url(‘/thanks/’);

こちらの「thanks」は遷移先のサンクスページで設定したパーマリンクを記述してください。

24: ‘{$thanks}’

上記の24というのはcontact form7の投稿IDになります。

少し分かりにくいかもしれませんが、上記のフォームタイトルではなく、応募フォームをマウスオーバーした際に画面下に表示されるpost24を入力することになります。これが投稿IDです。注意点としては、ショートコードのIDではないことを覚えておいてください。

スポンサーリンク

デザインの調整

これでサンクスページに遷移するようになりました。しかし、遷移する際に本来の送信完了メッセージのチラつきが発生してしまうため、このメッセージを非表示にする必要があります。これはCSSでクラスを指定し調整できます。

.wpcf7-form.sent .wpcf7-response-output

上記のクラスを指定することで送信完了メッセージを削除することができます。

/********************************
送信完了テキストの削除
*********************************/
.wpcf7-form.sent .wpcf7-response-output {
  display: none;
}

以上です。こちらはプラグインなしで実装でき、ユーザーアビリティが向上しますのでぜひ実装してみてください。なお、実装にはテスト環境を構築するか、子テーマでの実装とバックアップを取ることをおすすめします。

スポンサーリンク
まとめ
  • Contact Form 7のデフォルト設定ではサンクスページへのページ遷移は行われない
  • プラグインを使用することで上記の設定が可能になる
  • プラグインの使用には互換性の問題も考慮しなければならない
  • プラグインを使用せずにページ遷移を行うことも可能である
  • テスト環境を構築し、子テーマでコードおよびバックアップを取ることが重要である
  • サンクスページの作成→functions.phpにコードを記述→デザインの調整といった流れになる
  • 重要な箇所は、投稿IDの設定とサンクスページのパーマリンクの設定である