Ver.1.33 予約の確認とキャンセル

ビジネス版では、特定の固定ページを用意して予約情報を表示、確認することができます。この固定ページを表示すると次の図のように、予約の検索入力フォームが表示されます。

予約IDとメールアドレスを入力して予約データを検索します。過去の予約データは、検索の対象にはなりません。

検索の結果、予約があれば予約情報の詳細が表示されます。そしてその予約のキャンセルが有効であれば、キャンセルボタンが予約タイトル右側に表示されます。

それではこの機能を利用するための設定を見ていきましょう。

ページの準備

この機能を利用して予約の検索フォームや予約内容を表示するため、以下の特別なスラッグ名を設定した固定ページを用意してください。

  • subscription
    予約データの検索・表示、キャンセル処理に必要なページです。

その他、任意で次のスラッグ名を付けた固定ページを利用することができます。用意されていない場合はsubscriptionページが利用されます。

  • cancel-send
    キャンセル処理がメール方式のとき、キャンセルメール送信後にリダイレクト表示されるページです。固定ページが登録されていない場合、subscriptionページに簡単なメッセージ(※)が表示されます。
  • cancel-thanks
    キャンセルが実行された後にリダイレクト表示されるページです。固定ページが登録されていない場合、subscriptionページに簡単なメッセージ(※)が表示されます。

(※) メッセージは以下に説明するメッセージフィルターを利用して、出力内容を書き換えることができます。

利用方法

subscriptionページを表示すると予約の検索フォームが表示されます。予約IDとメールアドレスを入力した結果、予約データがあれば予約の内容が表示されます。

subscriptionページは、メインメニューなどに設定するとよいでしょう。

キャンセル

キャンセル機能は、キャンセルボタンを押した後に次の2つの操作方法が用意されています。

  1. キャンセルメールを送信し、メールに掲載されたURLアクセスでキャンセルする
  2. 確認ダイアログを表示し、キャンセルする

キャンセルの実行は、メールを送信してそのメールに記載されたURLをブラウザーでアクセスして実行する「メール方式」と、メールを送信せずそのまま実行する「ボタン実行」の2つの方法があります。

メールを送信する方法はそのまま実行する方法と比較して手間は多いですが、記載のURLをアクセスしなければキャンセルは実行されませんので、キャンセルを中止することができるメリットがあります。

デメリットは、キャンセルボタンを押したことでキャンセルが実行された、と勘違いする場合があります。

キャンセルが実行されると予約データがデータベースから削除されます。そのため予約を復元することはできません。同時に管理者へメールが送信されます。

管理画面の設定

キャンセル機能を有効にするには、管理画面でキャンセルを有効にし、予約品目でキャンセルの有効期限を設定します。

予約品目ではキャンセル有効期限を設定します。

キャンセル受付期限の設定は予約品目別に設定します。これにより、予約品目個別で期限を設定する、あるいはキャンセルを受け付けないようにすることができます。

キャンセルの受付期限は、予約日時を起点として3時間前から6日前まで設定できます。

このセレクトボックスの選択肢はメッセージフィルターを利用して変更することができます。

以下のセクションで説明するメッセージフィルターでパラメータを変更して、3時間前より短くする、あるいは7日前以上にすることができます。

キャンセルメール

メール方式を選択した場合、キャンセルを実行するためのURLを記載したメールが送信されます。このキャンセルメールの編集・登録は、管理画面の「各種設定-予約メールタブ」の下方にあります。

メールで利用する項目は「件名」と「本文」です。本文には「メール文で利用可能な代替変数」に掲載された代替変数を含むことができます。

なお本文には必ず「%CANCEL_URL%」を含めてください。この変数の代わりにキャンセルを実行するURLが挿入されます。

注)キャンセルメールの送信は、Ver.1.33.0までメール方式のみ予約者に送信されましたが、Ver.1.33.1よりボタン方式の場合もこのメールを送信するようになります。
(200716)

メッセージフィルター

表示される文言の内容や設定項目の変更など、次のメッセージフィルターを利用することができます。

キャンセル有効期限の選択肢変更

設定したいキャンセル有効期限が選択肢にない場合、メッセージフィルター「mtssb_cancel_limit_margin」を利用して追加、変更ができます。

以下のメッセージフィルター関数は、引数「$option」と同じ内容を戻しています。配列は「分 => 見出し」の形式で表します。

add_filter('mtssb_cancel_limit_margin', 'mts_cancel_select_option');
function mts_cancel_select_option($option) {
    return array(
        '0' => '利用不可',
        '180' => '3時間',
        '360' => '6時間',
        '720' => '12時間',
        '1440' => '1日',
        '2880' => '2日',
        '4320' => '3日',
        '5760' => '4日',
        '7200' => '5日',
        '8640' => '6日',
    );
}

例えば7日を追加したい場合、「’10080′ => ‘7日’」を6日の行の下に追加します。

検索フォーム

以下は検索フォームの表示出力で設定されているメッセージフィルター一覧です。

メッセージフィルター関数に渡されるデータは、それぞれ出力される文字列(ヌルストリング含む)です。書き換えたい内容を戻せば、その内容が出力表示されます。

処理実行(リダイレクト)後のメッセージ

キャンセルがメール方式の場合、キャンセルボタンを押すとメールを送信してページを切り替え(リダイレクト)します。

またキャンセルが実行された場合、キャンセル実行の表示ページへ切り替え(リダイレクト)します。

それぞれのメッセージフィルター名とデフォルトの出力内容は次の通りです。

  • subscription_cancel_send
    <p>キャンセルメールを送信しました。</p>
  • subscription_cancel_thanks
    <p>予約をキャンセルしました。</p>

メッセージフィルター関数を利用することで表示内容を変更することができます。

管理者通知メールの予約数情報追加

キャンセルが実行されると通知メールが管理者へ送信されます。そのメールの内容に、メッセージフィルターを利用して現在の予約数の情報を追加することができます。

機能の説明は以下のページを参照してください。

Ver.1.25 管理者宛予約・キャンセルメールへ予約数の情報を追加

後書き

この記事の内容はVer.1.33へのバージョンアップにおいて、以下のページを加筆、修正したものです。

Ver.1.8 予約のキャンセル