Snow Monkey Forms v9.0.0 の概要
変更
- 入力画面の表示についても、確認画面や完了画面と同じく REST API で取得して表示する方式に変更
- CSRF 対策の処理をリファクタリング
- ファイルブロックにおいて、ファイルアップロード済みの場合は、解除するまでアップロードボタンを表示しないように変更
不具合の修正
snow_monkey_forms/auto_reply_mailer/is_sended
フックでfalse
を返した場合、必ず例外がスローされるのを修正snow_monkey_forms/administrator_mailer/is_sended
フックでfalse
にした場合、必ず例外がスローされるのを修正- アンインストール時は
wp-content/uploads/smf-uploads
も消えるように修正
入力画面の表示についても、確認画面や完了画面と同じく REST API で取得して表示する方式に変更 / CSRF 対策の処理をリファクタリング
これまでトピックや X で「Snow Monkey Forms でメール送信しようとすると「不正なアクセスです」と表示されて送信ができない」と投稿されることがありました。
Snow Monkey Forms は外部から不正なメール送信に利用されないように、フォームの表示時にトークンを生成・埋め込みして、送信されたときにその生成したトークンとフォームから送られてきたトークンが一致したら正しいアクセス、一致しなければ不正なアクセスと判断して送信を中断するという仕様になっています。
「Snow Monkey Forms でメール送信しようとすると「不正なアクセスです」と表示されて送信ができない」と書かれている方の環境は WP Super Cache 等のプラグインでページキャッシュしていることが多そうだったので、古いトークンが埋め込まれたフォームがキャッシュされることにより「不正なアクセス」が発生しているのかなと考えました。
ということで、普通にフォームを出力して表示すると当然ページキャッシュされてしまうので、普通に表示する形ではなく、ページが表示されたら REST API 通信を行い、フォームの入力画面を取得してきて表示する、という形に変更しました。これでページキャッシュされているページでもちゃんと正しいトークンが埋め込まれたフォームが表示される…はず!
もしアップデートしてもまだ「不正なアクセス」となって送信できないという場合は、サポートフォーラムやオンラインコミュニティで詳しく話を聞かせていただけると大変助かります。よろしくお願いします!