WordpressのプラグインMW-WPForm、
確認画面に移動しなくて問合せを送信できない
| 2022/01/08
MW-wpformで送信エラー
wordpressで問い合わせフォームというとContact7とmw-wpformの二つがよく使われます。
私はカスタマイズのしやすさからmw-wpformを使ってます。
確認画面や完了画面、エラー画面などを設定できるので開発時にも非常に便利です。
ところが新しく添付ファイルを実装中に不具合に遭遇。
確認画面に遷移すると、一瞬画面が表示されて最初の入力画面に戻ってしまいます。
戻るというよりリセットですね。入力データを全て消えてしまいます。リダイレクトされてしまった感じです。
これはいかん!ということで原因究明。
しかし、調査はしたもののまったく原因わからず・・・しばらくほおって置いたんですが、似たような不具合、リダイレクトされてしまう不具合が別件のフォームを開発中に発生したことを思い出しました。
その時の不具合も今回と同じく確認ボタンを押しても確認画面へ遷移しないというものです。
難航中の不具合に光明が
その時は初歩的なミスでMW_WPFormのURL設定をやってなかったのが原因ですぐに対応できたんですが。
今回もよく考えると不具合の動作がまったく同じなんですね。それでこれはURL設定が問題なんじゃないかと思い当たったわけです。
通常はドメインは必要ないんですが、以前の不具合時には絶対パス入れて解決しました。
なので同じく絶対パスで入れてみました。
そうしたら無事確認画面へ遷移しました。
なぜ相対パスだとだめなのかは不明です。サーバーによっては不具合でなかったりもしますが、ここは絶対パスで入れておく方が安心です。
その他の不具合原因
URLの記述以外でよくある不具合原因として、キャッシュがあります。
当サイトでは「WP-Optimize」をDB管理に使用していますが、キャッシュ制御にも使ってます。
このキャッシュ設定でスマホ専用設定があり、そこをONにしていると確認画面へ遷移しない不具合が起きます。
最初はデフォルトでキャッシュしないページURLに『/contact/』が設定してあるので気にしてませんでしたが、ここも同じく確認画面、完了画面など、それぞれのURLを記述する必要があります。
他にもMW_WPFormの問題としてjQueryがあります。2~3年前までは私もよく使ってましたが、もう今は使ってません。
しかし、MW_WPFormはjQueryを使ってます。なので問い合わせのページだけにjQueryが読み込まれるのがどうもすっきりしないんですよね・・・。
根本的な原因が判明しました。
最初に絶対パスで記述し、不具合を解消したもののなぜ相対パスだと不具合が起きるか原因不明と書きましたが、判明しました。
結局、キャッシュが原因でした。
WP-Optimizeでキャッシュさせないページに、確認画面や完了画面などを絶対パスで設定したのでスマホでも不具合は解消しました。
そこでもしかしてと思い、MW-WPFormのそれぞれのページURL設定を相対パスに戻したところ、ナント不具合は発生しませんでした。
つまり、そもそもはキャッシュすべきでない問合せページをキャッシュしていたため不具合が起きていた。
ところが、最初の方法で解決できたのは、キャッシュの効いた相対パスじゃなくキャッシュされてない絶対パスでアクセスしたので不具合が起きなかったということですね。
本当の原因はMW-WPFormのURL設定ではなく、キャッシュの設定にあったということです。
『MW‐WPFORM確認画面へ移動しない悩み解決』関連のお薦め
GA4でユーザー動向を詳しく調べる
ミルクティーとTransform Rotateは順番が肝心
wordpressPHP8の不具合をCatGPTが怪傑
思いついたら何でも実験。
ページャーを複数設置。
ANDもORも混ぜこぜ検索
PHP8以降の警告文戻り値の型チェックが厳格にへ対応する
MW‐WPFORM確認画面へ移動しない悩み解決
Nullを引数へ渡せない問題をCatGPTが怪傑
レイヤーの重なりを制御する
Information End
このページで紹介しているプログラムやビジュアルなどご依頼いただければ実装を賜ります。
お問い合わせはこちら