予約リストを表示する。

前回記事時間割表示の画面に予約者名を表示する。 で予約者名を表示できるようになったが、それとは別に、全部の予約を一覧できるページも作成したかった。

試行錯誤してできたので、方法を記載する。
mts-simple-booking.php の一番下に下記の関数を追記した。

8行目の「$maxmonth = 6;//何ヶ月先まで予約可能か」の数字は、WordPress の管理画面 予約システム → 各種設定 の予約受付期間「今日から何カ月先まで予約を受け付けるか期間を指定する」の月数と数字を合わせておく。

11行目は部屋名称で、サンプルは2室だがもっと多ければ名前を変えて追加すればよい。
例えば、サンプル室Cを$roomc_nameとして追加する場合は下記になる。

12行目の「$rooma_id = 6;$roomb_id = 7;//予約品目ID」の数字は予約品目IDで、カレンダーを表示する固定ページを作成したときに書いたショートコード
[monthly_calendar id=”番号”]の番号と同じ数字にする。

16行目の「$maxnum = 8;//1日に可能な予約数」の数字は、1日に可能な最大の予約数。この場合は、サンプル室Aが10:00,12:00,14:00,16:00の4件、サンプルBも同様に4件で、2室の合計で8件が1日に可能な最大の予約数なので「8」にしてある。

22行目の

については、部屋数が多い場合は「elseif」を使って足せばよい。例えば $roomc_name を追加した場合下記になる。

ちょっと分かりづらいので改行を入れてみる。
予約品目ID($yo_array[$num][‘article_id’])で判断し、$yo_room に部屋名称を代入する内容だ。

23行目の

では、「予約日と時間」と「予約した部屋」と「所属」と「名前」を「,」で区切って表示しするようにした。
「$yo_array」という配列は、デフォルトで用意してある入力欄やパラメータとの関係は下記のようになっている。
(一部、無償版では使用しないものが混ざっていると思われる。)

$yo_array[$num]['booking_id']・・・予約ID
$yo_array[$num]['booking_time']・・・予約日(1970年1月1日からの秒数)
$yo_array[$num]['confirmed']・・・予約確認( 0 又は 1 )
$yo_array[$num]['parent_id']・・・?
$yo_array[$num]['article_id']・・・予約品目ID
$yo_array[$num]['user_id']・・・?
$yo_array[$num]['number']・・・予約人数
$yo_array[$num]['options']・・・?
$yo_array[$num]['client']['company']・・・会社名
$yo_array[$num]['client']['name']・・・名前
$yo_array[$num]['client']['furigana']・・・フリガナ
$yo_array[$num]['client']['birthday']・・・生年月日
$yo_array[$num]['client']['gender']・・・性別
$yo_array[$num]['client']['email']・・・Email
$yo_array[$num]['client']['postcode']・・・郵便番号
$yo_array[$num]['client']['address1']・・・住所1
$yo_array[$num]['client']['address2']・・・住所2
$yo_array[$num]['client']['tel']・・・電話番号
$yo_array[$num]['client']['adult']・・・大人人数
$yo_array[$num]['client']['child']・・・小人人数
$yo_array[$num]['client']['baby']・・・幼児人数
$yo_array[$num]['client']['car']・・・車台数
$yo_array[$num]['created']・・・登録日時(西暦年月日時刻)

24~25行目の記述でメッセージ欄への入力内容がある場合は、その下に表示するようにした。

これで、ショートコード[yo_ichi]と書いた固定ページを作成すれば、今日以降の全予約が下のように一覧表示される。

ichiran


追記

mts-simple-booking.php の一番下に追記する関数の例。
予約品目が5個(予約品目IDは仮に、6,7,8,9,10 とする。)、設定時間が合計20個とし、
予約日時,予約品目名,予約者名,(入力内容がある場合はメッセージ欄も)を表示する場合。

ショートコード[yo_ichi]と書いた固定ページに予約一覧が表示される。

  • このエントリーをはてなブックマークに追加

