ハシウェブ

Web制作、プログラミングに関する情報を発信するブログ

MW WP Formのバリデーションルール使いまわす【WordPress】

MW WP Formのバリデーションルール使いまわす【WordPress】

wordpressプラグイン「MW WP Form」で、メールフォームの設定をfunctions.phpだけで設定していくことができます。
phpの基本がわかっていないと応用は難しいかもしれませんが、コピペだけで使えるサンプルコードをつくりました。

目次
  1. サンプルコード
  2. まとめ

サンプルコード

MW WP Form公式 バリデーションルールにも、個別にサンプルコードがあるのですが、よく使う項目ををまとめて設定していったサンプルコードです。
細かいところはそれぞれの仕様にあわせて変更してください。
これをfunctions.phpに貼り付けます。

【wordpress】MW WP Form カスタマイズ 初期値使いまわし方法」で紹介した中のバリデーションルールは新規追加したときに設定されているだけで、管理画面で変更していくことができます。
今回は管理画面上で設定するものではなくこのコードだけで設定できています。

/**
 * my_validation_rule
 * @param object $Validation
 * @param array $data
 * @param MW_WP_Form_Data $Data
 * $Validation::set_ruleの引数は name属性値, バリデーション名, オプション
 */
function my_validation_rule( $Validation ) {
	//必須項目
	//必須項目に設定したい項目を配列で設定しています。nameを追加、削除します。
	$noEmpties = ['name','kana','email','message'];
	foreach( $noEmpties as $noEmpty ){
		$Validation->set_rule(
			$noEmpty,
			'noEmpty',
			array(
				'message' => '未入力です。'
			)
		);
	}

	//nameを追加、削除します。
	$Validation->set_rule(
		'subject',
		'required',
		array(
			'message' => '必須項目です。'
		)
	);

	//メールアドレス形式
	$emails = ['email','email2'];
	foreach( $emails as $email ){
		$Validation->set_rule(
			$email,
			'mail',
			array(
				'message' => 'メールアドレスの形式ではありません。'
			)
		);
	}

	//メールアドレス一致確認
	$Validation->set_rule(
		'email2',
		'eq',
		array(
			'target' => 'mail',
			'message' => '一致しません。'
		)
	);

	//電話番号形式
	$tels = ['tel','fax','mobile'];
	foreach( $tels as $tel ){
		$Validation->set_rule(
			$tel,
			'tel',
			array(
				'message' => '電話番号の形式ではありません。'
			)
		);
	}

	//同時に設定することはないので仕様に合わせていずれかを設定します。
	$Validation->set_rule(
		'kana',
		'hiragana',
		array(
			'message' => 'ひらがなで入力してください。'
		)
		/*
		'katakana',
		array(
			'message' => 'カタカナで入力してください。'
		)
		*/
		/*
		'kana',
		array(
			'message' => 'ひらがな または カタカナで入力してください。'
		)
		*/
	);
	
	$Validation->set_rule(
		'zipcode',
		'zip',
		array(
			'message' => '郵便番号の形式ではありません。'
		)
	);
	$Validation->set_rule(
		'age',
		'numeric',
		array(
			'message' => '半角数字で入力してください。'
		)
	);

	$Validation->set_rule( 'age', 'betweenn', array( 'min' => 18, 'max' => 60 ) );

	return $Validation;
}

//xxxが投稿IDになります。(管理画面にフォーム識別子として表示されています。)
add_filter( 'mwform_validation_mw-wp-form-xxx', 'my_validation_rule' );

まとめ

何度もつくるメールフォームのバリデーションを簡単につくれ、使いまわすことができます。
ある程度phpの知識があり、クライアントで設定してもらう必要がないときはこちらのほうが簡単になってきます。

フォームカスタマイズに便利!MW WP Formの使い方まとめ【WordPress】

WordPressのメールフォームをカスタマイズする方法を知りたいですか?この記事では、カスタマイズに便利なプラグインMW WP Formの使い方、カスタマイズ方法などをまとめて紹介しています。ぜひご覧ください。