予約カレンダーから予約日の時間割を選択する表示は、テーブルタグを利用した一覧表からの選択が標準でした。新しいバージョンでは、時間割選択をセレクトボックスを利用した処理を設定できるようになりました。

設定は大変簡単です。予約カレンダーの表示でショートコードを設定する際、合わせて新しいパラメータ「dayform」を追加します。

[monthly_calendar id="xx" dayform="1"]

選択肢のオプションタグには時間割の時間とマーキングが表示されます。

予約が満席や予約できない場合、オプションタグに「disabled」が設定され選択ができないようになります。

メッセージフィルター

この機能には表示内容を書き換えることができるように2つのメッセージフィルターが用意されています。

dayform2mf

それぞれ、オプション選択肢の表示内容を書き換えるものと、予約入力フォームへ移行するための送信ボタンの内容を書き換えるもので、以下がサンプルになります。

add_filter("mtssb_daily_form_option", "daily_form_option", 10, 5);
function daily_form_option($message, $time, $mark, $remain, $calendar_id) {
    if ($calendar_id == 'xxx') {
        $timestr = date_i18n('H時i分 ', $time);
        $msg = '余裕あり';
        if ($mark == 'disable') {
            $msg = '予約不可';
        } else if ($mark == 'full') {
            $msg = '満員御礼';
        }
        $message = $timestr . $msg;
    }
    return $message;
}

add_filter("mtssb_daily_timetable_submit", "daily_timetable_submit", 10, 2);
function daily_timetable_submit($message, $calendar_id) {
    if ($calendar_id == 'xxx') {
        $message = '予約実行';
    }
    return $message;
}

mtssb_daily_from_option

$message:元の表示メッセージ
$time:予約日時のunix time
$mark:予約状況
vacant:未予約状態
booked:予約有り状態
low:残数少状態
full:予約満杯状態
disable:予約不可状態
$remain:予約残数
$calendar_id:予約カレンダー識別子

mtssb_daily_timetable_submit

$message:元の表示メッセージ
$calendar_id:予約カレンダー識別子

セレクトボックス表示のスタイルは、プラグインディレクトリの「mtssb-front.css」の編集、またはテーマのスタイルシートに追加するなどして対応をお願いします。