予約の時間割選択(タイムテーブル)について

このページの説明はVer.1.19以降のカレンダー表示です。それ以前の場合、各バージョンの説明ページを参照して下さい。

受付時間が2つ以上ある予約は、予約カレンダーから日付を選択すると時間帯を選択するためのタイムテーブルが表示されます。

timetable_list

 

表示形式はショートコードのパラメータで 「dayform=”1″」を指定すると、セレクトボックスを利用したフォーム表示にすることができます。

timetable_form

 

タイムテーブルのメッセージフィルター

メッセージフィルターを利用して書き換えた例のフィルター名一覧です。

timetable_calendar_filnm

メッセージフィルターは次の通りです。

  • mtssb_timetable_before
    通常は何も表示しません。予約カレンダーと異なるメッセージを表示したい場合利用できます。

    • 引数
      $str:デフォルト表示(空)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id)
    • 戻り値
      表示文字列
  • mtssb_timetable_name
    予約品目の名前が表示されます。

    • 引数
      $str:デフォルト表示(予約品目名)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id)
    • 戻り値
      表示文字列
  • mtssb_timetable_date
    予約日付が表示されます。

    • 引数
      $str:デフォルト表示(年月日曜日)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id, ‘day’ => 予約日Unix time)
    • 戻り値
      表示文字列
  • mtssb_daily_time_title
    「時間」が表示されます。

    • 引数
      $str:デフォルト表示(時間)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id)
    • 戻り値
      表示文字列
  • mtssb_daily_booking_title
    「予約」が表示されます。

    • 引数
      $str:デフォルト表示(予約)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id)
    • 戻り値
      表示文字列
  • mtssb_time_header
    時間割時間が表示されます。

    • 引数
      $str:デフォルト表示(00:00)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id, ‘time’ => 秒数(0時=0秒))
    • 戻り値
      表示文字列
  • mtssb_daily_mark
    予約状況が記号、または、残数で表示されます。

    • 引数
      $str:デフォルト表示(記号または残数)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id, ‘mark’ => 状況識別子, ‘remain’ => 残数)
    • 戻り値
      表示文字列
  • mtssb_timetable_after
    通常は何も表示しません。予約カレンダーと異なるメッセージを表示したい場合利用できます。

    • 引数
      $str:デフォルト表示(空)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id)
    • 戻り値
      表示文字列

以下は参考図で利用したメッセージフィルターのプログラム例です。

// メッセージをタイムテーブル上部に表示する
add_filter('mtssb_timetable_before', 'timetableBefore', 10, 2);
function timetableBefore($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    return 'タイムテーブル上部 予約品目:post id=' . $param['aid'];
  }
  return $str;
}

// タイムテーブルのタイトル変更
add_filter('mtssb_timetable_name', 'timetableName', 10, 2);
function timetableName($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    if ($param['aid'] == 20) {
      return $str . ' (お勧めアトラクション No.1 !!)';
    }
  }
  return $str;
}

// タイムテーブルの日付
add_filter('mtssb_timetable_date', 'timetableDate', 10, 2);
function timetableDate($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    return date('D, j F Y', $param['day']);
  }
  return $str;
}

// タイムテーブル時間タイトル
add_filter('mtssb_daily_time_title', 'timetableTitle', 10, 2);
function timetableTitle($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    return '予約時間';
  }
  return $str;
}

// タイムテーブル予約タイトル
add_filter('mtssb_daily_booking_title', 'bookingTitle', 10, 2);
function bookingTitle($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    return '予約状況';
  }
  return $str;
}

// タイムテーブル時間表示
add_filter('mtssb_time_header', 'timeHeader', 10, 2);
function timeHeader($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    $break = $param['time'] + 105 * 60;
    return sprintf('%s〜%s', date('H:i', $param['time']), date('H:i', $break));
  }
  return $str;
}

// 予約残数
add_filter('mtssb_daily_mark', 'bookingMark', 10, 2);
function bookingMark($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    return '残:' . $param['remain'];
  }
  return $str;
} 

// メッセージをタイムテーブル下部に表示する
add_filter('mtssb_timetable_after', 'timetableAfter', 10, 2);
function timetableAfter($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    return 'タイムテーブル下部 予約品目:post id=' . $param['aid'];
  }
  return $str;
}

時間割のセレクトボックス表示に関するメッセージフィルター

次の図はメッセージフィルターを利用してフォーム表示を書き換えた例の、フィルター名一覧です。

timetable_form_filnm

 

mtssb_tabletime_before,
mtssb_timetable_name,
mtssb_timetable_date,
mtssb_timetable_after
の4つは、先のフィルター名が同じメッセージフィルターと同じです。それ以外は次の通りです。

  • mtssb_timetable_select_option
    時間割の選択肢です。

    • 引数
      $str:デフォルト表示(時間と予約状況)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id, ‘time’ => 予約日時Unix time, ‘remain’ => 残数)
    • 戻り値
      表示文字列
  • mtssb_daily_timetable_submit
    送信ボタンの表示文字です。

    • 引数
      $str:デフォルト表示(予約フォーム)
      $param:配列(‘cid’ => calendar id, ‘aid’ => post id)
    • 戻り値
      表示文字列

次は参考図のプログラム例です。

// 予約フォーム表示
add_filter('mtssb_timetable_select_option', 'timeSelectOption', 10, 2);
function timeSelectOption($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    $break = $param['time'] + 105 * 60;
    return sprintf('%s〜%s 残:%d',
      date('H:i', $param['time']), date('H:i', $break), $param['remain']);
  }
  return $str;
}

// 予約フォーム送信ボタン
add_filter('mtssb_daily_timetable_submit', 'timeSelectBtn', 10, 2);
function timeSelectBtn($str, $param) {
  if ($param['cid'] == 'myCalendar') {
    return 'フォーム入力';
  }
  return $str;
}