MW WP Form:カタカナバリデーションで空白を含むとエラーを返すので半角・全角スペースを許可するように修正
「mw wp form」お問い合わせフォームのプラグインは導入も簡単で設定もわかりやすくて便利なので利用させていただいてます。
ただ、どうしても欲しい機能と若干の不具合があるので修正・追加しました。
例えば以下の2点です。
- 名前の「カタカナ」入力バリデーションで、文字列中に“半角・全角スペース”を含むとエラー対象となる。
- スパム対策のための画像認証を簡単に組み込めない
今回は“1.”の記事です。
mw_validation.phpファイルを修正
ファイルの場所はテーマフォルダ内『wp-content/plugins/mw-wp-form/system/』です。
修正箇所は「mw_validation.php」ファイル内の正規表現で条件分岐を行っている207行目あたりです。
以下の通り、半角・全角の空白を許可するようにします。
if ( !preg_match( '/^[ァ-ヾ]+$/u', $value ) ) {
↓↓↓↓↓↓↓↓↓上記を以下の正規表現で実行するように修正↓↓↓↓↓↓↓↓
if ( !preg_match( '/^[ァ-ヾ\s ]+$/u', $value ) ) {
以下のようなソースになるかと思います。
Line:191
/**
* katakana
* 値がカタカナ
* @param string $key name属性
* @param array $options
* @return string エラーメッセージ
*/
public function katakana( $key, $options = array() ) {
$value = $this->getValue( $key );
if ( !is_null( $value ) && !$this->isEmpty( $value ) ) {
if ( is_array( $value ) ) {
$value = implode( $this->getSeparatorValue( $key ), $value );
}
//if ( !preg_match( '/^[ァ-ヾ]+$/u', $value ) ) {
if ( !preg_match( '/^[ァ-ヾ\s ]+$/u', $value ) ) {
$defaults = array(
'message' => __( 'Please enter with a Japanese Katakana.', MWF_Config::DOMAIN )
);
$options = array_merge( $defaults, $options );
return $options['message'];
}
}
}

管理画面の左ナビからMW WP Form内で各フォームの『フォームを編集』画面へ行き、バリデーション設定内にあるセレクトボタンで「必須項目」と「カタカナ」を選択します。

以上で終了です。
いつも読んでくれてありがとね!


