Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

MW WP Formカスタマイズ

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

MW WP Form - 柔軟なカスタマイズ性が魅力の WordPress 問い合わせフォームプラグイン MW WP Form 公式マニュアル

WordPressで、MW WP Formのカスタマイズを行う際、引っかかった点をまとめておく。

メールの内部転送

MW WP Formとは無関係なのだが、メール受信確認で引っかかったので。

メールを転送している場合に注意が必要。

  • 外部からのメール→ 受信サーバー →さくらサーバー

という経路に関して、例えばさくらのSMTPサーバーから送信すると

  • さくらからのメール →(内部転送) →さくらサーバー

となり、外部の受信サーバーを通さず内部のやり取りで済ませる仕組みになっている。これは別にさくらに限らない。

なので、Gmailでさくらサーバーのメールを送受信しているような場合、いくらGmail側を見ていても、さくらSMTPサーバーからのメールは表示されない。さくらWebメールで見ると受信している。

アクションフック、フィルターフックのXXX

アクションフック | MW WP Form

アクションフック名についているXXXは数字に置き換わる。フォームコードが8なら

「mwform_after_send_mw-wp-form-8」のような感じ。これはまあ、気をつけていればわかる。

リダイレクトされる

たとえば固定ページでフォームを付けている場合、「確認ページ」「完了ページ」にそれぞれ固定ページをつける必要がある。

MW WP Formのフォーム設定画面で、4つのスラッグを記入する欄がある。それぞれに固定ページなり記事ページなり、受け皿を用意してあげる必要がある。

例えば確認ページのスラッグがconfirmの場合、フォーム送信後、そのページにジャンプする。そこに固定ページがない場合、WordPressの設定に従って302などでトップページに転送されることがあるようだ。

404にしてくれればいいのだが、おそらくSEOの都合などで404を出したくないのだろうか。302にされると原因の特定が難しい……。

この転送の理由を理解するまでにだいぶ時間がかかってしまった。

送信メールが飛ばない

フォームの設定画面に、自動送信メールの設定ボックスがついている。これらの項目を正しく埋めない場合、何のエラーメッセージもなくメールが飛ばないようになっている。本文を空欄にしているのもだめ。

特にわかりづらいのは「自動返信メール」という意味不明なテキストボックス。これについている注釈も意味不明でつい見落としてしまう。

「自動返信メールに使用する項目のキーを入力してください。 {}は不要です。」

自動返信メールの設定ボックスなのだから「自動返信メールに使用する」は当たり前だし、「使用する」がどのように使用されるのか、まったくこの日本語からは読み取れない。

実際には、このボックスはメールの「To:」に記載される内容を設定する、非常に重要なものだ。

つまり、送信先メールアドレスを入力させるフォームについているname属性、つまりname='some_text'のsome_textの部分を入力する。その際{some_text}にする必要はない。some_textでよい。

正確にはボックスの名称は「自動返信メールの送信先」であるべきだし、注釈は「送信先のフォーム項目のキー(name属性)を入力してください。{}は不要です」とでもあるべきだと思う。