【Contact Form7】チェックボックスで選択肢に応じて自動返信を出し分ける方法

今回はContact Form7を使って、チェックボックスの内容に応じて自動返信の内容を出し分ける方法をご紹介します。
例えば、資料A〜Eまで資料が選択でき、AとCを選択したら、自動返信メールにAとCの資料ダウンロードURLが添付されるという場合です。

目次

使用するプラグイン

基本のフォームを作る

Contact Form 7」で基本のフォームを作ります。

確認画面を作りたい時は「Contact Form 7Multi-Step Forms」で確認画面を作ります。(※固定ページにショートコードを埋め込むのをお忘れなく!)

フォームの作成はこちらの記事がとても分かりやすいです。

Tips:確認画面のテキストを変えたい時は、で仕切ると変えられます!

上の画像のように選択肢を「資料A|▪️資料A」と設定すると、入力画面では「資料A」と表示され、確認画面では「▪️資料A」と表示されます。

入力画面
確認画面

このように簡単な装飾をつけたりできます。デフォルトの確認画面は「資料A,資料C,資料E」と,(カンマ)続きで並びます。

条件の設定(入力画面)

お問い合わせ入力画面の方の編集画面に、チェックボックスの選択肢の数分、条件付きフィールドのタグを追加します。(保存を忘れない!)
今回はgroup-1、group-2…と作成していきます。

お問い合わせ入力画面にてそのまま「条件付きフィールド」のタブを選び、選択肢と紐づけます。

条件の設定(確認画面)

お問い合わせ入力画面と同様に、確認画面の設定もしていきます。

まずは通常の確認画面を作成したら(添付画像の青枠部分:[multiform]タグの挿入)、チェックボックスの部分は入力画面と同じコードを確認画面にも作成します(添付画像の赤枠部分:入力画面をコピぺでOKです)。

実際に確認画面に反映した状態は下の画像です。

赤枠部分は後ほどCSSで消すので、一旦そのままで大丈夫です。

確認画面も入力画面同様に条件付きフィールドを設定します(なぜか保存を押すと設定が崩れてしまうことがあるので、正しく設定されるまで複数回保存してみてください)。

確認画面の条件付きフィールド

選択情報の引き継ぎ

入力画面で選択された選択肢の情報を、確認画面に引き継ぎます(確認画面がない場合には必要のない作業です)。

コードエディタで、確認画面のページに以下のJavaScriptを記述します。

// 入力画面で選択したチェックボックスを確認画面の選択肢テキストから取得
//.catalog pの部分を編集してください。
var lastCheckVal = document.querySelector(".catalog p").innerText;

// pタグの中身を空白を取り除き配列に入れる
var lastCheckArr = lastCheckVal.split(',').map(function(item) {
  return item.trim();
});

// フォーム内のチェックボックス要素を取得
var checkboxes = document.querySelectorAll("[name^=checkbox]");

checkboxes.forEach(function(checkbox) {
  var checkVal = checkbox.value;
  
  // 入力画面で選択した選択肢と同じ選択肢のときは、その値をチェックする
  if (lastCheckArr.includes(checkVal)) {
    checkbox.checked = true;
  }
});

JavaScript反映後の確認画面です。入力画面で選択した選択肢が自動で確認画面に反映されます。

仕組みとしては、入力画面から確認画面にmultiformで反映された部分のテキストを取得して、そのテキストと同じテキストを持つチェックボックスにチェックを入れている、ということになります。後ほど自動返信メールで条件設定をしますが、自動返信メールの条件分岐は、確認画面のチェックボックスの情報と紐づけられています。

自動返信メールの設定

次は自動返信メールの設定で、条件分けをしていきます。

確認画面の方の編集画面から、メール設定のタブを開きます。

条件付きフィールドで作成したタグで、各条件を挟みます。

▼カタログURL
========================================

[group-1]
■ 資料A
https://oooooo/catalogA/
[/group-1]

[group-2]
■ 資料B
https://oooooo/catalogB/
[/group-2]

[group-3]
■ 資料C
https://ggggg/iiiii/catalogC/
[/group-3]

[group-4]
■ 資料D
https://ggggg/iiiii/catalogD/
[/group-4]

[group-5]
■ 資料E
https://ppppp/catalogE/
[/group-5]

========================================
---------------
※このメールは自動配信メールです。
---------------

これで、group-1に紐づけた資料Aが選択された時のみ、資料Aのリンクが届きます。資料A、C、Eを選択した場合は、資料B、資料Dのリンクは届きません。

フォーム作成のタブでは[group group-1][/group group-1]ですが、メール設定で条件付けをするときは”group”なしで[group-1][/group-1]となるのでよく注意してコピペしてください。
誤って設定すると、返信メールに[group group-1]資料A〜〜[/group group-1]とタグと項目が全て出力されてしまいます。

確認画面のチェックボックスをCSSで隠す

最後に、確認画面に設置したチェックボックスは、CSSでdisplay:none;にします。
(確認画面のフォーム作成画面で、適当なクラス名のブロックで囲み、CSSを当てると良いです。)

以上になります。

今回はこちらの記事を参考にしました。

こちらの記事では詳細に書かれているので、本記事を補足として使いながら見ていただくと分かりやすいかと思います。

\Web制作コーダーの営業にオススメ!/

こんな不安を解決します!

  • Web制作の面談ってどんなこと聞かれるの?
  • どんな風に答えればいいの?
  • オンラインの面談って何を準備したらいいの?

"少しでも面談の不安を減らしたい"という方はぜひお手に取ってみてください!

ゆき
体育会系2児ママ
Web制作コーダー(元理学療法士)。子供の出産を機に働き方を考え直しWeb制作の学習を始める。現在はフリーランスとして在宅ワークで活動中。
よかったらシェアしてね!
  • URLをコピーしました!
目次