Categories
WordPress Plugins

Contact Form 7

This post is no longer updated. Move to Contact Form 7 official site.


Download | Plugin Homepage | FAQ | Support Forum

(日本語の説明はこちら)

Summary

screenshot

Just another contact form plugin. Simple but flexible.

  • Supports multiple contact forms.
  • You can customize form and mail contents with simple markup.
  • AJAX submitting with jQuery Form Plugin.
  • Spam filtering with Akismet.
  • Bot prevention with CAPTCHA.

Download and Install

Download the latest release from WordPress.org plugin directory.

  1. Upload whole contact-form-7 folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

Usage

  1. Open admin page [Options] – [Contact Form 7] [Manage] – [Contact Form 7].

    Update: If you are using WordPress 2.7 or greater, you can find the admin page under [Tools] – [Contact Form 7].

  2. Edit default “Contact form 1” or add new and save it.
  3. Copy [contact-form ...] code and paste it into the content of any posts you need the contact form.

FAQ

See Contact Form 7 FAQ

How to customize form and mail contents

You can use “tags” in several fields. Contact Form 7’s “tag” is formed string enclosed in square brackets [].

A tag used in form content is replaced by HTML form control element like <input> or <textarea>.

A tag used in mail template is replaced by user input of element with the same name.

wpcf7-desc

In this picture, a tag [textarea your-message ...] inserted in form content is replaced by <textarea> tag with name="your-message" attribute.

When a visitor input into this <textarea> field and submit, Contact Form 7 generates a mail based on mail template. Since message body field has [your-message] tag, this tag replaced by the user input message.

Tags in form content

You can use the following types of tags in form content.

Type Replaced by Validated as
text <input type="text" /> Any text
text* <input type="text" /> Any text / Required
email <input type="text" /> Email address
email* <input type="text" /> Email address / Required
textarea <textarea> </textarea> Any text
textarea* <textarea> </textarea> Any text / Required
select <select> </select>
select+ <select> </select>
checkbox <input type="checkbox" /> ...
checkbox+ <input type="checkbox" /> ...
radio <input type="radio" /> ...
captchac <img /> CAPTCHA
See How to use CAPTCHA
captchar <input type="text" />
submit <input type="submit" />

The syntax of tag is not so easy. You can use Generate Tag menu under Form textarea to make a tag you need.

I show you some examples of tags.

  • [text your-name 40/100 "John Smith"]

    This tag is replaced with:
    <input type="text" name="your-name" size="40" maxlength="100" value="John Smith" />

  • [email* your-email 60/ id:email]

    <input type="text" name="your-email" id="email" size="60" />

  • [textarea your-message 80x15 "Write message here."]

    <textarea name="your-message" cols="80" rows="15">Write message here.</textarea>

  • [select your-country "China" "India" "other"]
    <select name="your-country">
      <option value="China">China</option>
      <option value="India">India</option>
      <option value="other">other</option>
    </select>

I wrote about tag syntax.

How to use Akismet on Contact Form 7

1. You need Akismet plugin. If you have not activated it yet, activate it first.
2. Open Contact Form 7’s admin page and edit Form text area as:

  • Add akismet:author option to the tag of field which requires sender’s name.
    Example: [text* your-name akismet:author]
  • Add akismet:author_email option to the tag of field which requires sender’s email address.
    Example: [email* your-email akismet:author_email]
  • Add akismet:author_url option to the tag of field which requires sender’s URL.
    Example: [text your-url akismet:author_url]

Once you have activated the Akismet plugin and at least one of the akismet: options is set, Contact Form 7 will send all of a sender’s input as well as any other information related to input activity to the Akismet server. Akismet will then judge whether this input is likely to be spam.

When Akismet judges a message as spam, Contact Form 7 sends no mail and shows a response message with an orange border line (the third example in the picture below).

To make sure the spam filtering is working, send a message with “viagra-test-123” as the sender’s name. If the test is a success, the message will be judged as spam.

Changelog

0.9 (2007/04/30)
Initial release.
1.0 (2007/05/20)
Tag helper.
1.1 (2007/08/02)
File restructuring.
1.2 (2007/08/16)
jQuery Form Plugin introduced.
1.3 (2007/08/26)
New tag type: [select]
1.3.1 (2007/08/26)
Critical bug about JavaScript loading fixed.
1.3.2 (2007/09/03)
Bug fix around jQuery.
1.4 (2007/09/07)
Akismet spam filtering introduced.
1.4.1 (2007/09/11)
Add Spanish and Catalan translations.
1.4.2 (2007/09/13)
Add German translation.
1.4.3 (2007/09/15)
Add Polish translation.
1.4.4 (2007/09/17)
Add French translation.
1.5 (2007/10/07)
CAPTCHA introduced.
1.6 (2007/10/17)
Mail (2) and UI improvement for admin page.
1.6.1 (2007/10/27)
Sidebar widget support.
1.7 (2007/11/27)
New tag type: [select+], [checkbox], [checkbox+] and [radio]
1.7.1 (2007/12/06)
Made wpcf7 variable global. Polish translation updated.
1.7.2 (2007/12/13)
Bugfix. Czech translation added.
1.7.3 (2007/12/23)
New default: and label-first options added.
1.7.4 (2007/12/30)
select+ and checkbox+ tag types removed. multiple and exclusive options added.
1.7.5 (2008/01/26)
Two fixes and include_blank option.
1.7.6 (2008/03/02)
New acceptance tag added.

