Category
Archives
Cocotiie
Trial And Error!やってみよう!の精神でWeb制作をしています。初心者の方にも伝わるよう、心がけています。少しでも誰かの助けになれれば嬉しいです。宜しくお願い致します。

2006年:Web制作に関する覚書きブログをはじめる。

2018年:Cocotiie(ココッティー)として運営開始。
20th Anniversaryを迎えました

[WordPress] Contact Form 7にプラグイン無しで受付番号を付ける方法

問い合わせ番号(シリアル番号)があった方が管理しやすいですよね。Contact Form 7にはデフォルトで番号付与の機能はありません。リアル番号を付与するプラグインがありますが、更新が何年も止まっています。今回はGeminiさんの協力のもと、プラグイン無しで使える、番号を自動付与するコードを書きました。

付与される番号は、2026年6月17日の場合は、260617-01となり、日が変わると01にリセットされます。複数のフォームがある場合は番号情報を共有し連番にします。

INDEX

ベースの準備

function.phpに下記をコピペ

add_filter('wpcf7_posted_data', function ($post_num) {
    // 今日の日付
    $today = date('ymd');

    $count_key = 'cf7_serial_global_count';
    $date_key  = 'cf7_serial_global_date';

    $last_date = get_option($date_key, '');

    if ($last_date !== $today) {
        // 日付が変わっていたら、日付を更新してカウントを01にリセット
        update_option($date_key, $today);
        $count = 1;
    } else {
        $count = intval(get_option($count_key, 0)) + 1;
    }
    update_option($count_key, $count);
    $serial_no = sprintf('%s-%02d', $today, $count);
    $post_num['serial_no'] = $serial_no;
    return $post_num;
});

フォームの設定

フォーム本体の設定

フォームタブを開き、下記の様にフォームの送信ボタン(submit)の上にhiddenタグを追記

[hidden serial_no]
[submit "上記の内容で送信"] ↑この上

メールの設定

メールタブを開き、シリアル番号を表示したい箇所にserial_noタグを追記する。例えば、題名(件名)に追加すれば便利です。260617-01 お客様控え

[serial_no] お客様控え

カスタマイズ

2026年を上記のコードでは26としていますが、2026としたい場合は、yをYにすれば良いです。

 $today = date('Ymd');

1日の問い合わせが3桁になるような場合は、-01を-001にする必要があります。02dを03dにします。

$serial_number = sprintf('%s-%03d', $today, $count);
よかったらシェアお願いします
  • URLをコピーしました!
  • URLをコピーしました!

コメント ※ハンドルネームでお願いします

コメントする

INDEX