MW WP Formの添付ファイルで送信できるファイルの種類を制限する方法

MW WP Formの添付ファイルで送信できるファイルの種類を制限する方法

MW WP Formの添付ファイルで送信できるファイルの種類を制限する方法

MW WP Formで作成したフォームからファイルを送信する際に、添付できるファイルの種類(拡張子)を限定する方法をご紹介いたします。

画像のみを送れるようにしたい時などに役立ちます。

MW WP Formの添付ファイルで送信できるファイルの種類を制限する方法

フォーム作成画面にあるバリデーションルールで制限する方法

MW WP Formには、添付ファイルの種類を制限する「拡張子制限」というバリデーションが用意されています。この機能を使えば、簡単に添付ファイルの種類を制限することができます。

フォーム作成画面でバリデーションルールを追加し、「拡張子制限」に限定したいファイルの拡張子を入力します。

拡張子制限

上記では画像のみに制限していますので、画像以外を送信しようとすると、「許可されたファイルではありません。」とエラーで弾かれます。

許可されたファイルではありません

独自のバリデーションルールを追加して制限する方法

続いて紹介するのは、独自のバリデーションルールを追加して制限する方法です。この方法だとエラーメッセージも変更できるので、複数の添付ファイル制限があって、種類ごとにエラーメッセージを変えたい時は独自のバリデーションルールで対応します。

例えば、nameが”file_img”の添付ファイルでは画像のみ、nameが”file_zip”の添付ファイルではZIPのみに制限したい場合は、適用しているテーマのfunctions.phpに以下のようなコードを追加します。

function my_mwform_filetype_rule($Validation) {
  $Validation->set_rule('file_img', 'fileType', array(
    'types' => 'png,jpeg,jpg,gif,webp',
    'message' => '画像ファイルではありません。'
  ));
  $Validation->set_rule('file_zip', 'fileType', array(
    'types' => 'zip',
    'message' => 'ZIPファイルではありません。'
  ));
  return $Validation;
}
add_filter('mwform_validation_mw-wp-form-xxx', 'my_mwform_filetype_rule');

「mwform_validation_mw-wp-form-xxx」の”xxx”には、対象フォームのフォーム識別子のkey(数字)を入れてください。例えば、フォーム識別子が以下の場合は、「mwform_validation_mw-wp-form-123」とします。

[mwform_formkey key="123"]

それぞれ「$Validation->set_rule」でバリデーションルールを追加しています。typesでは許可するファイルの拡張子、messageではエラーメッセージを指定します。

許可されていないファイルを送信しようとすると、以下のようにエラーメッセージが表示されます。

MW WP Formのバリデーション

あとがき

管理画面からも簡単に設定できるのはありがたいですね。

「画像のみを送れるようにしたい」という要望は結構あるので、MW WP Formを使っている場合は上述したいずれかの方法で対応しています。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です