ContactForm7のエラーメッセージを個別に変更する方法です。当初設定が上手く行かなかった部分もあったので参考までに。

ContactForm7のエラーメッセージを個別に変更する方法と注意点

,

ContactForm7のエラーメッセージを個別に変更する方法です。当初設定が上手く行かなかった部分もあったので参考までに。

ContactForm7のエラーメッセージを個別に変更する方法です。当初設定が上手く行かなかった部分もあったので参考までに。

functions.php に記述するコード

functions.php に記述するコードは以下のような感じです。

function wpcf7_validate_jpn_check( $result, $tag ) {
	$val1 = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-subject']));
	$val2 = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-email']));
	$val3 = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-message']));
	if (empty($val1)) {
		$result->invalidate( 'your-subject', 'ご用件を選択してください。' );
	}
	if (empty($val2)) {
		$result->invalidate( 'your-email', 'メールアドレスを入力してください。' );
	}
	if (empty($val3)) {
		$result->invalidate( 'your-message', 'お問合せ内容を入力してください。' );
	}
	return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_jpn_check', 10, 2 );

注意点

尚、注意点ですが、ContactForm7側の入力必須を解除しないと、管理画面側の指定が優先されて記述したエラーメッセージが出ないようです。

入力制限との組み合わせ

以前のフォームを日本語限定にするコードと組み合わせるとこんな感じになります。

function wpcf7_validate_jpn_check( $result, $tag ) {
	$val0 = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-name']));
	$val1 = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-subject']));
	$val2 = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-email']));
	$val3 = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-message']));
	if (!empty($val0)) {
		if (!preg_match('/[ぁ-ん]+|[ァ-ヴー]+|[一-龠]/u', $val0)) {
			$result['valid'] = false;
			$result['reason'] = array('your-name' => '日本語で入力してください。');
		}
	}
	if (!empty($val1)) {
		if (!preg_match('/[ぁ-ん]+|[ァ-ヴー]+|[一-龠]/u', $val1)) {
			$result['valid'] = false;
			$result['reason'] = array('your-subject' => '日本語で入力してください。');
		}
	}
	if (!empty($val3)) {
		if (!preg_match('/[ぁ-ん]+|[ァ-ヴー]+|[一-龠]/u', $val3)) {
			$result['valid'] = false;
			$result['reason'] = array('your-message' => '日本語で入力してください。');	
		}
	}
	// ブランクの場合の警告をカスタマイズする場合は、コンタクトフォームの必須を解除する
	if (empty($val1)) {
		$result->invalidate( 'your-subject', 'ご用件を選択してください。' );
	}
	if (empty($val2)) {
		$result->invalidate( 'your-email', 'メールアドレスを入力してください。' );
	}
	if (empty($val3)) {
		$result->invalidate( 'your-message', 'お問合せ内容を入力してください。' );
	}
	return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_jpn_check', 10, 2 );

上手く実装できない場合はオンラインでのサポートもお受けしていますので気軽にご相談ください。

自己紹介

松田 大と申しますm(_ _)m
インディーズでミュージシャンをやっていたのですがいつのまにか…

とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。

「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています。

現在勤めているETBS合同会社では、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。

現在、代表兼二児のパパ。子育てを通じて、こどもたちにもプログラミングの楽しさに触れてほしいと思うようになり、「 こどもICTかつしか教室 」を開講中。最近は童心に帰り、簡単なゲーム制作なんかも楽しんでいます(^_^)。

コメントを残す

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