Contact Form 7はお問い合わせフォームを用意するのに、非常に便利なWordPressプラグインです。これまでWordPressを使ったサイトで、このプラグインを入れなかったことは一回もありません。
今回確認用メールアドレスを入力欄として設けなくてはならなくて調べたのですが、意外にいい方法が見つからなかったので、自分で作ってみました。
functions.phpに下記コードを追加(UTF-8で保存すること!)
<?php add_filter( 'wpcf7_validate_email', 'wpcf7_text_validation_filter_extend', 11, 2 ); add_filter( 'wpcf7_validate_email*', 'wpcf7_text_validation_filter_extend', 11, 2 ); function wpcf7_text_validation_filter_extend( $result, $tag ) { $type = $tag['type']; $name = $tag['name']; $_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) ); if ( 'email' == $type || 'email*' == $type ) { if (preg_match('/(.*)_confirm$/', $name, $matches)){ $target_name = $matches[1]; if ($_POST[$name] != $_POST[$target_name]) { if (method_exists($result, 'invalidate')) { $result->invalidate( $tag,"確認用のメールアドレスが一致していません"); } else { $result['valid'] = false; $result['reason'][$name] = '確認用のメールアドレスが一致していません'; } } } } return $result; } ?>
※2015/3/4に修正しました。まつしたさん、情報ありがとうございます!
Contact Form 7の設定画面では次のようなフォームを記述
<p>メールアドレス<br /> [email* your-email] </p> <p>メールアドレス (確認用)<br /> [email* your-email_confirm] </p>
これで確認用メールアドレスが実現できますよ~
はじめまして、確認用メールアドレスのやり方を探していてお邪魔しました。
参考にさせていただいちゃいました。smilkobutaさんすごいです!
ほんとにありがとうございます★
早速使っていただきどうもです。
やっぱり需要あるんですねえ。
はじめまして
ちょうど探していた機能だったので、
早速試させていただきました!!!
開発ありがとうございます!!
が、自分の環境では、
「確認用のメールアドレスが一致していません」
のテキストが表示されず、
<span>タグの赤い枠が表示されるだなので
使用を断念しました。。。
以下、解決の参考になればいいのですが。。。
通常のエラーメッセージは今まで通り、
正しく表示されてます。
両方とも空欄の場合
⇒「必須項目に記入もれがあります。」
両方とも「123」の場合
⇒「メールアドレスの形式が正しくないようです。」
Contact Form 7 は ver2.4.2
wordpress は ver3.0.3
赤枠のソースコード
<span class=”wpcf7-not-valid-tip” style=”display: none;”></span>
Contact Form 7もWordPressも私と同じバージョンですね。
赤枠まで出るのであれば、functions.phpの文字コードがUTF-8になっていなくて、日本語のメッセージがうまく表示できていないなんて事はないでしょうか。
例えばエラーメッセージを「xxx」とかに変えてみてもダメですか?
はじめまして。Wordpress勉強中の者です。
ちょうどこの方法を探していて、こちらのページに辿り着きました。
とても助かりました!
公開していただいて、ありがとうございます。
コメントありがとうございます~!
こんなに需要があるなら、開発元にフィードバックとして投げてみようかな。
宜しくお願いします。
ありがとうございますー。
無事機能追加(あっさり)できました。感謝です。
Pingback: Contact Form 7 | ツボニチ
まさに探していた機能でした!
ありがとうございます!
上記方法にて実装してみたのですが、
メールアドレスが一致していない場合、
「確認用のメールアドレスが一致していません」ではなく、
「null」と表示されてしまいました….
何かご教授頂ければ幸いでございます。
Pingback: ContactForm7の確認用メールアドレスを作る方法あいみん
Pingback: ContactForm7の確認用メールアドレスを作る方法webデザイナー日記
はじめまして。
この機能を実装したく試してみたのですがアドレスが一致しなくても送信されてしまいます。
テーマのfunctions.phpと、プラグインのfunctions.php両方試してみたのですがうまくいかないのでお力を貸して頂けないでしょうか
wordpress ver 3.2.1
contact form 7 ver 3.0.1 です。
宜しくお願い申し上げます。
申し訳ございません。
導入できました。。。
_confirmとするところを_comfirmとしていました。
お陰さまで納得のいくフォームができました。
ありがとうございます。
@kenjiさん
ご報告ありがとうございます。
動いて何よりです!
メールアドレスが一致していない場合、
「確認用のメールアドレスが一致していません」ではなく、
「null」と表示されてしまいます。
解決方法を教えてください。
—–
はじめまして。
すでに、WP初心者さんが挙げておられますが、私も同じようになりました。
Word PressもContact Form 7の扱いも素人です。
会社のHPで至急対応が必要になりました。
初歩的な質問かもしれませんが、ご指導お願いします。_(_^_)_
@mikanさん
Contact Form7の設定画面では、どのようなフォームを設定していますか?
差支えなければ、フォームの内容を教えて下さい。
@smilkobuさま
この度はお世話になります!
お返事いただき、とても嬉しいです★
WPを初めて使うので、このようなサイト作っていただき、本当に助かります。
フォームの設定ですが、以下のように行いました。
よろしくお願いします。_(_^_)_
—–
会社名 (必須)
[text* text-105 watermark “会社名”]
ご住所 (必須)
[text* text-207 10/ akismet:author watermark “郵便番号”] [text* text-518 40/ akismet:author watermark “ご住所”]
お電話番号 (必須)
[text* text-643 15/ watermark “お電話番号”]
お名前 (必須)
[text* your-name akismet:author watermark “お名前”]
メールアドレス (必須)
[email* your-email]
[email* your-email_confirm watermark”確認のため再度ご入力ください”]
ご希望のセミナーにチェックを入れてください
[checkbox* checkbox-581 use_label_element “特別セミナーA” “特別講演” “特別セミナーB” “オープンブース”]
コメント
[textarea textarea-341 watermark “ご自由にお書きください”]
[submit “送信”]
—–
@mikanさん
フォームの内容は問題ないようですので、おそらくfunctions.phpの文字コードがUTF-8になっていないのではないでしょうか。
UTF-8対応のテキストエディタを使うか、WordPress管理画面の[外観]->[テーマ編集]->[functions.php]で直接編集してみてください。
@smilkobuさま
この度は、お世話になりました。
“WordPress管理画面の[外観]->[テーマ編集]->[functions.php]で直接編集”
というやり方で上手くできました!!
これで期日に間に合いそうです。
本当に、本当に、ありがとうございました。 (*^▽^*)ノ
@mikanさん
お使いいただけるようになって何よりです!
Pingback: WordpressのContact Form 7でメールアドレスの確認をする | kou-systems.info
大変あっさり出来すぎてとても感動しました。
ありがたく使用させていただきます。
スグにここに出会えてよかったです
@kachiさん
コメントありがとうございます。
本家にも取り込んで欲しいところですねー。
やり方が分からなかったので助かりました!
ありがとうございます!
使わせていただきます◎
@こぐまさん
ご報告ありがとうございます!
便利な機能を紹介して頂きありががとうございます!
お分かりになればお教え頂きたいのですが、現在、質問項目を変えた二つのフォームを設置しています。
一つ目に設置したフォームでは、問題なく動作するのですが、二つ目に設置したフォームでは、メールアドレスを正しく入力してもエラーメッセージ”確認用のメールアドレスが正しくありません”と表示されてしまいます。
解決方法がお分かりになればお教え頂けませんでしょうか。
すみません!自己解決致しました!
タグの指定が[your-email]で重複していたのが原因でした。
ありがとうございました。
@happyさん
ご報告ありがとうございました!(笑)
こんにちは。まさに探していた機能が簡単に実装できることに感動しています。ありがとうございます!
早速設置したところ、UTF-8fで保存した場合、コンタクトフォームは正常に作動はするのですが、管理画面へのログインページ(wp-login.php)にアクセスしたり、ログイン後、管理画面で何か作業して保存しようとするたび下記のようなエラーが出ます。(けれども保存はできている。)
Warning: Cannot modify header information – headers already sent by (output started at ファイルのパス/wp-includes/functions.php:316 ) in ファイルのパス/wp-includes/pluggable.php on line 876
試しに、ASCIIで保存すると、注意文言が日本語で表示されない代わりにその他は正常に動いています。
お手数おかけしますが、お分かりのようでしたら、ご教授お願いいいたします。
その後、いろいろ試していたら、ASCIIで保存しても同じ症状だということが発覚しました。
正確な情報がお伝えできず、失礼いいたしました。
現在、サブディレクトリにWPをインストールしていて、一階層上のメインURLを入力すれば、サブディレクトリのホームページが表示されるよう、index.phpを書き換えています。
書き換え前
require(‘./wp-blog-header.php’);
書き換え後
require(‘./サブディレクトリ名/wp-blog-header.php’);
このあたりが原因しているのかもと思っています。
なんだか話が難しくなってしまったので、ご面倒でしたら、ご対応いただかなくても大丈夫です。
失礼いいたしました!!
@nonさん
「wp-includes/functions.php」の316行目でレスポンスボディが出力されているというエラーのようですので、そこを確認するといいですよ。
—-
1: <?php
2: // もろもろ
3: ?>
4:
—-
↑のように、4行目に空行があるだけでも、レスポンスボディ(+レスポンスヘッダ)が出力されますので注意し見てみてください。
おっしゃるっ通り、空行削除で無事に解決いたしました!!
助かりました。本当にありがとうございました!
@nonさん
直ってよかった~♪
PHP開発時によく作りがちなバグですよね(^^;
本当に初歩的なミスでお手を煩わせてしまい、失礼いいたしました。
勉強になりました!ありがとうございます!
Pingback: Contact Form 7で確認用メールアドレスの入力フォームを加える方法 - 競技麻雀サークル☆一向聴(いーしゃんてん)
Pingback: 重要リンク - 競技麻雀サークル☆一向聴(いーしゃんてん)
Pingback: contact form 7 アドレスチェック
ありがとうございました!無事動作しました!!
Pingback: Contact Form 7に確認用のメールアドレスを追加してみた | 京都のマンションと不動産
Pingback: Contact Form 7で確認用メールアドレスの入力フォームを加える方法 | HOTEL INDEX
Pingback: Contact Form 7で確認用メールアドレスの入力フォーム | WiLL Home ウィルホーム
Pingback: サイト作成用掲示板 | Chirojournal
まさにこれを探していました!!
ありがとうございます。
ありがたや!!(υ◉ω◉υ)
Pingback: Contact Form 7 でメールアドレスと確認用メールアドレスの整合性チェックを行う【WordPress】 | ホームページ制作(WEB作成)は八戸市(青森)の【北の国ウェブ工房へ】!
はじめまして。こちらの方法をいつもありがたく使わせて頂いております。
Contactform7のアップデートに伴い、いつからか2つのアドレスが一致しなくても警告が出なくなっていたようなので、私のサイトの方でちょっと改造したコードを掲載させて頂きました。
smilkobutaさんの方でも対応されましたら、そちらをご紹介させていただきますので、宜しくお願い致します!
Pingback: Contact Form 7 (ver.4.1) で確認用メールアドレスの入力項目を追加する | WordPressカスタマイズ事典
@まつしたさん
情報ありがとうございました。
WordPressテーマの更新に手間取って、なかなか確認できずにいました。
コードを修正しました。
はじめまして。
@smilkobuさま、@まつしたさま
とても助かりました!!ありがとうございました。