本稿は最新版Ver.1.34.1を対象とした内容です。予約フォームで生年月日の入力項目を利用する際、メッセージフィルターを利用して西暦年の範囲を変更することができます。

メッセージフィルター機能は、プログラムから出力される文言を書き換えるため、小さなPHPプログラムを用意し、テーマディレクトリにある「functions.php」ファイルに追加して利用するものです。

メッセージフィルター機能についての説明は、以下のページをご覧ください。

メッセージフィルター

本稿のメッセージフィルターは文言の書き換えと異なり、パラメータを変更するために用意されたものです。

開始年の設定

年セレクトボックスは、西暦年が降順に表示されます。メッセージフィルターは開始年と終了年の設定の2種類ありますが、最初に開始年の設定を変更する方法を説明します。

開始年を1年前から、とする場合のサンプルプログラムです。

add_filter('mtssb_birthday_recent', 'birthday_recent', 10, 2);
 function birthday_recent($year, $thisYear) {
     return $thisYear - 1;
 }

終了年の設定

開始年を105年前まで、とする場合のサンプルプログラムです。

add_filter('mtssb_birthday_aged', 'birthday_aged', 10, 2);
 function birthday_aged($year, $thisYear) {
     return $thisYear - 105;
 }

注意点としまして、プログラムの判定文は指定された年で出力を停止するようにしています。そのため「2021 – 105」の値を戻すと、セレクトボックスの選択肢は「1916」が出力されず、「1917」までとなります。

年齢入力のチェック範囲を変更する

予約フォームにおける生年月日入力を必須に設定した場合、年齢計算のチェック対象となります。年齢計算のチェックはデフォルトで「1歳〜90歳」の範囲が有効、それ以外は入力エラーを出力します。

以下年齢の有効範囲を、0歳〜105歳に変更するサンプルプログラムです。

add_filter('mtssb_booking_age_limit', 'booking_age_limit', 10, 1);
function booking_age_limit($ages) {
    return array('lower' => 0, 'upper' => 105);
}

(2021-10-15 追加)

サンプルプログラムの利用に関して

本稿はPHPプログラムを利用しますので、プログラムに誤りがある場合は画面が白く表示されたり、あるいはエラーメッセージが表示されることがありますのでご留意ください。