Contact Form 7で送信完了後にサンクスページへ自動リダイレクトする方法【Cocoon対応】

WordPress

要約

WordPress プラグイン「Contact Form 7」でお問い合わせフォームの送信完了後に、サンクスページ(完了画面)へ自動で遷移させる方法を解説します。
初心者でも簡単に実装できるよう、JavaScript + CSS を固定ページに埋め込む方法を中心に、Cocoon テーマでの設定に特化して紹介します。

はじめに

「お問い合わせありがとうございます!」のサンクスページ、ちゃんと作ってますか?

こんにちは、りょうへいです。

WordPress で Contact Form 7 を導入すると、送信後に「メッセージは送信されました」と表示されるだけでページ遷移はありません。
でもこれ、 送信されたか不安になる UI ですよね。

今回は、 サンクスページ(送信完了画面)に自動で遷移させる方法 を、Cocoon ユーザー向けにわかりやすく解説します!


サンクスページを用意しよう

まずは送信後に遷移させる「サンクスページ」を作成しましょう。

手順:

  1. WordPress 管理画面 → 固定ページ → 固定ページを追加
  2. タイトル例:「お問い合わせありがとうございました」
  3. パーマリンク(スラッグ): thanks などに設定
ContactForm7 サンクスページを用意しよう

見た目を整える HTML

<style>
  .thanks-wrapper {
    max-width: 600px;
    margin: 100px auto;
    padding: 40px 30px;
    background: #f9f9f9;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    text-align: center;
  }
  .thanks-wrapper h1 {
    font-size: 28px;
    margin-bottom: 20px;
  }
  .thanks-wrapper p {
    font-size: 16px;
    color: #555;
  }
  .thanks-wrapper a {
    margin-top: 30px;
    display: inline-block;
    padding: 12px 24px;
    background: #3498db;
    color: white;
    text-decoration: none;
    border-radius: 6px;
  }
</style>
<div class="thanks-wrapper">
  <h1>お問い合わせありがとうございました</h1>
  <p>通常1〜2営業日以内にご返信いたします。</p>
  <a href="/">ホームに戻る</a>
</div>
ContactForm7 見た目を整える html ContactForm7 見た目を整える css ContactForm7 サンクスページ表示確認

HTML ブロックでリダイレクト+ CSS を設置

初心者におすすめなのは、 固定ページ内の HTML ブロックに直接コードを埋め込む方法 です。

手順:

  1. お問い合わせフォームを設置している固定ページを編集
  2. 「カスタム HTML」ブロックを追加
  3. 以下のコードをコピペして貼り付け
<style>
  /* 成功時だけ完了メッセージ(枠)を非表示にする */
  .wpcf7-form[data-status="sent"] .wpcf7-response-output {
    display: none !important;
  }
</style>

<script>
  document.addEventListener(
    "wpcf7mailsent",
    function (event) {
      location.href = "https://example.com/thanks";
    },
    false
  );
</script>

🔁 https://example.com/thanks は自分のサンクスページ URL に変更してね!

ContactForm7 カスタム HTML リダイレクトjs追加
モチベル
HTML ブロックに貼るだけなら簡単だね!
りょうへい
うん、テーマ編集や PHP は触らずに済むから安心だよ

メッセージが一瞬表示される問題を解決

送信完了時、Contact Form 7 は .wpcf7-response-output に「メッセージは送信されました」という文言を表示します。

仮にこの文言を空にしても、 枠だけが表示される現象 が起こります。

ContactForm7 枠だけが表示される

解決策:CSS で枠ごと非表示に!

.wpcf7-form[data-status="sent"] .wpcf7-response-output {
  display: none !important;
}
ContactForm7 カスタムCSSに追加 ContactForm7 枠が表示されない

これなら 成功時だけ非表示 になり、エラー時のメッセージはちゃんと表示されます。


よくある質問(Q&A)

Q. サンクスページが表示されず、元のページのままです…

A. リダイレクト用の JavaScript が正しく動作していない可能性があります。ブラウザの JavaScript が無効になっていないか、HTML ブロックにコードが正しく貼られているか確認してみてください。

Q. 複数のフォームを使っていて、それぞれ違うサンクスページに遷移させたいです

A. event.detail.contactFormId を使えば、フォームごとにリダイレクト先を変えることが可能です。

<script>
  document.addEventListener(
    "wpcf7mailsent",
    function (event) {
      const formId = event.detail.contactFormId;
      if (formId === 123) {
        location.href = "/thanks-contact";
      } else if (formId === 456) {
        location.href = "/thanks-request";
      }
    },
    false
  );
</script>

Q. リダイレクトせずに、ページ内でメッセージだけ表示する方法はありますか?

A. Contact Form 7 のデフォルト動作がそれです。今回のようなリダイレクトをせず、完了メッセージだけ表示するだけなら JavaScript の追加は不要です。


テーマ別の補足

Cocoon の場合(本記事の前提)

  • CSS は「外観 → カスタマイズ → 追加 CSS」でも設定可能
  • JavaScript は HTML ブロックに貼り付けで OK

その他のテーマ(例:Twenty Twenty-Five など)

  • フルサイト編集テーマでは「追加 CSS」項目が存在しないこともあります
  • その場合は、HTML ブロックで <style> を使って対応してください

あわせて読みたい

🔰 これから WordPress でブログを始めたい方は、こちらもチェック!

【初心者向け】ConoHa WINGでWordPressブログを最短で始める手順ガイド
WordPressブログを始めたい初心者向けに、ConoHa WINGの契約からインストール方法までを画像付きで解説。副業やアフィリエイトの第一歩に!

まとめ

  • Contact Form 7 はデフォルトではページ遷移しない
  • サンクスページを作ってリダイレクトすれば安心感アップ
  • HTML ブロックで JS + CSS を直接埋め込むのが初心者におすすめ
  • 成功時のメッセージ表示も data-status="sent" を使えばスマートに制御可能!
りょうへい
実際に実装してみて、これが一番スッキリした方法だったよ

ぜひあなたのブログにも取り入れてみてください!

📢 ブログ更新情報は X(@freecraftlog) でも発信しているので、ぜひフォローお願いします!


関連記事

【初心者向け】Contact Form 7 の導入&カスタマイズ手順をやさしく解説!
WordPress初心者でも簡単!Contact Form 7でお問い合わせフォームを設置する手順と、最低限のカスタマイズ方法をわかりやすく解説します。
【初心者向け】WordPressおすすめプラグイン10選|ブログ運営に必須!
WordPress初心者におすすめの無料プラグインを厳選紹介!ブログ運営に役立つ必須機能を10個まとめました。
【初心者向け】WordPress初期設定まとめ|ブログを始めたら最初にやるべき7ステップ
WordPressブログを始めたら最初にやっておきたい初期設定を7つに厳選して紹介。SEOやセキュリティにも効果的な内容を初心者向けに解説します。

コメント