Snow Monkey Formsにひらがなバリデーションを設定する方法

WordPressのフォーム作成プラグイン「Snow Monkey Forms」は、シンプルで使いやすいフォームです。
ただ、デフォルトだとバリデーションは必須かどうかの設定しかできないので、ひらがなリデーションを追加したいと思います。

TIPS:ひらがなバリデーションはスパム対策に有効です

目次

Hiragana.phpをサーバーにアップロード

下記コードを記述したHiragana.phpを、下記ディレクトリにアップします

wp-content/plugins/snow-monkey-forms/App/Validation/

namespace Snow_Monkey\Plugin\Forms\App\Validation;

use Snow_Monkey\Plugin\Forms\App\Contract;

class Hiragana extends Contract\Validation {

	/**
	 * Validate.
	 *
	 * @param string $value The posted value.
	 * @return boolean True when correct.
	 */
	public static function validate( $value ) {
		if ( is_null( $value ) || '' === $value ) {
			return true;
		}

		if ( ! is_string( $value ) ) {
			return false;
		}

		// ひらがな(\p{Hiragana})・長音(ー U+30FC)・半角スペース・全角スペース(U+3000) のみ(未入力は required に任せる)
		return 1 === preg_match( '/\A(?:\p{Hiragana}|\x{30FC}|[ \x{3000}])+\z/u', $value );
	}

	/**
	 * Get validate error message.
	 *
	 * @return string
	 */
	public static function get_message() {
		return __( 'Please enter in hiragana.', 'snow-monkey-forms' );
	}
}

functions.phpにエラー文を設定

functions.phpに下記を追記して、ひらがなバリデーションの日本語エラー文を設定します

add_filter(
  'snow_monkey_forms/validator/error_message',
  function ( $message, $validation_name, $name, $responser, $setting ) {
    if ( 'hiragana' === $validation_name ) {
      return 'ひらがなで入力してください。';
    }
    return $message;
  },
  10,
  5
);

フォームにひらがなバリデーションを付与する

WordPress管理画面から、フォームの編集画面開きます。
ブロックエディタで「コードエディタ」に切り替え、該当テキスト項目の”validations” に “hiragana”: true を追加します。
(例: {“required”:true,”hiragana”:true})

以上で設定完了です。

※公式ではないので自己責任で設定してください

  • URLをコピーしました!
目次