Tips

送信後に異なる URL にリダイレクトさせるには

まず、これから書こうとしている内容は 99.99% のユーザーにとって必要のないものであり、実際、使用を推奨しないものだということを始めにお断りしておきます。これは 0.01% のユーザーを対象に書いていますので、必要がなければ無視して構いません。
ご存じのように、デフォルト設定の Contact Form 7 はフォーム送信後にそのフォームの URL と同じ URL にリダイレクトします。ところが、非常にまれなケースですが、これを変更して送信後に異なる URL に対してリダイレクトさせるようにする必要が生じるかもしれません。ここでは、そのような動作を実現するための Contact Form 7 の設定方法について説明します。

定数指定で動作を制御する

Contact Form 7 の動作を制御するためのいくつかの定数が用意されています。
定数を定義するのに最も適した場所は wp-config.php ファイルです。define(‘XXX’, ‘xxx’); のような定数を定義している行がすでに多数あるのに気づくでしょう。それらの行の後にさらに行を追加することができます。なお、最後の行より後ろに追加すると機能しませんので、それより前に追加してください。

特別なメールタグ

時にはコンタクトフォーム経由でユーザーが送信した内容以上の情報を知りたい場合もあるでしょう。例えば、何らかのセキュリティ上の必要のために送信元の IP アドレスを知りたい場合があるかもしれません。Contact Form 7 はそのような目的のためにいくつかの特別なメールタグを用意しています。これらの特別なメールタグはメッセージ本文やその他のメールセクションの項目に挿入して使うことができます。

コンタクトフォームを他の言語で使うには

デフォルトの状態では Contact Form 7 は英語でコンタクトフォームを表示しますが、Contact Form 7 には 40 以上の言語の翻訳が同梱されており、それらを使うことで簡単に他の言語のコンタクトフォームを作成することができます。それから、Contact Form 7 の管理パネルの言語を変更することも可能です。

Cc、Bcc、その他のメールヘッダーを追加するには

Contact Form 7 には To (宛先)、From (送信元)、Subject (件名) のメールヘッダを指定する設定項目があります。これに Cc や Bcc のヘッダーを追加したいと思ったことはありませんか? そんな時はメールとメール(2)両セクションにある追加ヘッダー項目を使いましょう。

パイプを使って送信先を選択可能に

あなたが会社のサイトのウェブマスターになった場面を想像してください。そのサイト上に、送信者が宛先を選択できる仕組みのコンタクトフォームを設置することになったとしましょう。わかりやすい例として会社の CEO (ceo@example.com)、営業担当(sales@example.com)、サポート担当(support@example.com) の3つから宛先を選択できることにします。

応答メッセージボックスを好きな位置に設置する

ブログの訪問者がコンタクトフォームで送信すると、その訪問者は「あなたのメッセージを送信しました」とか「入力内容に不備があります」といった Contact Form 7 からの応答メッセージを目にすることになります。これは時々ユーザーから指摘を受けることですが、この応答メッセージを表示する位置がよくないために、訪問者がたびたびこのメッセージを見落としてしまうのだそうです。

フォーム送信を Google Analytics でトラッキングする

もしあなたが Google Analytics を使ってサイトのトラフィックを分析しているなら、コンタクトフォーム経由の送信もトラッキングしたいと思うことでしょう。Contact Form 7 はこの種のトラッキングをとても簡単に行うための機能を備えています。この記事ではその方法について紹介します。

どうして私のコンタクトフォームは AJAX っぽく動かないのか?

Contact Form 7 は AJAX による送信をサポートしています。ですから、ちゃんと設定された Contact Form 7 のコンタクトフォームは下のデモフォームのように動くはずです。好きなように入力して送信を試してみてください。

必要な場合だけ JavaScript とスタイルシートをロードさせるには

デフォルトの設定では、Contact Form 7 はその JavaScript と CSS スタイルシートをすべてのページにロードします。きっと、こんな無駄の多いやり方をやめて、コンタクトフォームを含むページにだけロードすればいいのに、と考えていることでしょう。その気持ちはよくわかりますが、技術的な困難があって、ページをロードする時点でそのページがコンタクトフォームを含んでいるかどうかを判断することがプラグインにとって難しいのです。ともあれ、多少状況を良くするような方法を提示することならできなくもありません。