Contact Form 7の送信完了画面がでない

お手軽にお問い合わせフォームなどを設置できるContact Form 7

添付ファイルも送信でき、シンプルで初心者にも使いやすいフォームプラグインだと思います。

もちろん高機能なPHP・CGIプログラムなんかと比較すると、「あれもこれも欲しい!」という部分が出てくるのですが、その中でももっとも必要性を感じるのが送信完了画面です。

Contact Form 7でオリジナルの送信完了画面を表示する

Contact Form 7の送信後はデフォルトではページの最下段に「送信しました」的なメッセージがjavascriptで出力されるだけ。

わたしも初めに使った時は気がつかず、送信できたかどうか分からなくて何度もボタンを押してしまい、これはいただけないなと思いました。
もちろん、管理者側には実際にメールが届きますし、デバッガなど確認する手段がいくらでもあるわけですが、実はContact Form 7ではちょっとした手順で送信完了画面をつけることができます。

正確には送信完了後、指定のページにリダイレクトさせるというものですが、ユーザビリティを考慮して、実装をおすすめします。

送信完了画面を表示するためのスクリプト

まずは投稿でもページでも構いませんので、送信完了ページを作成します。
この場合はhttp://example.com/thanks/としました。

続いて、Contact Form 7のフォーム設定の最下段「その他の設定」に下記記述を記入します。

※locationにはあらかじめ作成した送信完了ページのURLを入力します。

送信確認画面がうまく表示されないときは

このように簡単な手順でOKなのですが、意外にもうまくいかない方が多いようです。
Contact Form 7での送信完了画面の表示ができないという方は下記をチェックしてみてください。

全角文字が含まれていないか

まず、追記したスクリプトに全角文字が含まれていないか確認してください。

いくつかこの手法について説明があったサイトを見てみたのですが、その中に全角が含まれているものが見受けられました。
ありがちな話ですが、やっぱり注意が必要ですね。

ヘッダーにWordPress関数が読み込まれているか

これも結構多いパターンですが、お使いのテンプレートにwp_head()というヘッダーに記述されるWordPressの関数がないというもの。
これ自体、すべてのテーマにおいて必須というわけではありませんが、プラグインはこのwp_head()からの出力を前提に作られているものも多く、Contact Form 7もしかりです。
とくに理由がなければ、wp_footer()も足しておきましょう。

これらが該当しない場合は下記のお決まりの手順で原因を突き止めていくしかありませんが、おそらく上記の2点が最も多い理由だと思われます。

→テーマをデフォルトに戻す
→プラグインを最低限にする

ちなみにこの手法はあくまでリダイレクトなので、一瞬javascriputメッセージの画面が表示されます。ですので、「# メッセージが正常に送信された」の部分を「送信完了!」などにすれば、リダイレクト前にちらっと見えてもおかしくはないでしょう。

ついでにフォームの見た目をカスタマイズ

ちょっと味気ないContact Form 7のフォームデザインですが、フォーム作成の左のタグ入力画面には以下みたいな感じでテーブルなどhtmlタグなどを使っても大丈夫ですよ。もちろん送信ボタン画像なども使用できます。

フォローする

WordPressとはなにかもう一度おさらいしてみよう!

コメント

  1. ちーた より:

    header.phpの前に
    wp_head()
    footer.phpの前に
    wp_footer()
    が役に立ちました!

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


× 八 = 32

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">