Contact Form 7 Multi-Step Formsプラグインを使用して、チェックボックスの空欄(null)を受け取り、メールで送付する方法(input hidden設定)

結論

チェックボックスと同じ名前で、hiddenを作る
hiddenはチェックボックスの前に配置(空白を無理やり挿入する)

タグの構造としては以下になる。例えばcheckboxの名前が checkbox_name の場合

[hidden checkbox_name]
[checkbox checkbox_name use_label_element "チェックボックス項目A" "チェックボックス項目B" "チェックボックス項目C"]

checkboxは何も選択していない場合ではnullを返す。Contact Form 7の機能である「nullを空白に変換」にContact Form 7 Multi-Step Formsが対応しておらず、メールテンプレートで呼び出された [checkbox_name] がそのままメールの文面に出力されてしまう。
そこでhiddenを前に設定し、値として空白を渡す。もしチェックボックスが選ばれた場合は、空白は上書きされるという寸法。(nullは出力出来ないけど、空白はデータとして扱えるため)

checkboxのnullを、 [hidden checkbox_name] で空白に事前設定するという対抗策。

When checkbox fields are left unchecked they appear as [field-name] in the email. How do I resolve this?

チェックボックスフィールドのチェックを外したままにしておくと、メールに[フィールド名]として表示されます。どうすれば解決できますか?

When checkboxes are not checked they aren’t submitted through the form so the last step of the form doesn’t know the unchecked checkbox field exists. To get around this issue add a hidden form tag like [hidden field-name] to the last step. This way the last step will either submit the previously set value or a blank value.

チェックボックスがチェックされていないとき、それらはフォームを通して送信されないので、フォームの最後のステップはチェックされていないチェックボックスフィールドの存在を知りません。この問題を回避するには、最後のステップに [hidden field-name] のような hidden フォームタグを追加します。こうすることで、最後のステップでは前回設定した値か空白の値が送信されます。

https://ja.wordpress.org/plugins/contact-form-7-multi-step-module/

地味に厄介でQ&Aに書いてある英文翻訳は解決策がよくわからなかったので備忘録メモ。
ボクも確認画面いるかー?派なのだけど、これ好きな人多いんだよな……。

困り人の役に立てば幸い。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください