会員登録は WordPress標準の登録フォーム(ログインフォーム下にある「登録」リンク)から行えるのですが、会員制サイトとしては以下のようなことができません。

  • 新規会員登録の際、管理者側で承認制にしたい
  • 登録フォームを、フロント側に設置したい
  • 登録時に入力する項目を追加したり、必須項目を設けたい
  • 登録時に送信されるメールの通知文を独自に変更したい など

WP-Members」は、そうした機能を提供してくれるプラグインです。

以下、OLBsystem をインストールした状態で、「WP-Members」を併用してみました。

 

確認環境

WordPress3.6
テーマTwenty Twelve 1.2
プラグイン OLBsystem 0.1.4
WP-members 2.8.5
WP Multibyte Patch 1.7

 

手順

  1. WordPress管理画面の「プラグインのインストール」から"WP-Members"で検索し、プラグインをインストールして有効化します。

  2. WP-Membersの導入にともない、ユーザー新規登録方法を変更します

    WordPressの一般設定
    メンバーシップだれでもユーザー登録ができるようにする → OFFに
  3. WP-Membersで必要なページを作成します

    ページ名スラッグ名ショートコード
    新規会員登録register[wp-members page="register"]
    ログインlogin[wp-members page="login"]
    ユーザープロファイルuserprofile[wp-members page="user-profile"]
  4. WP-Membersの設定を次のようにしました。

    オプション設定
    管理者に通知新規ユーザー登録の際、管理者にメールで通知します
    User Profile Page:上で作成した「ユーザープロファイル」ページ
    Register Page:上で作成した「ログイン」ページ
    フィールド追加 (*1)
    スカイプID
    (user_skype)
    [ラベル名]: "スカイプID"
    [オプション名]: "user_skype"
    [タイプ]: テキスト
    [表示/必須]: ともにチェック

    フィールドの追加
    wp-members-01
    追加後
    wp-members-02
    メール設定
    ※各通知文を適宜変更します

    *1) [追記]
    プラグイン「WP-Members」を併用した場合、WordPressのユーザー編集ページに追加された項目「スカイプID」が、WP-Membersで提供される「新規ユーザー登録」ページと「プロフィール編集」ページには表示されないようです。
    WP-Membersの設定で、新たに同名(user_skype)のフィールドを追加することで対処しました。

  5. OLBsystemの設定を変更します

    全般設定ー特別なページの名前
    ログインページlogin(上で作成した「ログイン」ページのスラッグ)
  6. WordPressの「外観ーウィジェット」の「会員専用」のリンクメニューを適宜変更します。
    「会員専用」ウィジェットは OLBsystem付属のウィジェットで、会員のログイン中にだけ表示されるブロックです。

 

会員ログインの流れを確認

  1. ログオフした状態で「マイページ」にアクセスすると、WP-Members用に作成した「ログイン」ページにリダイレクトされます。

  2. ログインすると「マイページ」へリダイレクトされます。

これらのリダイレクトは、OLBsystem の「全般設定」に従っています。

 

新規会員登録の流れを確認

  1. ログオフした状態で「講師週間スケジュール」から予約フォームを開くと、WP-Members用に作成した「ログイン」ページにリダイレクトされます。

  2. 「ログイン」ページ下の「はじめての方はこちら 新規ユーザー登録」から「新規会員登録」ページを開きます

  3. 必須項目を入力して会員登録すると、申込者と管理者にメールで通知されます

  4. 管理者が、申込者の会員登録を承認すると、申込者にIDとパスワードが通知されます

  5. 申込者がログインすると「マイページ」へリダイレクトされます

 

WP-Membersで追加した項目をマイページなどに表示

WP-Membersを使って追加したフィールドを、OLBのマイページなどに表示させたい場合は、WP-Membersのショートコードを使います。
詳しくは WP-Membersのユーザーガイドを参照されてください。

こちら WP-Members: Field shortcodes

 

講師や会員(生徒)の名前を「姓+名」形式にしたい

OLBの各ページにおける「講師」や「会員」の名前を表示する部分は、それぞれのユーザーの「ブログ上の表示名(display_name)」を使っています。
なので、ユーザーの「ブログ上の表示名」を「姓+名」にすればその通りに表示されます。

ちなみに、OLBを使っているユーザーさんの中には、「WP-Members」などのユーザー管理系のプラグインを併用されている方もおられるようで、ユーザー登録の時点で「姓・名」も入れさせているケースもあるようです。(WordPressの標準の「ユーザー登録」フォームには、ユーザー名とメールアドレスしか入力欄がないため)

ユーザー登録の際に、入力された「姓・名」から「ブログ上の表示名」を自動的に「姓+名」として設定するには、以下の記事が参考になるかもしれません。

[参考] WP-Members:ユーザーの登録時にdisplay_nameを自動で設定する方法
https://41y.me/wp-members-set-display-name/

優れたプラグインを公開してくださっている作者の皆さんに感謝します。