皆様こんにちは。開発部・アニマル部署統括のPです。
今日はWordPressのプラグインMW WP Formについてのお話です。
弊社のお問い合わせページはこちらを使用していますが、弊社の新しいサービス「ITサポートプラン」の紹介ページを公開するにあたり、
紹介ページからお問い合わせページに遷移したときに、問い合わせ項目に「ITサポートについて」が自動で選択されてるといいよね。
ということでほんのちょっと…ほんのちょっとだけですが、ユーザビリティを上げるべく、実装をしてみました。
方法としては問い合わせページにGETパラメータを渡してあげて、その値で処理します。
Javascriptからもできそうですが、MW WP Formにはフィルターフックとして「mwform_value_xxx」が使用可能なのでこちらを試してみようと思います。今回はname=”subject”というセレクトボックスの値を自動的にセットしたいので、お問い合わせページのURLの後ろに
?subject=○○(値)
を付けてアクセスします。
【問い合わせフォーム側の設定】
1 |
[mwform_select name="subject" id="subject" children="ホームページ制作について,動画制作について,デザインについて,ITサポートについて,その他"] |
【functions.phpの設定】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/** * GETパラメーターから初期値を設定する * @param String $value フォームのvalue初期値 * @param String $name フォームのFormのname */ function my_mwform_value($value, $name) { // 今回はname=subjectのセレクトボックスが対象。 // GETパラにsubjectがあればその値を初期値をしてセットする。 if ($name === 'subject' && !empty( $_GET['subject'] ) && !is_array( $_GET['subject'] )) { return $_GET['subject']; } return $value; } // 管理画面から作成したフォームはフック名のxxxにフォームの識別子を設定してください add_filter( 'mwform_value_mw-wp-form-xxx', 'my_mwform_value', 10, 2 ); |
これでGETパラメータ付きでアクセスしてみると、自動的にお問い合わせ項目の値がセットできました。
https://gen-s.jp/wp/contact/?subject=ITサポートについて
注意点としては、
・問い合わせフォーム側で、あらかじめvalue値を設定していると、フックが実行されません。
・また、今回GETパラメータ付きで問い合わせページにアクセスすると、GETパラメータが消えるという事態がおきていました。
ぱっと見、なんかリダイレクトしてるような…と思ったので、確認したところ、原因はURL設定で「入力画面URL」を設定しているとそのURL(GETパラメータなしのURL)へリダイレクトしてしまうようでした。
なのでもしこちらを設定している場合は空欄にしてください。
いやー、MW WP Form便利ですね(‘ω’)
ではでは~
タグ:PHP,Wordpress,プログラマー,技術ネタ
2020.10.01