1,401 replies on “Contact Form 7”

これはブログの文字コードがEUC-JPでも使用できますか?

[…] といったことを考えていました。でもこんなことを考えているヒトって実は多いんじゃないのと思い、フォーラムを眺めているとやはりありました。WordPress.comでは知らない世界、プラグインというのがあって、そこに入れることによって使えるらしいです。で、早速いくつか試してみたところ良い感触。Contact Form ][というのとかかなりシンプルな感じでphpそのものを弄っているうちに何とかなりそうと思いました。 しかしここでふと考えたこと。必要なフォームは一つではなく、DNA、タンパク一次構造、利用報告と今の時点で既に3種類。そして予定ではさらに増える。 その都度フォルダを切ってというのでは混乱は必至だし。 と思ってさらに探すと完璧なまでに欲しいものをつくっているネ申がいました。かなり近所に。忘れていましたがここはWordPressでした。 […]

色々試してみましたが、一番使いやすいですね。
日本語環境の人は、これ以外のものと比較する必要はないかも。

すばらしいプラグインありがとうございます。

質問なのですが、文字コードがEUC-JP環境で、このプラグインを利用しようとしたら、管理画面が英語ばかりで日本語が表示されていないのですが、どうしたら日本語表示になるのでしょうか。

ひろしさん

お褒めにあずかり光栄です。

さて、添付の .po/.mo ファイルは UTF-8 ベースで作っているので EUC-JP の環境だと機能しないと思います。EUC-JP 版をどなたか作ってくれないかと期待してたりもします …

でもまあ日本語化しなくても管理画面のメニュー表記が英語になるだけなので(フォームの文面は日本語で書けますし)、あまり気にしなくてもよろしいのではないかという気がしないでもないです。

ご回答ありがとうございます。

現状EUC-JP の環境だと日本語表示できないんですね。。

このプラグインのさらなるバージョンアップを期待しています。
特に、
 ・もっとフォームタイプを (選択、チェックボックス、日付、URL、電話番号、…)

これができるといろんな用途に利用できるので期待大です。

また、質問なのですが、フォーム部分はHTTPSで通信させて、その他の画面はHTTPで通信させるようなことは可能なのでしょうか。
(個人情報などをフォーム入力する時などSSL通信は必須かと思いますので)

> フォーム部分はHTTPSで通信させて、その他の画面はHTTPで通信させるようなことは可能なのでしょうか。

分けるのは無理です。ぜんぶ HTTPS でやればよろしいかと。

別の方もコメントしていましたが、
プルダウン、チェックボックス、ラジオボタン辺りに
対応してもらえると非常に助かります。

今後のヴァージョンアップの際に考慮お願いします☆

すばらしいプラグインありがとうございます。
複数の問い合わせを作ることができ、重宝してます。

できましたらば
「Option>Recipient address:」で、E-mailだけでなく、フォームを受け取るURLも設定できるとアンケートフォームにもなるかなぁと思います。

でも本当に使いやすいプラグインありがとうございます。

こんにちは。非常に有用なプラグインを公開いただき、ありがとうございます。
現在、PC&ケータイ両対応のサイトを作成しており、MobileEye+というプラグインを用いてケータイ対応しています。
ケータイにおいて、Contact Form 7のページは表示は出来ているのですが、ケータイから送信すると、送られてきたメールが文字化けします。
(サイトはUTF-8ですが、MobileEye+は、Shift-JISに変換しているために、メール送信部分でのエンコードでおかしくなっていると推測しています。)
ContactForm7に該当する話ではないのかも知れませんが、このような場合の対処方法(どこに何を入れたら・こんなプラグインがある)などの情報があれば、アドバイス頂けないでしょうか・・・

shibomb さん、

なかなか厄介な問題ですね。基本的に Contact Form 7 自身はメールの送信を行っていないので、このプラグインで解決できることではなさそうです。どこで解決できるかというと、メールの送信を行っている関数 wp_mail() があるので、この中で mb_convert_encoding() とかを使って文字コードの変換をすればよいと思います。

残念ながらプラグインでそれを実現するものは知らないです。この程度のアドバイスですみませんが、やってみてうまく行ったらぜひ教えてください。

使いやすいプラグインをありがとうございます。
WordPress2.2で無事に動きました。

ですが、Nippon2を有効にしていると件名が
「=?UTF-8?B?44OG44K544OI?=」
などのように化けてしまいます。
無効にしていれば問題なく作動するのですが…
特に気にしなくていいのでしょうか。

それと、Contact Form ][ にあったメールのコピーを送る機能ですが
実装のご予定はありますか?

Tomomi さん、

ですが、Nippon2を有効にしていると件名が
「=?UTF-8?B?44OG44K544OI?=」
などのように化けてしまいます。

メールを読むのに使われているアプリケーションが UTF-8 に対応していないケースが考えられます。古い Outlook Express なんかはそうらしいです。

それと、Contact Form ][ にあったメールのコピーを送る機能ですが
実装のご予定はありますか?

あります。でもしばらく時間がとれないので何ヶ月か先になると思います。

明確なご説明ありがとうございます。

わたしが使っているのはOutlook2003ですが、
なぜか件名だけUTF-8で読んでくれないようでした。
対応してるはずだと思ってたんですが…。

Thunderbirdなどの導入も視野に入れて
もう少し調べてみようと思います。

コピー送信機能はのんびりお待ちしてますね。

季節の変わり目ですのでくれぐれもご自愛ください。

The default width of the name, email, and subject fields is too short. How can you make them longer?

hi, the form seems to only show just on the post page itself. is there a way to get it to show up on the front page with all the recent posts?

jas,

No, I decided it not to show on archive pages since this version, now it’s shown only on singular pages, because I thought it is enough for most users. Do you need it? I’m reconsidering it for future release. Thanks.

hi,
i install your plugin on my localhoste wp and put that cod in latest post but dose not show any things in my page.
just show [contact-form …… ?
can you help me ?

Mohammad,
It sounds odd. It should be replaced by a form even if you use on localhost. If you can test on another host which I can see, I might find out.

Just dropping in to say thanks..I downloaded your release coz I loved your tutorial with images on it..hehe

Looking forward to your next release..

hi.
i install this plugin in unlocalhost !!!!! and it work without any problem. good !
but i have a simple question . what dose ajax do for this plugin ? when i click on send email buttom , the page refreshed and i cant see any ajax effect on page.

Wp-admin?? It doesn’t take Ajax effect on admin pages now. Hmm…
Anyway, it’s interesting that UTF-8 cause. Please tell me the update.

D’oh! I found the cause! I mistook to use script loader and jquery-form was not loaded on WordPress 2.2.x. I haven’t realized it because it works on 2.3 trunk version and I mainly test on the environment.

I released new 1.3.1 in a hurry, so please update and tell me the result. It must be Ajax this time.

Thank you very much for telling me the problem, Mohammad!

I have installed this plugin (which looks great), but I don’t receive an email when the form is filled in. I have installed the plugin in the normal way (by copying the folder to the plugins folder) – is there anything else I need to do?

Thanks!

imsuden,

no, there should be nothing else you need to do if without other problems. Please check these points:

– You see message block under the form? Or no change happens?
– Can you receive other mails from WordPress installed server like comment notification?
– Didn’t anti-spam eat the mail?

If you can tell me the URL you use this plugin, may clue more.

Mohammad,

Thank you for the reporting and I’m glad to hear you like it!

By the way I saw the navideshahadat.com site. It seems that the site loads prototype.js, and my plugin loads jquery.js and uses $ variable, then this causes variable name conflict. I fixed plugin to avoid this conflict on svn trunk. The next version will be released on September. If you need it now, try Development Version, please.

Thank you!

すばらしいプラグインですね。
日本語環境ならこれでキマリでいいと思いました。

しかし…送信前の確認画面(プレビュー)を表示できるプラグインを探しているのですが、無いもんですねぇ(汗
このプラグインが対応してくれるととってもうれしいんですが。

grayf0x さん、

プレビューってのは、フォームに入力するゲスト向けにってことですか? そういえば考えてなかったです。

シンプルにまとめられれば導入してみたいと思います。コメントどうもありがとうございます。

Hi there =o) I have this installed and form comes up just fine on my blog, but when I try to submit a message to test it I get the following error:

Failed to send your message. Please try later or contact administrator by other way.

Any suggestions on how to troubleshoot this issue?

Thank you in advance!
Susie

Susie,

There are two cases possible.

Case 1: Error of sending mail is occurring on your server. In this case, the border color of the error message is red. This is not matter of the plugin. You should check PHP settings and condition of your server.

Case 2: When you enables Akismet option and Akismet judges as spam, you see the same error message. In this case, the border color of the error message is orange. If you use Akismet, see this post and set up your tags with akismet-related options.

I hope this answer help. Thanks.

Thank you so much for your help! It was the Akismet issue! I did that the post said and voila! It worked! Awesome little gadget and I appreciate the quick response!

Thanks again!
Susie

He I have the plugin working and it’s just great!!!

Newbie Question: I can get it to come up in a post but what if I wanted to link to it from a link called Contact us and not show up as a post but just a simple contact us page? that I could link it?

sorry for the dumb question!

-G

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s