MW WP Form を一番最初に公開したときの記事(このときは確かまだ野良プラグインだったと思う)の日付が2012年7月となっているので、もうすぐ5年になるようです。当初は PHP も WordPress にもそれほど詳しくなかったというのもありますし、これだけ開発期間が長くなると負債を引きずりながら機能を追加したりしているので、結構コードの見通しが悪くて辛いなぁと思うことが多くなっていました。
先日 WordBench 山口で MW WP Form についてお話させてもらったときに MW WP Form の実行プロセスを全部書き出すということをしたんですけれども、実際に書き出してみるともっとこうしたほうがスマートじゃないかとか、こうしたほうがわかりやすくなるのではないか、みたいなことが見えてきまして、せっかくなのでリファクタリングすることにしました。
2年半くらい前に v2.2.0 でがっつりリファクタリングしたことがあるのですが、このときは内部的にはものすごく大きく変更を入れたので、結構あのフックが使えなくなっているとか、前のバージョンでは動いていたのに動かなくなったとかのメールや書き込みがあったりしました。そういうこともあってもう大きく手を入れるのはやめよう…と思っていたのですが、MW WP Form の機能追加やアドオン開発のお仕事がぼちぼち増えてきており、これは後になればなるほどリファクタリングするのが不可能になるのでは…と感じるようになり、えいやと勢いで再度リファクタリングすることにしました。
ということで、だいたい形にはなってきたのですが、いきなり公式リポジトリにアップデートかけちゃうとまた阿鼻叫喚になる可能性があると思うので一旦事前にお知らせをしておいたほうが良いかなと思った次第。GitHub で v4 を開発中なので、もしお暇のある方やがっつり MW WP Form をお使いの方につきましては、ぜひ開発版でテストをして頂けると嬉しいです。
MW WP Form v4 (開発版) のダウンロードはこちら
影響が大きそうな変更点
なるべく普通に使う分には影響がないようにリファクタリングしているつもりですが、どうにも気にくわなかったり、変更の都合上しかたなかったり、先々のことを考えると変えたほうが良かったりなどでユーザーレベルでも影響がある変更がありますので、それらについてまとめておきたいと思います。
- メール設定が未入力の場合によしなに補完するのを廃止
- [mwform_formkey] をもっと素直にショートコードとして実行するように変更
- リダイレクト処理を簡素化
- CSS、JS の読み込み処理の変更
mwform_after_exec_shortcode
アクションフックを非推奨に変更
- 独自バリデーションルールを追加するとき、
mwform_validation_rules
フィルターフックにフックしなくても良いように変更
詳しくは正式版をリリースしたときに書こうと思いますが、管理者宛・自動返信メールで未入力の項目がある状態で使っている方、フックを使っている方はいきなりアップデートせずにぜひ一度テストをお願いします。なるべく後方互換性を保った状態でリリースしたいと思っていますので、テストしておかしな点があればぜひご連絡ください!