[WP Plugin] mw wp form のエラー表示まわりのカスタマイズに関する Tips

先日利用したフォーム作成プラグインに関する memo.

[markdown]
## 特徴

> * [MW WP Form – 柔軟なカスタマイズ性が魅力の WordPress 問い合わせフォームプラグイン MW WP Form 公式マニュアル](https://plugins.2inc.org/mw-wp-form/)

– フォーム内容のメール送信の他、DB への保存も行える。
– フォーム内容の確認画面を挟むことができる。

## エラー表示まわりのカスタマイズ方法

こちらが分かりやすい。

> * [WordPress:「MW WP Form」のエラー表示周りをカスタマイズする際の備忘録 | NxWorld](https://www.nxworld.net/wordpress/wp-plugin-mw-wp-form-error-customize.html)

– name 属性を `$key`
– バリデーションルールを `$rule`

## Tips

### フック名で利用する key は事前に取得する

フック名にある `xxx` の部分は、自身が作成したフォームの `key` にする必要がある。
サーバ・フォーム毎に異なる `key` が振られるため、本番と開発でサーバを分けている場合には、「__事前に `key` を取得する__」必要がある。

“`php:functions.php
add_filter( ‘mwform_error_message_mw-wp-form-xxx’, ‘custom_mwform_error_message’, 10, 3 );
“`

### バリデーションルールは lower case で指定する

バリデーションルールは、公式を参考に「__camel case ではなく、lower case で指定する__」。
[noEmpty](https://plugins.2inc.org/mw-wp-form/validation-rule/noempty/) は `noempty` となる。

> * [バリデーションルール | MW WP Form](https://plugins.2inc.org/mw-wp-form/manual/validation-rule/)

### フォームを送信でエラーが表示される理由

このようなエラーが表示されることがある。
理由は2通り考えられる。

“`prettyprinted
There was an error trying to send your message. Please try again later.
“`

1. サーバ側のメール送信設定が完了していない。
2. フォームの設定情報が足りない。

2 については、何が必須項目か管理画面上からは読み取れない。
フォーム HTML 以外には、下記が省略できず必須項目であるらしい。

– 管理者宛メール設定 > 送信先(E-mailアドレス)
– 管理者宛メール設定 > 本文

### ファイルアップロードではサーバのファイル容量制限を確認する

サーバ側の [php.ini](http://php.net/manual/ja/features.file-upload.common-pitfalls.php) 等で設定されたファイルより大きなファイルをアップロードしようとすると、下記のエラーが表示されて失敗する。

“`prettyprinted
ファイルのアップロードに失敗しました。
“`

管理画面で追加できるバリデーションルール「サイズ制限」よりも先に判定されるので注意すること。

### 確認・送信ボタンの選び方

フォームタグの追加時にボタンの選択肢が多く迷うが、確認・送信ボタン指定すると画面に応じて切り替わるボタンとなる。
画面のカスタマイズが必要なければ、通常はこれでまかなえる。

各画面のカスタマイズは、こちらが参考になりそうだ。

> * [解決!完了画面にならない…初心者向けMW WP Formの確認画面の作り方 | 神奈川県相模原市のWEB制作(ホームページ)、WEBマーケティング インクループ株式会社](https://incloop.com/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%A7%E3%82%82%E4%BD%9C%E3%82%8C%E3%82%8Bmw-wp-form%E3%81%AE%E7%A2%BA%E8%AA%8D%E7%94%BB%E9%9D%A2%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9/)
[/markdown]