WordPressで送信フォームを作った時の話の続きです。
前回オリジナルテンプレートでMW-WP-Formの送信フォームを作る際に確認画面に遷移しない状態が起きました。
(WordPressオリジナルテンプレートでMW-WP-Formが確認画面に遷移しない)
これはテンプレートにwp_footer();を記述することで解決しました。
管理者からログアウトするとうまくいかない
ところが新たに問題が発生しました。
WordPressのダッシュボードに管理者としてログインしている状態ではうまくいっていたのですが、ログアウトするとうまくいかないのです。
状況を整理します。
WordPressに管理者としてログインした状態
→MW-WP-Formの機能はすべて問題なく使用できる状態
WordPressの管理者からログアウトした状態
→MW-WP-Formの入力画面から確認画面に遷移する際に入力した内容がリセットされる。
確認画面でリセットされた入力フォームが表示される
さらに詳しく状況を書きます。
WordPressの管理者からログアウトした状態だと入力画面に内容入力後確認ボタンを押すと入力内容がリセットされています。
ただし、サイトのアドレス自体は確認画面に遷移した状態になっています。
つまり確認画面に遷移はしているものの表示されているのはリセットされた入力フォームと言う状態です。
その状態で戻るを押すとサイトのアドレスは入力画面にもどります。
表示はリセットされた入力フォームです。
再び確認画面へ遷移させても同じくアドレスは確認画面に遷移しているが表示は入力フォームの状態です。
さらにお試しのために入力フォームが表示された確認画面で送信ボタンを押してみます。
するとちゃんと送信されました。
画面 | 入力画面 | 確認画面 | 完了画面 |
OKの場合 | 入力フォーム表示 | 入力内容が表示 | 完了メッセージ表示 |
現状 | 入力フォーム表示 | 入力フォーム表示ただし送信ボタンはある | 完了メッセージ表示 |
判定 | 〇 | × | 〇 |
つまり確認画面の表示内容がおかしい状況になっています。
MW-WP-Formで表示がうまくいかない場合はリダイレクトが影響してる可能性がありそうです。
調べてみると使用しているオリジナルテンプレートは思いっきり変なリダイレクト設定がありました。
しかし修正しても問題は解決しませんでした。。。
修正しきれていないのかどうなのかとりあえずデフォルトのテンプレートでも試してみようと思い試してみました。
デフォルトのテンプレートでも確認画面で入力フォームが表示されます。
どうやらテンプレートは関係ないようです。
うまくいかない原因はTablePressとの相性?
若干お手上げ状態になってきたのでとりあえず起こっている状況を整理してみました。
・WordPressの管理者からログアウトするとうまくいかない。
・MW-WP-Formの画面のアドレスの遷移はうまくいっている。
・確認画面でリセットされた入力フォームが表示されている。
・テンプレートをデフォルトにしても同じ現象が起こる。
いろいろ悩んでいるときに気づいてしまいました。
TablePressが悪さをしているのではないだろうか。
MW-WP-Formの作成画面で各項目を入力してそのまま表示したら美しくありません。
そこで各項目をそれぞれTablePressという表組を作るプラグインの各テーブルに入れて表示していました。
TablePressでの表示をやめてMW-WP-Formのそのままの美しくない状態で試してみると。
見事に成功いたしました。。。
TablePressで表示をしていたのが原因だったようです。
再びTablePressに戻すと同じ現象が起きるので犯人はTablePressで確定のようです。
管理者でログインしているときとログアウトしているときでTablePressの挙動が違うんでしょうか・・?
とりあえず送信確認もせずにMW-WP-FormのコードをいきなりTablePressに入れて作成していたのが敗因だったようです。
と言うことでTablePressはあきらめてTinyMCE Advancedで表を作ることで落ち着きました。
MW-WP-FormとTablePressの相性が良くないのか私が使っていたバージョンが良くなかったのかはよくわかりません。
とりあえずメモとしてうまくいかなかったバージョンを書いておきます。
WordPress 4.2.2
MW WP Form 2.4.11
TablePress 1.6
まとめ
WordPress管理者としてログイン・ログアウトの状態でプラグインの動きが変わる時がある
プラグインはとりあえずデフォルトの状態で使ってみる(プラグインinプラグインする前に)
MW-WP-FormとTablePressは相性が悪い・・・?