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})
以上で設定完了です。
※公式ではないので自己責任で設定してください

