【MW WP Form】「全角のみ入力可能」のバリテーションルールを追加する

【MW WP Form】「全角のみ入力可能」のバリテーションルールを追加する

以下のコードを「functions.php」に記載してください。

<?php

/**
 * MW WP From 自作バリデーション
 */
function mwform_validation_rule_alphaNumericsymbols( $validation_rules ) {
    if ( ! class_exists("MW_Validation_Rule_AlphaNumericSymbols") ) {
        class MW_Validation_Rule_AlphaNumericSymbols extends MW_WP_Form_Abstract_Validation_Rule {
            /**
             * バリデーションルール名
             *
             * @var string
             */
            protected $name = 'zenkaku'; //全角
            /**
             * バリデーションチェック
             *
             * @param string $key name属性
             * @param array  $option
             *
             * @return string エラーメッセージ
             */
            public function rule( $name, array $options = array() ) {
        // 追加したいバリデーションの処理
        $value = $this->Data->get( $name );
        if ( ! MWF_Functions::is_empty( $value ) ) {
          if ( !preg_match( '([^\x01-\x7E]|[A-Z])', $value ) ) {
              $defaults = array(
                  'message' => __( '全角でご入力ください', 'mw-wp-form' ),
              );
              $options  = array_merge( $defaults, $options );
              return $options['message'];
          }
        }
            }
            /**
             * 設定パネルに追加
             *
             * @param int   $key   バリデーションルールセットの識別番号
             * @param array $value バリデーションルールセットの内容
             */
            public function admin( $key, $value ) {
                ?>
                <label>
                    <input type="checkbox" <?php checked( $value[ $this->getName() ], 1 ); ?> name="<?php echo MWF_Config::NAME; ?>[validation][<?php echo $key; ?>][<?php echo esc_attr( $this->getName() ); ?>]" value="1" />
                    <?php esc_html_e( '全角', 'mw-wp-form' ); ?>
                </label>
                <?php
            }
        }
    }
    $instance = new MW_Validation_Rule_AlphaNumericSymbols();
    $validation_rules[$instance->getName()] = $instance;
    return $validation_rules;
}
add_filter( 'mwform_validation_rules', 'mwform_validation_rule_alphaNumericsymbols' );