MTS Simple Bookingの有料版 で時間表示を30分枠で「09:00~09:29」形式に変更する方法

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

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

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

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

1 MTS Simple Bookingの時間表示

WordPressの予約プラグイン MTS Simple Booking(有料版) は、予約時間の表示が次のようになっていることがわかります。

09:00
09:30
10:00
10:30

これを、30分枠の時間帯表示として、

09:00~09:29
09:30~09:59
10:00~10:29
10:30~10:59

のように表示したい、というケースです。

今回は プラグイン本体の表示部分を最小限のカスタマイズで対応する方法を解説します。

2 修正するファイルと場所

修正するのは以下のファイルです。

mts-simple-booking/includes/mtssb-front.php

目安として 400行前後付近 に、時間割テーブルを表示している処理があります。

3 変更前の処理(該当箇所)

以下は、時間割テーブルを出力している部分です。


    // 時間割テーブルリンク表示
    $output = $this->view->timetableLink($dayTime, $this->params, $article, $tableInfo);

    echo $output;
}

この $output の中に、

09:00
09:30

といった時間表記が HTML として含まれています。

4 カスタマイズ方針

  • MTS Simple Booking(有料版)本体のロジックは変更しない
  • 出力されたHTML文字列 $output に対して
  • preg_replace_callback() を使い
  • 09:00 や 09:30 を 09:00~09:29 / 09:30~09:59 に置き換える

という、安全性と影響範囲を抑えた方法を取ります。

5 変更後のコード

以下のように修正してください。


    // 時間割テーブルリンク表示
    $output = $this->view->timetableLink($dayTime, $this->params, $article, $tableInfo);

    // 時間の範囲を変更(30分枠表示)
    $output = preg_replace_callback('/(\d{2}):(\d{2})/', function($matches) {
        $hour   = $matches[1];
        $minute = (int)$matches[2];

        // 09:00 → 09:29 / 09:30 → 09:59
        if ($minute < 30) {
            $endMinute = 29;
        } else {
            $endMinute = 59;
        }

        return
            $hour . ':' . str_pad($minute, 2, '0', STR_PAD_LEFT) .
            '~' .
            $hour . ':' . str_pad($endMinute, 2, '0', STR_PAD_LEFT);
    }, $output);

    echo $output;
}

6 このコードのポイント

6.1 正規表現

/(\d{2}):(\d{2})/

09:00 や 10:30 のような 時刻表記のみを対象

HTMLタグや他の文字列には影響しません

6.2 30分単位の判定

if ($minute < 30) {
    $endMinute = 29;
} else {
    $endMinute = 59;
}
  • 00~29 → ~29
  • 30~59 → ~59

という 直感的でわかりやすいロジックです。

7 表示結果

変更前
09:00 09:30 10:00 10:30

変更後
09:00~09:29 09:30~09:59 10:00~10:29 10:30~10:59

予約者にとって「この時間帯はどこまで使えるのか」が一目で分かるようになります。

8 注意点

  • プラグインアップデート時に上書きされます
  • 必要であれば差分をメモしておく
  • 表示のみの変更なので予約ロジックや保存データには影響しません

9 完成イメージ

  • 予約表デモサイト
  • 8.1 日別予約一覧
  • 8.2 予約確認画面
  • 8.3 予約完了メール

10 まとめ

MTS Simple Booking はシンプルな設計ですが、出力後のHTMLを加工することで、実運用に合った表示に調整できます。

  • 本体ロジックを壊さない
  • 影響範囲を最小限にする
  • 将来の修正も簡単

という点で、実務向けのカスタマイズです。

※プラグイン本体を編集しているため、アップデート時は再対応が必要です。

同じ悩みを持っている方の参考になれば幸いです。

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

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