[wp]MW WP FORMで条件分岐2020

前の記事がいい加減古くなってるので現環境でやってみる

目標とする動作を再確認

mw wp formは1ページに1つしか設置できないって制限がある。属性によって入力項目を振り分けたいとしたらフォーム(+固定ページ)を複数用意しなきゃいけない。めんどくさい。一元管理するためにはどうしたもんだという話。

まあ今となっては、ページ単位・フォーム単位で分けたほうが良い気もするけど。一元管理することが念頭にあるのであれば、

  • 各属性に設置する入力項目を全部突っ込む
  • 必須項目はjsで制御
  • 最初に提示する選択肢(select)で表示・非表示を切り替える
  • 確認画面でも表示・非表示を切り替える
  • 送付するメール文も属性によって切り替える

こんな感じで進めていく。

フォーム周りの構築

まずはhtmlでこんな感じに組む。

入力画面

selectの選択内容によってtextareaの表示が切り替わる仕組み。

確認画面

type=”hidden”のvalueを取得して表示の切り替え。
mw wp formは確認画面に移るとinput周りはテキストベタ打ちに置き換わるから、装飾を考えるとdivとかで全部囲んでおいたほうがいいかもというのが分かる。

MW WP FORM

上のサンプル通りに組むとこんな感じになる

valueはいちいち入力するのがめんどいから入れてるだけで、実際はなくていい。

保存してショートコードを控える。

固定ページ(入力画面)

入力画面用の固定ページを作成して、ショートコードとjsを入れ込む。

ぶち込むならこんな感じ

それぞれちゃんとブロックのタイプを切り替えて入力。
まあ実際にやるときはもっと上品にやるけども。

表示するとこんな感じ

固定ページ(確認画面)

同じ

同じショートコードを埋めて、確認画面用のjsを埋め込む。

MW WP FORM(2回目)

前項までに作った入力画面と確認画面のURLを設定する。sslとかドメイン変更とか先のことを考えると相対パスだけ書くのが安心。

メールの設定

今回の肝。
name=”selectType”を踏まえて分岐を作る。

最後の「mwform_auto_mail_raw_mw-wp-form-***」の「***」はショートコードの数値を入れる。

通知メール(管理者に送る)の場合はこう

最後の一行の部分がちょっと違う。
functionの変数名を念の為変えておく。

どちらも送付先の設定はfunctions.phpでは行えないので、「自動返信メール設定」「管理者宛メール設定」の送付先メールは設定しておく。

以上。

前回との比較

こちらの組み方が変わっただけで、mw wp form自体は変わってない感じですね。

シェアする

  • このエントリーをはてなブックマークに追加