Contact Form 7でお問い合わせ番号を自動生成する方法【WordPress】


この記事でわかること

  • WordPressのプラグイン Contact Form 7 (CF7) で、送信ごとに「秒までの日時」を自動採番してメールに付与する方法。
  • functions.php に数行のコードを追記するだけでOK。
  • Contact Form 7でお問い合わせフォームを運用していると、『連番や日時を付与した管理番号を自動生成したい

なぜ「秒までの日時」を付与するのか?

  • お問い合わせ番号を一意にしたい
  • 連番の管理が不要(00001 → 00002 …のように+1する必要がない)
  • 実装がシンプル(日時を出すだけなので衝突が起きにくい)

結果として、運用コストを下げつつ、利用者・管理者双方にわかりやすい受付番号を付けられます。


実装方法(最短ショートコード版)

WordPressテーマの functions.php に以下を追記します。

// CF7で送信時の日時(YYYYMMDDHHMMSS)を返すショートコード
function cq_cf7_datetime_code() {
// WordPressのタイムゾーン設定に従って出力
return date_i18n('YmdHis');
}
add_shortcode('serial_datetime', 'cq_cf7_datetime_code');

CF7メールテンプレートでの使い方

お問い合わせ番号: [serial_datetime]

出力例

20250901192345

特殊メールタグ版([_datetime14])で使う方法

プレビュー展開ではなく、CF7の「特殊メールタグ」として使いたい場合はこちらがおすすめです。

// 特殊メールタグ: [_datetime14] → YYYYMMDDHHMMSS
add_filter('wpcf7_special_mail_tags', function ($output, $name) {
$name = preg_replace('/^wpcf7\./', '', $name);
if ($name === '_datetime14') {
return date_i18n('YmdHis');
}
return $output;
}, 10, 2);

メールテンプレートでの書き方

お問い合わせ番号: [_datetime14]

カスタマイズ例(フォーマット変更)

  • /: を使いたい場合:
date_i18n('Y/m/d H:i:s'); // 出力例: 2025/09/01 19:23:45

接頭辞・接尾辞を追加したい場合:

'CQ-' . date_i18n('YmdHis') . '-JP'; // 出力例: CQ-20250901192345-JP

🔧 カスタマイズ・応用

1. 出力フォーマットのバリエーション

  • YYYY/MM/DD-HH:MM:SS 形式
  • CQ-20250901192345-JP のように接頭辞・接尾辞つき
  • タイムゾーンを UTC / JST 切り替え可能に

2. 一意性の担保

  • date_i18n('YmdHis') . '-' . uniqid()
  • microtime(true) を使ってミリ秒精度で出力
  • wp_generate_uuid4() を組み合わせて「UUID+日時」形式にする

3. 管理画面カスタマイズ

  • 「お問い合わせ一覧」に日時IDカラムを追加
  • メール送信時の日時IDを カスタムフィールド に保存して検索可能に

4. 自動リセットや桁数指定

  • 例えば「毎日リセットして 0001 から始めたい」ケース
  • 5桁固定の str_pad() を応用して桁数を増やす

5. 他プラグインとの連携

  • Flamingo に保存されるメッセージに日時IDを一緒に保存
  • WooCommerce の注文番号風に「CF7注文番号」を出力する

よくある質問(FAQ)

Q. 日本時間で出力されますか?

A. はい。date_i18n() を利用しているため、WordPressの一般設定に従います。

Q. 同じ秒に複数件送信されたら?

A. その場合は同じ値になる可能性があります。より厳密に一意性を確保したい場合は、uniqid() を追加する方法もあります。

Q. 件名にも利用できますか?

A. 利用可能です。件名欄に お問い合わせ番号: [_datetime14] と書けばOKです。


まとめ

  • Contact Form 7 で「秒までの日時」をメールに付与する方法は ショートコード版特殊メールタグ版の2パターン。
  • 連番の+1は不要で、常に「YYYYMMDDHHMMSS」の日時を出すだけのシンプル実装。
  • お問い合わせ番号として利用すれば、管理がしやすくい。