MW WP Formで、送信ボタンを押しても確認画面に進まず、フォーム画面がただリロードされるだけ——原因が見えづらく、地味にハマるトラブルです。
結論から言うと、原因はいくつか考えられますが、見落としやすいのがバリデーションルールが、実際には存在しない項目を参照しているケースです。この記事では、確認画面に遷移しないときにチェックしたい原因と、実際に遭遇した事例の対処法を解説します。
送信ボタンを押しても確認画面に切り替わらず、同じ入力画面が再読み込みされるだけ、という状態です。エラーメッセージが明確に出ないこともあり、どこが悪いのか分かりにくいのが厄介なところです。
確認画面に遷移しない原因は状況によりさまざまですが、次のような点をひとつずつ確認していくと、切り分けがしやすくなります。
「他のプラグインが干渉している」というのはよく挙げられる原因のため、まず疑いがちです。ただ、プラグインを無効化しても直らない場合は、フォームの設定側に原因が潜んでいることが多いです。
実際に遭遇したケースでは、プラグインを無効化しても症状が変わりませんでした。原因は単純で、必須項目に設定していた項目をフォームから削除したあと、バリデーションルールのほうを消し忘れていたことでした。
つまり、存在しない項目を必須項目としてバリデーションルールに残していた状態です。フォーム上には入力欄がないのに「その項目が未入力だ」と判定され続けるため、いつまでも確認画面に進めなかった、というわけです。
対処は簡単で、使わなくなった項目のバリデーションルールを削除するだけです。フォームの項目を削除したときは、対応するバリデーションルールもあわせて見直す——これを習慣にしておくと、この手のトラブルを防げます。
原因の切り分けには、まず「どの項目のバリデーションで止まっているか」を突き止めるのが近道です。フォームの設定画面でバリデーションルールの一覧を開き、そこに並んでいる項目名が、実際のフォームに存在する項目とすべて一致しているかを1つずつ照合してみてください。存在しない項目名が残っていれば、それが原因の可能性が高いです。
このほか、確認画面や完了画面のURL設定に誤りがある場合や、フォームの識別子(key)とショートコードが噛み合っていない場合にも、意図しない挙動になることがあります。あわせて確認しておくとよいでしょう。なお、MW WP Formは現在、開発・サポートが終了しています。既存サイトの保守では今回のような点検が役立ちますが、新規構築ではほかのフォームプラグインも検討するのがおすすめです。
フォームの項目とバリデーションルールは、常にセットで管理するのが安全です。項目を削除・変更したときにルール側の見直しを忘れないようにするだけで、原因不明の「遷移しない」トラブルはぐっと減らせます。