simple membership 会員登録プラグイン 一部表示制限方法
wordpressで簡単に会員サイトが構築できるsimple membershipプラグインは多くのサイトで利用されています。
このsimple membershipをさらに使いこなすテクニックをご説明いたします。
今回は、「会員レベルごとの部分表示制限」方法をついて解説致します。
simple membershipでやりたいこと
ページの一部をログインしているユーザのみにさせたい。
欲を言えば、会員ランクごとに表示を制御したい。
例えばTOPページに会員限定コンテンツを表示させ、ログイン時のみ表示させるといった用途になります。
simple membership会員ランクの作成
simple membershipプラグインを導入したらまず行う設定が、会員ランクの作成です。
一番最初に行うのは、「会員登録後の会員のレベルを定義する」ことです。
例では複数の会員レベルがありますが、例えば課金サービスに加入した場合は「有料会員」にアップグレードするなどの設定も可能です。
会員のレベルごとの表示制限設定をするには、『ID』という項目を参照するので
この項目は覚えておいてください。
表示制限をするには、2通りの方法があります。
- プラグインよる表示制限
- PHPへのプログラム記述による表示制限
simple membershipプラグインによる表示制限
simple membershipの公式サイトがリリースしているSWPM Partial Protectionというプラグインを使います。
公式サイトから無料でダウンロードできますので、自身のサーバにアップロードして利用頂けます。
使い方はシンプルで、下記のショートコードの条件に合わせて挟まれた部分のみを特定の会員レベルでログインした時に表示します。
会員ログイン時のみ表示
[swpm_protected] この部分はログイン時のみ表示されます。 [/swpm_protected]
ログインしていない状態では、文言が表示されます。
何の装飾もないメッセージですが、こちらはオプションにより
デザインを変更したり、削除したりすることができます。
詳細はオプションの説明に記載いたします。
特定の会員レベルでログインした場合のみ表示
会員レベルを指定して、表示できるようにしています。
下記サンプルは会員レベルが「1」か「2」の場合に表示されます。
[swpm_protected for="1-2"] 会員レベルが「1」か「2」の場合のみ表示される。 [/swpm_protected]
特定の会員へのみ表示
利用用途があるかわかりませんが、特定の会員にのみコンテンツを表示させることもできます。
[swpm_protected member_id="1"] 会員IDが「1」のユーザのみ表示される。 [/swpm_protected]
ログインしているユーザに表示
[swpm_protected visible_to="logged_in_users_only"] ログインしているユーザすべてに表示する。 [/swpm_protected]
ログインしていないユーザに表示
こちらは逆にログインしていないユーザへの表示用です。
[swpm_protected visible_to="not_logged_in_users_only"] ログインしていないユーザに表示する。 [/swpm_protected]
オプション
会員レベルによる表示制限メッセージの変更
デフォルトのメッセージは質素なものですが、オプションによりメッセージを変更できます。
[swpm_protected for="2" format_protected_msg="1"] 会員レベルが「2」の場合のみ、メッセージ表示 [/swpm_protected]
会員レベルが「2」ではないユーザに対しては下記のメッセージが表示されます。
simple membershipプログラムによるコンテンツ表示制限
プラグインを使わず、コードを直接記述する事でも
会員レベルとの表示制限が可能です。
//simple membershipのインスタンス生成 $auth = SwpmAuth::get_instance(); //simple membershipの会員レベル情報を取得 $permission = SwpmPermission::get_instance($auth->get('membership_level')); //認可されていればコンテンツ表示する if($permission->is_permitted(get_the_ID())){ //ここにコンテンツを記述する }
こちらは、記事ごとに指定した表示可能レベルの条件に従って
表示可能な会員にのみコンテンツを表示させています。
SWPM Partial Protectionを使うとうまくページごとのコンテンツ表示制限が効かなくなることがあり、この記述方法も一部利用しています。