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の無料版 には対応していません。

