メッセージフィルター

MTS Simple Booking の予約フォームでプログラムから出力される項目名に関するメッセージを、WordPressのadd_filter()を利用して書き換える事ができます。

次の予約フォームはビジネス版のものですが、オプション選択以外は無償ダウンロード版と同様です。それぞれの予約システムに合わせて、入力時に分かりやすい項目名を表示するようにすると良いでしょう。

予約フォーム

予約フォームメッセージフィルターadd_filter()の使い方は、WordPressのCodexに解説があります。

オリジナル:Function Reference/add filter
日本語:関数リファレンス/add filter

予約フォームで入力項目のタイトルを書き換えたい場合、右の入力フォームを参考にして下さい。以下、項目の一覧です。

  • ご予約:booking_form_number_title
  • 予約日時:booking_form_date
  • 人数ラベル:booking_form_count_label
  • オプションご注文:booking_form_option_title
  • ご注文の場合は個数を入力して下さい:booking_form_option_message
  • お客様ご連絡先:booking_form_client_title
  • ※の項目は必須です:booking_form_client_message
  • 会社名:booking_form_company
  • お名前:booking_form_name
  • フリガナ:booking_form_furigana
  • E-Mail:booking_form_email
  • E-Mail(確認用):booking_form_email2
  • 郵便番号:booking_form_postcode
  • 住所:booking_form_address
  • 電話番号:booking_form_tel
  • ご連絡事項:booking_form_message_title
  • 予約確認ボタン:booking_form_send_button

項目の書き換え方法は、利用するテーマの「functions.php」ファイルにフィルターの記述をするのが簡単です。右のフォームは次のようなフィルターのフックを、functions.phpファイルに記述してます。

function form_option_message($message) {
	return '設備を利用する場合は「1」と入力して下さい。お弁当は必要数を入力して下さい。';
}
add_filter('booking_form_option_message', 'form_option_message');

function form_date($booking, $booking_time) {
	return date('Y年n月j日', $booking_time);
}
add_filter('booking_form_date', 'form_date', 10, 2);

function form_company($company) {
	return 'グループ名称';
}
add_filter('booking_form_company', 'form_company');

function form_postcode($postcode) {
	return '〒';
}
add_filter('booking_form_postcode', 'form_postcode');

function form_address($address) {
	return '代表者住所';
}
add_filter('booking_form_address', 'form_address');

function form_tel($tel) {
	return '代表者TEL';
}
add_filter('booking_form_tel', 'form_tel');

function form_name($name) {
	return '代表者名前';
}
add_filter('booking_form_name', 'form_name');

function form_email($email) {
	return '代表者E-Mail';
}
add_filter('booking_form_email', 'form_email');

人数ラベルの書き換え

以下に人数のラベルを書き換えるサンプルを掲載します。ラベルは「大人・小人」を「男性・女性」に変更する方法です。ラベルの書き換えはフロントエンド表示のみで、管理画面での書き換えはできません。

function form_count_label($str) {
    if ($str == '大人') {
        return '男性';
    } elseif ($str == '小人') {
        return '女性';
    }

    return '';
}
add_filter('booking_form_count_label', 'form_count_label');

予約カレンダー表示

予約カレンダーフィルター予約カレンダーのテーブルキャプション、日付、前次月のリンク文字列について、表示内容の置き換えができます(右図参照)。

  • 予約カレンダーキャプション
    mtssb_caption
  • 日付
    mtssb_day
  • 前月 リンク文字列
    mtssb_prev_title
  • 次月リンク文字列
    mtssb_next_title

キャプションや前月・次月のフィルターでは、Unix Time 形式のデータが渡されます。

function booking_calendar_caption($message, $daytime) {
	return date_i18n('F, Y', $daytime);
}
add_filter('mtssb_caption', 'booking_calendar_caption', 10, 2);

function booking_calendar_prev($message, $daytime) {
	return date_i18n('F, Y', $daytime);
}
add_filter('mtssb_prev_title', 'booking_calendar_prev', 10, 2);

function booking_calendar_next($message, $daytime) {
    return date_i18n('F, Y', $daytime);
}
add_filter('mtssb_next_title', 'booking_calendar_next', 10, 2);

なおWordPressは時間の取り扱いをUTCで扱っております。そのため日付の表示で「date()」を利用すると9時間のズレが生じますので、WordPressが用意する「date_i18n()」を利用するようにして下さい。

予約日時間割表示

時間割フィルター予約カレンダーから指定された日の時間割表示で図の部分の表示の置き換えができます。

  • 予約品目タイトル
    mtssb_day_title
  • 予約年月日
    mtssb_day_caption
  • 時間タイトル
    mtssb_daily_time_title
  • 予約タイトル
    mtssb_daily_booking_title
  • 時間割時間
    mtssb_time_header

日付や時間のフィルターでは、Unix Time形式のデータが渡されます。

なおWordPressは時間の取り扱いをUTCで扱っております。そのため日付の表示で「date()」を利用すると9時間のズレが生じますので、WordPressが用意する「date_i18n()」を利用するようにして下さい。

function timetable_day_title($message, $title) {
	return '<h4>'. $title . '</h4>';
}
add_filter('mtssb_day_title', 'timetable_day_title', 10, 2);

function timetable_day_caption($message, $daytime) {
	return date_i18n('Y/m/d', $daytime);
}
add_filter('mtssb_day_caption', 'timetable_day_caption', 10, 2);

function timetable_time_title($message) {
        return '予約時間割';
}
add_filter('mtssb_daily_time_title', 'timetable_time_title');

function timetable_booking_title($message) {
        return '予約状況';
}
add_filter('mtssb_daily_booking_title', 'timetable_booking_title');

function timetable_time_header($message, $tabletime) {
        return date('H:i', $tabletime) . '~';
}
add_filter('mtssb_time_header', 'timetable_time_header', 10, 2);

 送信ボタンの書き換え

フォーム送信で「予約確認」と「予約する」の2つの送信ボタンがありますが、それぞれ「申込確認」と「申込む」に書き変えたい場合の例を次に示します。

function form_send_button($send_button) {
	return '<button name="reserve_action" type="submit" value="validte">申込確認</button>';
}
add_filter('booking_form_send_button', 'form_send_button');

function form_submit_button($submit_button) {
	return '<button name="reserve_action" type="submit" value="confirm">申込む</button>';
}
add_filter('booking_form_submit_button', 'form_submit_button');

画像を利用したボタンにしたい場合は、以下のようなHTMLソースも可能です。

<input type="image" name="reserv_action" value="validate" src="/images/xxx.jpg" />