コメント

  1. だいす より:

    はじめまして。
    予約リストを表示するページを2つ、予約フォームの人数を欄を消すを参照し使用させて頂いております。
    とても貴重な情報を掲載いただきありがとうございます。何もできませんが御礼申し上げます。

    もし宜しければ、予約リストを表示した結果の並び替え方法もご教示頂けませんでしょうか。
    以下の(1)(2)の順で昇順にしたいと思っております。
    (1) $yo_array[$num][booking_time]・・・予約日(1970年1月1日からの秒数)
    (2) $yo_array[$num][created]・・・登録日時(西暦年月日時刻)

    お時間があれば宜しくお願い致します。

  2. 管理人 より:

    だいすさん、はじめまして。

    この予約リストは、本日以降の予約が、予約日が本日に近い順に並びます。

    並び替えが簡単に出来るなら良かったのですが、かなり改造しないと出来そうにありません。

  3. だいす より:

    管理人様、お忙しいところありがとうございます。

    要大改造なのですね・・・。色々勉強してみます。
    ご返信をありがとうございました。

  4. まさたろ より:

    管理人様
    このサイト本当にとても役に立ちました。
    ありがとうございました。

    一つ現在困っていることがありまして、コメントをつけさせていただきます。
    カレンダーから日付を選ぶと、現在の予約者を表示するように追加したのですが、
    この画面からカレンダーに戻る機能を追加したいのですが、何かいい方法はないでしょうか?
    (リロードすればカレンダー画面に戻ることはわかってはいるのですが…)

    できれば、次の月をカレンダー側で選んでいたら、その月のカレンダーに戻せると最高です。

    よろしくお願いします。

    • 管理人 より:

      JavaScriptでブラウザの戻るボタンをつけるのが簡単ですね。
      例えば、下に「戻る」をつける場合
      mtssb-front.php の下記の位置に黄色にマークした行を追加して下さい。

  5. まさたろ より:

    管理人様
    早速のお返事ありがとうございます。
    コードを追加してみたのですが、、、どうもカレンダーには戻らないようです。
    何か設定を間違えているのでしょうか?

  6. まさたろ より:

    管理人様
    わざわざ実際に作成いただきありがとうございます。
    確かに、ちゃんともどりますね。
    テーマの違いからでしょうか??
    もう少し試してみます。

  7. まさたろ より:

    サイドバーの表示にしていると戻るができないようです。
    固定ページに移して、戻れるようにしました。

    ありがとうございました。

    • 管理人 より:

      サイドバーの場合

      に変えるとカレンダーに戻りませんか?
      ページをリロードするのと同じになります。
      選んでいた月を表示する方法は、ちょっと分かりません。

  8. まさたろ より:

    管理人様
    引き続きのご返答ありがとうございます。
    両方併用して使用したいと思います。
    非常に助かりました。ありがとうございました。

  9. sakura より:

    今年の問い合わせメール掲載がありませんので問い合せを躊躇しましたが、自身での調査に限界を感じましたのでご質問させていただきます。 宜しくお願い申し上げます。

     予約キャンセル機能についての質問です。 当方で発生している事象が管理人様へ問い合わせがないことからWordPressバージョン、関連プラグイン等との相関が影響している可能性もありますことをご了承願います。
    管理人様のサイトを拝察し、パスワード入力とキャンセル機能連携の有益性から自身のサイトにも利用させていただきました。 機能的には問題ありませんが、ショートコードを埋め込んだページ(予約キャンセル)をTOPメニューから選択するとフォームがPOST送信され当該ページに表示されるのですが、同様のフォーム内容がページ外の上部に2回分表示されるのです。 フォームはパスワード入力行と確認行の2行がWで画面ヘッダー部に割り込むように表示されるのです。 機能的には予約したときに入力したパスワード入力で削除データが表示され、削除まで機能的には問題ありません。
    WordPressテーマの違うサイトでもテストしましたが、画面ヘッダー部とページエリアの間に割り込んで表示されました。 更にキャンセル1のショートコードでもテスト確認しましたが、同一メッセージが2回echoされたように1行に2つのメッセージが表示されます。 フォームタグ受信がバグの契機かと考え、ショートコード埋め込んだページにphpタグ内に当該phpのフォーム送出シーケンスを記述し、ページ実行するとパスワード入力画面には異常がありません。 同様事象がネットに存在していないこともあり、行き詰まりました。 当方のカスタマイズに不手際があったのかご指南いただけたら幸いです。 宜しくお願いします。 

  10. kuni より:

    初めてコメントさせて戴きました。
    今回、バレエ教室の予約システムを作りこちら様を参考にさせて戴きとても助かっており感謝・感謝です。
    今回、「予約リストを表示する」を参考に予約リストページを作成したのですが、予約が入っていないのに「日付時間、ルーム名、」がルーム名分(私のサイトはルームが5つあります)設定時間分(ルームごとに時間設定が違うので合計20ほどあります)表示されてしまいますが、予約の入って無い物は表示されない様にする方法をお教えいただけますでしょうか?
    お忙しい中申し訳ございませんが是非宜しくお願いいたします。

    • 管理人 より:

      元々、予約の入って無い物は表示されない仕様です。
      どこか壊してしまったようですね。

      この記事の下に例を追記しておきましたので、予約品目名(ルーム名)と予約品目IDをkuniさんの物に変えて、丸ごと入れ替えてみてください。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です