【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' );