問い合わせデータカラムの並び替え機能や新しいフォーム要素の追加を行った MW WP Form 2.8.0 を公開しました。

主な更新内容は下記の通りです。

  • スラッグでのフォーム呼び出しのサポート
  • フィルターフック mwform_inquiry_data_columns-mwf_xxx の追加
  • フィルターフック mwform_upload_file_keys_mw-wp-form-xxx の追加
  • フィルターフック mwform_upload_dir_mw-wp-form-xxx および mwform_upload_filename_mw-wp-form-xxx で渡される引数に name 属性値を追加
  • カスタムメールタグを画面表示するショートコードを追加
  • 一部の docx、xlsx、pptx がアップロードできないことがある不具合を修正
  • フィルターフック mwform_upload_filename_mw-wp-form-xxx で返したファイル名(拡張子含まず)に拡張子が自動付与されない不具合を修正
  • メール内容に {画像のname}{ファイルのname} と書いたときにファイルの URL に変換されるように変更(ただし、データベースに保存するが有効な時のみ)
  • datepicker の js 属性において、オプションのプロパティ名をダブルクォーテーションで囲むことを(一応)必須に変更
  • フォームのトークン名を変更
  • (2.8.1)最小画像サイズバリデーションを追加
  • (2.8.1)最大画像サイズバリデーションを追加

スラッグでのフォーム呼び出しのサポート

これまで、フォームの呼び出しは [mwform_formkey key="10"] のようにフォームの Post ID による呼び出ししか行えませんでした。2.8.0 からは、フォームのスラッグでの呼び出しが可能になります。フォームの編集画面において、スラッグはデフォルトでは表示されていませんが、右上の「表示オプション」から設定を変更することで確認できるようになります。

[mwform_formkey slug="フォームスラッグ"]

この機能は GitHub で @nojimage さんにプルリク頂きました。ありがとうございます!

フィルターフック mwform_inquiry_data_columns-mwf_xxx の追加

データベースに保存された問い合わせデータの一覧、詳細ページ、CSV に出力されるカラム名を変更したり、並び替えたり、非表示にしたりすることができるフィルターフックです。詳しい使い方は mwform_inquiry_data_columns-mwf_xxx のページでご参照ください。

フィルターフック mwform_upload_dir_mw-wp-form-xxx および mwform_upload_filename_mw-wp-form-xxx で渡される引数に name 属性値を追加

これまで、フィルターフック mwform_upload_dir_mw-wp-form-xxxmwform_upload_filename_mw-wp-form-xxx では画像やファイルを送信した要素の name 属性が把握できませんでした。2.8.0 からはフックの引数で name 属性が取得できるので、特定の要素から送信された画像のみ別のディレクトリに保存する、のようなことが可能になりました。

カスタムメールタグを画面表示するショートコードを追加

フィルターフック mwform_custom_mail_tag_mw-wp-form-xxx でフォーム要素が存在しなくてもメール内容に書いた {キー} を何らかの値に変換してメール送信したりデータベースに保存することができますが、これを画面にも表示できるショートコードを追加しました。

例えば、入力画面で入力させた会員番号に紐づく情報を確認画面で表示させたり、メール送信・データベース保存したりすることが可能になりました。詳しくは mwform_custom_mail_tag をご参照ください。

datepicker の js 属性において、オプションのプロパティ名をダブルクォーテーションで囲むことを(一応)必須に変更

これまで [[mwform_datepicker name="datepicker" js="minDate: +1"]] のような指定ができていましたが、これだと PHP 側でごにょごにょすることが難しかったため、正しいフォーマットで記入することを必須にしました。下記のようになります。

[[mwform_datepicker name="datepicker" js='"minDate": "+1"']]

ただ、これを本当に必須にしてしまうと 2.8.0 未満のユーザーさんの datepicker に相当なダメージを与えてしまいそうだったので、一応、内部的に js 属性をパースして正しいフォーマットに自動変換するような仕組みをつくりました。なので特に書きなおさなくてもほとんどの場合で正しく動作すると思います(多分)。2.8.0 にしたら js 属性が効かなくなった!という場合はフォーラムGitHub の issue でお知らせください…。

ショートコードの codex みてたら、そもそも属性値にシングルクォーテーションやダブルクォーテーションを含めないほうが良いと書いてあったので、ここで datepicker のオプションを指定されるというのがそもそも NG だった気がしないでもない…)

画像サイズバリデーションの追加

画像の最小サイズ、最大サイズの指定ができるバリデーションを追加しました。コードからこのバリデーションを追加する場合のサンプルコードは minimagesizemaximagesize をご参照ください。