携帯からのメールフォーム文字化け対策
ずっと対応しなきゃと思っていたのだが、ようやくできた。
V-M-Sサイトにはプラグイン「Contact Form 7」をつかったメール送信フォームをいくつか設置していて、問い合わせ受付やイベント開催等に活用している。
この際に悩ましかったのは、携帯電話からアクセスされた場合もこのフォームは利用できるのだが、送信されたメールが文字化けしてしまう、という問題であった。
#幸い(?)、Webメール経由でメール本文を読むことが出来るので、なんとかそれでしのいできてはいたのだが、早急に何とかしなきゃ…とは思っていた。
携帯電話からのアクセスに対応するプラグインとして「Ktai Style」を使用していて、同じ悩みを抱えた方がフォーラムで質問し、「Ktai Style」を開発されたYurikoさんが答えている、この記事でのやりとりを参考にした。
携帯から利用できるコンタクトフォームを教えてください | WordPress.org
結局
(Ktai Style の is_ktai() 関数を使えばいけそう)
ということで…使ったらいけた。
is_ktai()関数を他プラグインで使用する際の手順については、Ktai StyleのドキュメントWordPress Plugins/JSeries » Ktai Style サイト設定とテンプレートの改造の「他のプラグインとの連携」に詳しい。
こちらを参考に、Contact Form 7(wp-contact-form-7.php)に下記を追加した。
#710行あたり
// Ktai ONLY if (preg_match('/^(?:text|textarea)[*]?$/', $type) && function_exists('is_ktai') && is_ktai()) $_POST[$name] = mb_convert_encoding($_POST[$name], get_bloginfo('charset') ,"SJIS");
問題は…バージョンアップの際に忘れないようにしなきゃだわ、なのだが。
このあたりの作法を実は意外としらなかったりする(汗)