運営されているサービスによっては、「申込プランによって、各会員が予約できる講師を絞り込みたい」というケースもあるかと思います。
OLBの機能拡張コードである「講師抽出モジュール」を使うと、会員ごとに予約可能な講師を絞り込むこともできます。

 

申込プランと担当講師の例

例えば、Skypeを使ったオンライン語学レッスンなどで、申込プランに応じて担当講師が異なり、各会員が予約できる講師を限定しているケースがあります。

例)プランごとに担当講師が異なるケース

 AプランBプランCプラン
月額料金3,000円5,000円8,000円
予約可能な講師John先生
Smith先生
Betty先生
Clark先生
Grace先生
Kevin先生
Lucy先生
予約保持数3コマ5コマ8コマ

OLBでは、機能拡張コードを使って「プランごとに、各会員が予約できる講師を絞り込む」ことができます。

 

日別スケジュール(全講師)について

「日別スケジュール(全講師)」ページは、日ごとの講師のスケジュールを並べて一覧するためのページです。標準のOLBでは「全ての講師」が表示されます。

講師抽出モジュールでできること

OLBの機能拡張コード「講師抽出モジュール」を使うと、この日別スケジュールの中で「表示する講師」や「表示しない講師」を指定できるようになります。

例えば、プランごとの担当講師に絞った「日別スケジュール」ページを作ることもできます。

日別スケジュール

日別スケジュール

 

プランごとの担当講師の「日別スケジュール」を作る

※「講師抽出モジュール」のインストール手順などはこちらを参照してください。
OLB講師抽出モジュール:インストールと有効化

[olb_daily_schedule]にパラメータを付加する

講師抽出モジュール」を導入すると、ショートコード [olb_daily_schedule] にパラメータを付加することができるようになります。

既成のページを変更する場合 OLB本体を有効化したときに自動的に作成された「日別スケジュール(全講師)」ページを編集し、ショートコードにパラメータを付加します。
新たなページを作成する場合 既成の「日別スケジュール」ページとは別に、新たなページを作成し、ショートコード[olb_daily_schedule]を挿入します。

 

例えば、「Aプラン」の担当講師である「John先生(ID:2)」と「Smith先生(ID:3)」のスケジュールだけを表示する場合、以下のように「include_ids」パラメータを加えます。

例)ID:2,3の講師だけを表示する

[olb_daily_schedule include_ids="2,3"]

「Bプラン」や「Cプラン」についても同様に担当講師のIDを指定すれば、各プランごとの「日別スケジュール」ページを個別に作ることができます。

 

各会員の「プラン」に応じてスケジュールを表示する

「各会員がどのプランに申し込んでいるか?」という情報があれば、1つの「日別スケジュール」ページの中で、会員の申込プランに応じて担当講師を絞り込んだスケジュールを表示させることができます。

各会員に「申込プラン」の情報をもたせる

各会員に「申込プラン」の情報をもたせるには、user_metaデータを使う方法があります。
プラグイン「WP-Members」を使うと、会員ユーザーのプロフィールに新しいフィールドを追加することができます。

 

以下は、WP-Memberを使って、ユーザー情報に「申込プラン」を追加する手順です。
* WP-Membersが有効化済みという前提です。

  1. WPの管理画面「設定:WP-Members」を開きます
  2. 上部の「フィールド」タブを開きます
  3. 「フィールドの追加」欄で、「申込プラン」のフィールドを追加します

    [ラベル名] 申込プラン
    [オプション名] myplan
    [フィールド形式] テキスト
    [表示] (チェックする)
    [必須] (チェックしない)

  4. WPの管理画面「ユーザー」から会員ユーザーの編集ページを開きます
  5. 項目「申込プラン」に「A」や「B」などプラン名を入れて更新します

新たに「日別スケジュール」のショートコードを作る

お使いのテーマの「テーマのための関数(functions.php)」に、以下のようにショートコードを追加します。

 

この「日別スケジュール」のショートコードは、次のように表示します。

  • ログインしていない訪問者には「会員以外は見ることができません」と表示
  • ログイン中の会員の「申込プラン」が「A」の場合、講師2,3のスケジュールを表示
  • 会員の「申込プラン」が「B」の場合、講師4,5のスケジュールを表示
  • 会員の「申込プラン」が「C」の場合、講師6,7,8のスケジュールを表示
  • 会員の「申込プラン」が「A,B,C」以外の場合「申込プランが決まっていません」と表示

 

「日別スケジュール」のショートコードを差し替える

その上で、OLBを有効化した時に作成された「日別スケジュール(全講師)」ページの本文のショートコード [olb_daily_schedule] を、上で追加した [my_daily_schedule] に変更します。

[olb_daily_schedule] → [my_daily_schedule]

これで、会員がログインしているときは、その会員の「申込プラン」に応じた担当講師のスケジュールだけが表示されるようになります。

 

各講師の「週間スケジュール」への対応

日別スケジュールについては対応できましたが、「講師紹介記事」の本文に挿入している、各講師の「週間スケジュール」は、そのままでは誰でも見ることができます。

そこで、簡単なショートコードを作って、その講師が担当するプランを指定し、ログイン中の会員の「申込プラン」とその講師の担当プランが一致するときだけ「週間スケジュール」を表示するようにしてみます。

申込プランに応じて「週間スケジュール」を非表示に

お使いのテーマの「テーマのための関数(functions.php)」に、以下のようにショートコードを追加します。

 

その上で、「講師紹介記事」の本文中のショートコード [olb_weekly_schedule id="xx"] を、上で追加した [is_my_plan] で囲います。

[is_my_plan plan="A"][olb_weekly_schedule id="xx"][/is_my_plan]

ここで指定している、plan="A" の部分が、その講師の担当プランです。

  • 講師が「Bプラン」の担当講師であれば、[is_my_plan plan="B"]とします
  • 講師が「Cプラン」の担当講師であれば、[is_my_plan plan="C"]とします

 

上のショートコードを使うと、次のように動作します。

  • ログインしていない訪問者には「会員以外は見ることができません」と表示
  • ログイン中の会員の「申込プラン」が「A」の場合、この講師の週間スケジュールを表示
  • 会員の「申込プラン」が「A」以外の場合、週間スケジュールを表示しません
    (代わりに、この講師が担当するプランを表示します)

これで、会員がログインしているときは、その会員の「申込プラン」の担当講師でなければ週間スケジュールが表示されなくなります。

 

ご参考になれば幸いです。