本記事では、アンケートの回答を受け付けた後、
メールにてギフトコードが閲覧可能なURLを送信する方法について紹介します。
全体像
予めギフトコードDBにギフトコードを格納しておきます。
アンケート回答フォームよりアンケートを回答すると、ギフトコードDBのギフトコードに紐づき、
アンケートDBに登録され回答者に通知がされます。
アンケート回答フォームのサンクス画面にPHPを設置し、
ギフトコードDBのギフトコードIDとギフトコードを取得します。
フォームの登録時に発行された、アンケート管理IDとギフトコードIDをTRDBに登録し消し込みを行います。
DB設定
以下3つのDBを作成します。
アンケート管理用TRDB
アンケート回答DB
ギフトコードDB
| フィールド名 | フィールドタイトル | フィールドタイプ | 自動生成設定 |
|---|---|---|---|
| アンケート管理ID | enqueteId | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
| ギフトコード | giftCode | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
| ギフトコードID | giftCodeId | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
| 連携済みフラグ | connectFlg | セレクト | デフォルト値:2(連携済み) |
| 登録日時 | registDate | TRDB登録日時 | - |
アンケート回答DB
| フィールド名 | フィールドタイトル | フィールドタイプ | 自動生成設定 |
|---|---|---|---|
| アンケート管理ID | enqueteId | 数字・記号・アルファベット(32 bytes) | 自動生成:値が存在しても、上書きする |
| メールアドレス | メールアドレス(大・小文字無視) | 自動生成:使用しない | |
| ギフトコード | giftCode | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
ギフトコードDB
| フィールド名 | フィールドタイトル | フィールドタイプ | 自動生成設定 |
|---|---|---|---|
| アンケート管理ID | enqueteId | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
| ギフトコードID | giftCodeId | 数字・記号・アルファベット(32 bytes) | 自動生成:値が存在しても、上書きする |
| ギフトコード | giftCode | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
| 連携済みフラグ | connectFlg | セレクト | デフォルト値:1(未連携) |
| 連携日時 | connectDate | 日付(○年○月○日 ○時○分○秒) | - |
上記のフィールドは必須のフィールドになります。
その他のフィールドは、必要に応じて追加してください。
TRDBのアクション設定についてはアンケート回答DBとギフトコードDBにそれぞれ更新アクションを作成し、
ギフトコードDBには連携済みフラグフィールドを更新アクションのマッピングに設定してください。
また、TRDB登録日時を連携日時フィールドにマッピングしてください。
アンケート回答DBにはギフトコードを更新アクションのマッピングに設定してください。
フォーム設定方法
アンケート回答DBに新規登録型のフォームを新規作成してください。
サンキューページの設定をソース編集に切り替えてください。
ページ最上部に以下のPHPを記載してください。
PHP
その後下部のHTMLソースを以下のように編集してください。
HTML
アンケート回答DBに対するマイエリアを発行してください。
クリックログインを有効にし、ログイン後ページにギフトコードの差し替えを出力してください。
サンクスメールの設定を行い、上記マイエリアに対するクリックログインURLを記載して
フォームの設定は以上になります。
サンキューページの設定をソース編集に切り替えてください。
ページ最上部に以下のPHPを記載してください。
PHP
<? //<!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=OFF NAME=XXX --> ?>
<?
$db = $SPIRAL->getDataBase("giftCodeDB");
$db->addSortField("id");
$db->addSelectFields("giftCodeId","giftCode");
$db->setLinesPerPage(5);
$result = $db->doSelect();
$enqueteId = $SPIRAL->getContextByFieldTitle("enqueteId");
$errorFlg = 0;
foreach ($result["data"] as $value) {
$db = $SPIRAL->getDataBase("enqueteTRDB");
try {
$registResult = $db->doInsert(array(
"enqueteId" => $enqueteId,
"giftCodeId" => $value["giftCodeId"],
"giftCode" => $value["giftCode"]
));
var_dump($registResult); // 成功時のみ出力
break;
} catch (Exception $e) {
$errorFlg = 1;
continue;
}
}
?>
その後下部のHTMLソースを以下のように編集してください。
HTML
<div class="smp_tmpl">
<div class="sub_text">
ご登録ありがとうございました。
<?
if($errorFlg == 1){
echo "<br>";
echo "エラーが発生した為、管理者に連絡してください。";
}
?>
</div>
</div>
アンケート回答DBに対するマイエリアを発行してください。
クリックログインを有効にし、ログイン後ページにギフトコードの差し替えを出力してください。
サンクスメールの設定を行い、上記マイエリアに対するクリックログインURLを記載して
フォームの設定は以上になります。