Ver.1.9 オプションのグループ設定

異なるオプション

一連のオプション項目を1つのグループとして、複数のグループを設定・登録できるようになりました。これにより予約品目ごと、異なるオプションを設定することができるようになりました。

登録・設定方法は今まで通り、大変簡単です。

オプショングループ

関連するオプション項目をまとめたものを「オプショングループ」と呼びます。オプショングループには数量の制限がありません。予約品目へのオプショングループの指定は後ほど説明しますが、異なる予約品目に同じオプショングループを指定しても異なるオプショングループを指定してもどちらでも構いません。

管理画面からオプション設定を実行すると、オプショングループの選択画面が表示されます。最初はオプショングループは何も登録されていないため表示されません。

オプショングループ追加ただし、以前のバージョンでオプションを登録していると、オプショングループのキー名に「default」、名称に「Default」と名付けたオプショングループが1つ、新しいシステムで利用できるように用意されます。

新しいオプショングループを登録する場合は、新規追加ボタンを押して下さい。そこに半角英数文字を使ってオプショングループのキー名、そして名称を入力して追加ボタンを押します。キー名や名称を変更する場合は、名称の編集ボタンを押して操作します。

管理画面オプショングループ設定オプション登録リストとオプション項目の追加・編集

オプショングループに登録するオプション項目は、オプショングループの選択で「オプションリスト」ボタンを押して次のオプション登録リストから操作します。

管理画面オプション登録リスト以前と同じようにオプションリストが表示されます。新規追加や編集はこの「オプション登録リスト」から実行して下さい。

管理画面オプション追加設定なお、フィールドタイプは上図のものが利用可能です。

予約品目にオプショングループを設定する

登録したオプショングループは、予約品目の登録で選択できます。また、予約品目によりオプションを利用しない設定も可能です。

予約品目の編集画面の下の方に、下図のような「予約処理設定」の設定項目が表示されます。

管理画面予約品目オプショングループ選択オプションを利用する場合は「オプション有無」をチェックし、「タイトル名」でオプショングループを選択して下さい。

以上で予約フォームで選択したオプショングループの入力項目が利用できるようになります。

予約入力フォーム画面のメッセージフィルターによる書き換えについて

メッセージフィルター機能を利用してオプションに関するメッセージを書き換えている場合、複数のオプショングループが利用できることで、書き換えるメッセージもそれに合わせて変更したい場合があるかも知れません。

そこで新たに、予約入力フォームでどの予約品目が対象かIDが判別できる機能(フィルター)を用意しました。フィルター名は「booking_form_set_article_id」です。

このフィルター関数は予約フォームが表示される前(あるいはメール文章を生成する前)に、対象となる予約品目のIDを知らせてくれます。ですので、このフィルターで予め対象予約品目IDを保管し、メッセージフィルター内でIDを判定して書き換えるようにすればOKです。

次に例を示します。例はオプションのタイトルを、予約品目ランチ、またはディナーに合わせて書き換えるものです。

// 予約品目IDの保管
function mtssb_set_article_id($aid) {
    global $mtssb_article_id;
    $mtssb_article_id = $aid;
}
add_filter('booking_form_set_article_id', 'mtssb_set_article_id');

// 予約フォームの書き換え
function mtssb_form_option_title($msg) (
    global $mtssb_article_id;
    if ($mtssb_article_id == xx) {
        return 'ランチご注文';
    } elseif ($mtssb_article_id == yy) {
        return 'ディナーご注文';
    }
    return $msg;
}

このプログラムで「$mtssb_article_id」は予約品目のIDを保管するグローバル変数になりますが、WordPressや他のプラグインで利用するグローバル変数と名前が重ならないように、注意して名付けて下さい。