MW WP Form:セレクトに「選択してください」を追加する。確認画面や送信メールの調整も。
Tag: MW WP Form
MW WP Formでセレクトボックスを作成した際は登録した項目が値として認識され、「選択してください」という項目を作っても「選択してください」という値を選択したということになります。
それを、表示を「選択してください」・値を「なし」にしたいと思います。
その上で、必須項目について・確認画面・返信メールを確認していきます。
まずは普通に作ってみる
まずは普通に「選択してください」という項目を作り、その挙動を確認。
[mwform_select name="select" children="選択してください,yahoo,google,bing,その他"]
入力画面
確認画面
返信メール
お問い合わせありがとうございました。 よく使う検索サイト:選択してください
確認画面にも返信メールにも「選択してください」と表示されてしまいます。
それと、この状態ではこの項目を必須項目にしても「選択してください」は未選択という扱いにはならないのでそのまま確認画面に進んでしまいます。
送信値と表示値を分離させる
このフォームは表示値と送信値を「:」で分割させることができます。
そして選択肢を「:」で送信値と表示値に分割したとき、送信値をメールで送信にチェックを入れることで返信メールの内容を送信値にすることができます。
[mwform_select name="select" children=":選択してください,yahoo,google,bing,その他" post_raw="true"]
全ての項目で送信値と表示値を設定しないといけないわけではなく、必要なものだけでOKです。
なのでここでは:選択してくださいだけになり、選択してくださいの送信値は空になります。
確認画面
返信メール
お問い合わせありがとうございました。 よく使う検索サイト:
確認画面には「選択してください」と表示されてますが、返信メールは空欄になっています。。
この設定で必須項目にした場合は「選択してください」は送信値が空なためちゃんと未入力が返ってきます。
確認画面の調整
上記設定のまま確認画面も空欄にしたいと思います。
MW WP Formのフックを探したところ、mwform_post_content_raw_mw-wp-form-xxxというものがあったのでこれを使うことにします。
このフックはフォームの内容を表示する前に通ります。
function my_mwform_confirm_select( $content, $data ) { if( $data->get_view_flg() == 'confirm' ) { $content = str_replace( '選択してください', '', $content ); } return $content; } add_filter( 'mwform_post_content_raw_mw-wp-form-100', 'my_mwform_confirm_select', 10, 2 );
mwform_post_content_raw_mw-wp-form-xxxのxxx部分はそのフォームのIDが入ります。
引数の$contentにはフォームの内容が、$dataにはその他いろんなデータが入ってます。
$data->get_view_flg() == ‘confirm’で確認画面かどうかを判別しています。
確認画面なら文字列の選択してくださいを空欄に書き換えます。
また、空欄部分を任意の文字列に変換もできますので確認画面にその文字列を出力できます。
$content = str_replace( '選択してください', '未選択', $content );
- Category: Works , WordPress , Plugins
- Tag: MW WP Form