PowerCMS X Q&A

PowerCMS Xを用いてWebサイトを構築する際の技術的なヒントや解決策をご紹介します。

フォーム投稿をデータベースに保存しない場合にも一意のIDをメールに記載できますか?

フォーム投稿をデータベースに保存しない場合、オブジェクトのIDが発行されないためメールに一意のIDが記載されません。

プラグインにてpre_saveコールバックを利用して一意のIDを発行し変数にセットするとメールでIDが取得できるようになります。以下のように記述すると、日付に4桁の乱数を付けたIDが<mt:var name="management_id" />で取得できます。

public function pre_save_contact(&$cb, $app, &$contact) {
    if ((int) $cb['form']->form_id === 1) { // フォームIDが1の場合
        $app->ctx->vars['management_id'] = date('YmdHis') . sprintf('%04d', rand(100, 1000)); // 生成する値は適宜カスタマイズしてください
    }

    return true;
}

関連するQ&A