MTS Simple Bookingの有料版 で予約IDを下3桁から4桁に拡張するカスタマイズ方法

⚠ 対応プラグインについての重要な注意

※本記事は MTS Simple Bookingの有料版 専用 です。
MTS Simple Booking-Cの無料版 には対応していません。

※本記事は実運用で詰まった方向けの技術メモです。実際の環境やカスタマイズ状況によっては、そのまま適用できない場合があります。

ここから先は環境依存になります。個別条件が絡む場合は、無理に触らず専門対応を検討してください。

1 予約IDの改修

WordPressの予約プラグイン MTS Simple Booking(有料版) を長く運用していると、1日の予約件数が増え、予約ID(下3桁)が足りなくなるケースがあります。

本記事では、予約IDを
yymmdd + 下3桁 → yymmdd + 下4桁(10桁) に拡張するために、実際に修正したファイルとポイントをすべてまとめます。

一部だけ修正すると、検索・CSV・メール表示などが壊れるため、関連箇所をすべて揃えて修正することが重要です。


2 予約ID仕様の変更方針

  • 従来:yymmdd + 下3桁(最大999件/日)
  • 変更後:yymmdd + 下4桁(最大9999件/日)

PHP・JavaScript・SQL・正規表現を含むため、表示だけでなく検索・抽出処理まで統一します。


3 修正ファイル一覧

  • mtssb-mail.php
  • mtssb-users-page.php
  • mtssb-booking.php
  • mtssb-list-admin.php
  • mtssb-subscription.php
  • mtssb-booking-form.php

4 ① mtssb-mail.php(予約ID生成)

予約IDを生成している箇所の substr を4桁に変更します。

// 修正前
return date('ymd', $booking_time) . substr("00{$booking_id}", -3);

// 修正後
return date('ymd', $booking_time) . substr("00{$booking_id}", -4);

5 ② mtssb-users-page.php(管理画面検索・JavaScript)

管理画面の検索処理では、下3桁前提のロジックをすべて4桁に揃えます。
中途半端な互換処理はバグの原因になるため削除します。


// 修正前
    var searchTarget = input.length >= 4 ? input.slice(-3) : input;

    var found = bookings.find(b => {
        var idTail = b.id.slice(-4);       // 予約IDの下4桁
        var idCompare = idTail.slice(-3);  // 下4桁の左端を無視 → 下3桁
        return idCompare === searchTarget;
    });

// 修正後
    var searchTarget = input.length >= 4 ? input.slice(-4) : input;

    var found = bookings.find(b => {
        var idTail = b.id.slice(-4);
        return idTail === searchTarget;
    });

6 ③ mtssb-booking.php(DB検索条件)

SQL 側で 1000 のままだと検索結果が一致しなくなるため、必ず 10000 に変更します。


// 修正前
WHERE mod(booking_id, 1000)=%d AND client like %s AND booking_time>=%d

// 修正後
WHERE mod(booking_id, 10000)=%d AND client like %s AND booking_time>=%d

7 ④ mtssb-list-admin.php(管理画面・CSV)

表示・CSV出力でも桁数を統一します。
"00""0000" の変更も重要です。


// 修正前
$csv .= $this->_csv_value(date_i18n('ymd', $booking['booking_time']) . substr("00{$booking['booking_id']}", -3));

// 修正後
$csv .= $this->_csv_value(date_i18n('ymd', $booking['booking_time']) . substr("00{$booking['booking_id']}", -4));

8 ⑤ mtssb-subscription.php(予約IDチェック)

正規表現を修正しないと、4桁IDが弾かれて検索できません。


// 修正前
if (!preg_match("/^[0-9]{9}$/", $reserve_id)) {

// 修正後(yymmddxxxx = 10桁)
if (!preg_match("/^[0-9]{10}$/", $reserve_id)) {

// 修正前
//予約ID下3桁をセット
$this->search['bookingid'] = substr($reserve_id, -3);

// 修正後
// 下4桁を取得
$this->search['bookingid'] = substr($reserve_id, -4);

9 ⑥ mtssb-booking-form.php(完了画面表示)

ユーザー向けの完了画面表示も4桁に統一します。


// 修正前
$reserve_id = apply_filters('mtssb_thanks_reserve_id', date('ymd', $booking['booking_time']) . substr("00{$booking['booking_id']}", -3));

// 修正後
$reserve_id = apply_filters('mtssb_thanks_reserve_id', date('ymd', $booking['booking_time']) . substr("00{$booking['booking_id']}", -4));

10 注意点

  • 作業前に必ずバックアップを取得してください
  • アップデートで上書きされる可能性があります
  • 既存データとの整合性に注意してください

11 まとめ

予約IDの桁数変更は、見た目以上に影響範囲が広く、一部だけ修正すると不具合が発生します。

PHP・JavaScript・SQL・正規表現まで含めて全体を揃えて修正することが重要です。

環境差でうまく動かない場合や、個別対応が必要な場合は、実運用を前提とした調整も行っています。

この記事が、MTS Simple Booking のカスタマイズで悩んでいる方の参考になれば幸いです。

⚠ 対応プラグインについての重要な注意

※本記事は MTS Simple Bookingの有料版 の実装解説です。
MTS Simple Booking-Cの無料版 には対応していません。