Ver.1.8.5 オプション機能にテキストエリア、時刻入力を追加

オプション機能項目追加

オプション注文設定の入力項目に、新たにテキストエリア入力と時刻入力を追加しました。

どちらもオプション項目を登録する際、フィールドタイプから選択できます。

フィールドタイプリストテキストエリア

フロントエンドで表示されるテキストエリアの入力項目サイズの調整は、CSSで設定をお願いします。フロントエンドで表示する際、textarea タグには「id=”booking-option-xxx”」が設定されますので、セレクター指定にご利用下さい。

なお「xxx」の部分は、管理画面のオプション項目を登録するとき設定した「項目のキー名」になります。

テキストエリアの入力最大文字数は1000文字です。それ以上の入力はカットされます。またタブコード、改行コード以外のコントロールキャラクターも削除されます。

入力された文章は、予約時の自動返信メールで入力項目の内容として表示されます。本システムでは受信したメールを参照する際、見やすいように連続された文章を決められた幅で分割します。幅は全角1文字を2カラムとして、デフォルトで78にしております。ただしフォントにより1文字の幅が変わる場合がありますので、目安と考えて下さい。

メールの文章で分割するカラム数は、以下のようにフィルタープログラムを利用して変更することができます。

function mts_mail_chg_chars($width, $keyname) {
    if ($keyname == 'xxx') {
        return 86;
    }
    return $width;
}
add_filter('booking_mail_chg_chars', 'mts_mail_chg_chars', 10, 2);

「xxx」は、オプション設定で登録した「項目のキー名」です。当該キー名のテキストエリア入力項目だけ「86」に変更する例です。

時刻入力

時刻入力の時間は0時から23時、分は0分から10分刻みでセレクトボックスから選択できるようになっています。これらはメッセージフィルター機能を利用することで変更することができます。

以下は10時から20時まで2時間置きで、15分刻みでの入力に変更する例です。

function mts_wptime_hour_range($param, $keyname='') {
    if ($keyname == 'xxx') {
        return array('min' => 10, 'max' => 20, 'step' => 2);
    }
    return $param;
}
add_filter('mtssb_wptime_hour_range', 'mts_wptime_hour_range', 10, 2);

function mts_wptime_minute_range($param, $keyname='') {
    if ($keyname == 'xxx') {
        return array('min' => 0, 'max' => 59, 'step' => 15);
    }
    return $param;
入力フォーム画像のオプション設定のメッセージフィルター使用例

図のように、オプション項目のメッセージや、メールに表示されるタイトルを切り替えるメッセージフィルターの例を以下に示します。

フロントエンドで「オプション注文」を別のメッセージに切り替えた場合、メールで表示される項目名に「[ ]」がつかなくなるので、それを例のように書き換えます。

// オプション注文タイトルの書き換え
function mts_option_title($str, $mail='') {
    if ($mail == 'mail') {
        return '[アンケート]';
    }
    return 'アンケート';
}
add_filter('booking_form_option_title', 'mts_option_title', 10, 2);

// オプションメッセージの書き換え
function mts_option_message($str) {
    return '以下の項目の回答にご協力をお願いします。';
}
add_filter('booking_form_option_message', 'mts_option_message');