ダミー

【WordPress】MW WP Form 画面遷移しない原因は キャッシュだった

2021年9月11日

MW WP Form はウェブサイトにフォームを設置するWordPressのプラグインです。入力画面 > 確認画面 > サンクス画面 と遷移するので人気があります。Google reCAPTCHA にも対応しています。今回はこの MW WP Form を使ったお問い合わせフォームが突然画面遷移しなくなくなる不具合について解消法をご紹介します。

当記事の環境:WordPress 5.8、MW WP Form 4.4.0、WP Fastest Cache 0.9.3

現象の確認

複数の環境で確認したところ
・スマホはiPhone、Android共に問題はない
・AさんのWindows+Chromeでは正常、BさんのMac+Safariでは正常、それ以外の組み合わせで入力後確認画面に遷移しない
・テストサーバーに移設すると正常
つまり、本番サーバーでかつ特定のOS、特定のブラウザのときに不具合が起ることがわかりました。

フォームのページを WP Fastest Cacheの対象から除外する

調査を進めるうちにキャッシュが影響していると思われたので、フォームページをキャッシュから除外することにしました。当該サイトではキャッシュコントロールのプラグインとして WP Fastest Cache を使っていましたので、以下はWP Fastest Cache での方法となります。

「WP Fastest Cache の設定」の「除外する」タブから、除外するページにルールを追加します。特定のページを除外する場合は「Is Equal To」とそのページのスラッグ(例:contact など)を指定します。確認画面、サンクス画面がある場合はそれらも除外しましょう。

WP Fastest Cache

動作にばらつきがあったワケ

Webのお仕事をしていると「スマホでうまくいかない」「WindowsのIEだけうまくいかない」「Mac Safariだけうまくいかない」ということがよく起こります。
ところが、今回は不具合が起こる組合せがすぐにわからずプチパニックになりましたが、それにはちゃんとワケがあったのです。
落ち着いて WP Fastest Cache の設定を見ると以下のように
「ログインユーザーに対してキャッシュを表示しない」
「モバイルユーザーにデスクトップ版のキャッシュを表示しない」
にチェックを入れています。

例えば特定のブラウザだけ不具合が起こらなかったのは、そのブラウザでWordPressにログインした状態で送信していたから。
スマートフォンで不具合が起こらなかったのはモバイルユーザーにキャッシュを表示しない設定になっていたから。
つまり不具合が起こらなかった環境では元々キャッシュを表示しない設定だったのです。

また、設置したときに送信テストしても、その時点ではキャッシュが効いてないので問題は起こりません。

WP Fastest Cache

参照サイト

当記事では以下のサイト参照いたしました。制作者に感謝いたします。
MW WP Form FAQ