WordPress│noteライクな会員制サイトの作り方│WP-Members

WordPressで会員制サイトを作るならWP-Membersがおすすめです。

登録されたメンバー限定の記事を公開することができますが、

  • 登録時にアンケートを収集できる
  • 期間限定公開ができる
  • PayPalと連携してサブスクリプション機能が付与できる
  • さらにカスタマイズすればnoteのような部分的な会員限定記事の表示もできる

とすぐれたプラグインです。

本記事ではWP-Membersのできることや使い方、カスタマイズを紹介します。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

WP-Membersのできること・特徴

WP-Membersでできることをまとめました。

投稿表示の制限が設定できる

投稿・固定記事ごとにメンバー向け限定か、プラン別のメンバーシップ限定かの制限を設けることができます。

記事内の一部だけ会員限定にするみたいなことはできません。
→カスタイマイズすればできます(後述)

期間限定の設定ができる

設定からメンバーシップを有効化すると、メンバーシッププランが設定できます。

またユーザーが会員登録した際にメンバーシップに自動加入することができますので、

登録日から一ヶ月限定、または指定期間内等の設定もできます。

もちろん先の項目で書いた通り、このメンバーシップごとの限定記事として設定することもできます。

PayPal連携でサブスクリプション機能が追加できる

年間$49($1→133円換算なら6,500円)ほどかかりますが、追加の拡張機能をいれると、決済機能を追加できます。

その他の拡張機能

有料になりますが、他にも拡張機能がさまざまあります。

うまく機能を使いこなせば、魅力的なサブスクリプションサイトが作成できるかもしれません。

拡張機能名備考価格
Advanced Options本来、functions.phpで実装する機能が最初からつけることができます。$49
Download Protectダウンロードの保護機能$49
Invite Codes招待コード機能$49
MailChimp IntegrationMailchimpのメルマガ機能との統合$49
Memberships for WooCommerceSalesforce Integrationの決済機能との統合$49
PayPal SubscriptionsPayPalの決済機能との統合$49
Securityセキュリティ強化$49
Stop Spam Registrationsスパムメール防止$1
Text String Editorテキストで編集できる部分が拡張できる$29
User Listユーザーリストが拡張できる$49
User Trackingユーザートラッキングが拡張できる$49
Pro Bundle上記の機能全部入り!(※1年間のサブスクリプション)$149
Send Test Emails検証用の機能$0

WP-Membersを使った会員限定サイトを作り方

WP-Membersで最もシンプルなチュートリアルを書きました。

以下、サンプルサイトです。

WordPressの設定

限定記事の情報流出を防ぐために、下記の設定をしておきます。

RSSを抜粋に

管理画面 > 設定 > 表示設定 >

フィードの各投稿に含める内容を抜粋に変更

コメント

管理画面 > 設定 > ディスカッション

ユーザー登録してログインしたユーザーのみコメントをつけられるようにするにチェック

登録ページとユーザープロフィールページの作成

以下の2つは必ず作成してください。

登録ページは当然として、会員登録時にユーザープロフィールページを作成しないと確認用リンクが生成されない[[confirm_link]]現象が起きてしまいます。

登録ページ

固定記事を1つ、新規で作成します。

本文は[[wpmem_form register]]というショートコードを記入してください。

ユーザープロフィールページ

本文は[[wpmem_profile]]というショートコードを記入してください。

WP-Membersのオプション設定

今回はシンプルな導線にしてますので、ほとんどの機能を切っています。

  • コンテンツの制限は制限しない
  • ログインフォームや登録フォームは投稿記事だけ表示するようにチェックをいれています。

特にチェックする場所はありません。

リンクの確認をしたい場合や、承認したい場合はチェックおwいれましょう。

会員登録フォームとユーザープロフィールページだけ登録しています。

以上です。

メンバーシップの作成

こちらの設定は必須ではありませんが、登録した会員を期間限定の制限をかけてみます。

WP-Membersのオプションメンバーシップ機能を有効化

WP-Membersオプションからメンバーシップを有効化をONにしましょう。

管理画面にメンバーシップというメニューが作成されます。

メンバーシップの作成

名前(スラッグ)を設定しましょう。

あとは会員登録時、デフォルトでこのメンバーシップに適応されるようにしておきます。

また限定のオプションをONにして、登録から一ヶ月経過するとアカウントが停止するように設定しておきます。

WP-Membersのダイアログ設定

今回はエラーの文言の和訳はスキップします。

WP-Membersのフィールド設定

会員登録時、色々なフォームを設定して情報が取得できます。

今回はすべてのチェックを外して、設定を保存します。

WP-Membersのメール設定

会員登録に使うメールのメッセージが英語のままなので、日本語に直します。

日本語訳

新規ユーザー登録

件名

[blogname]へのご登録情報

本文

[blogname]へのご登録ありがとうございます!

あなたの登録情報は下記の通りです。

ユーザー名: [username]
パスワード: [password]

あなたのパスワードは下記から変更できます。
[user-profile]

会員の登録情報ページは下記になります。
[reglink]

リンクの確認をしない場合の文言です。ダイレクトにパスワードを表示させています。

パスワードのリセット

件名

[blogname]のパスワードリセット

本文

[blogname]のパスワードリセットがリクエストされました。

以下のリンクをクリックしてパスワードをリセットしてください:
[reset_link]

もし[blogname]のパスワードリセットをリクエストしていない場合は、このメッセージを無視してください。リセットキーは失効されます。

ユーザー名の回復

件名

[blogname]のユーザー名

本文

[blogname]のユーザー名が以下に記載されています。

ユーザー名: [username]

署名 (任意)

本文

このメッセージは[blogname]からの自動送信メールです。
このアドレスには返信しないでください。

会員登録の流れの確認

会員登録するボタンを設置して、登録ページを表示するようにしてきます。

ユーザー名とメールを入力して会員登録します。

※ユーザー名は他のユーザーと被らない名前にしましょう。

登録後、登録したメールを確認します。

迷惑メールに入っている可能性もあるので、無い場合は探しましょう。

メールのユーザー名とパスワードを使ってログインします。

ログイン後、先ほどの記事に戻ると会員限定コンテンが表示されています!

自動で元の記事に戻るには次のカスタマイズの項目を参考にしてください。

WP-Membersのカスタイマイズ

以下、WP-Membersをさらに便利にするカスタマイズを紹介します。

ログイン後に遷移元ページにリダイレクト

限定記事の場合、遷移するとコンテンツの代わりにユーザープロフィールのページが表示されます。

その場合にログインした時に、下記のコードを記載するとログイン後に遷移元のページに戻ることができます。

is_page('ログインページのスラッグ')を変更してください

function init_session_start(){
	if(is_page('ログインページのスラッグ')){
	} else {
		session_start();
		unset($_SESSION['expage']);
		$_SESSION['expage'] = $_SERVER["REQUEST_URI"];
	}
}
add_action('init', 'init_session_start');

function my_login_redirect( $redirect_to, $user_id ) {
	$ref = $_SESSION['expage'];
  if ($ref) {
	return $ref;
  } else {
	return home_url();
  }
  }
  add_filter( 'wpmem_login_redirect', 'my_login_redirect', 10, 2 );

参考

会員限定記事だけにクラスを付ける

会員限定記事だけにクラスをつけて、見た目を変えやすくできます。

function add_restricted_body_class($classes) {
    global $post;
    if (function_exists('wpmem_securify')) {
        $is_restricted = get_post_meta($post->ID, '_wpmem_block', true);
        if ($is_restricted == 1) {
            $classes[] = 'restricted-post';
        }
    }
    return $classes;
}
add_filter('body_class', 'add_restricted_body_class');

参考

有料カスタマイズ

これ以下のカスタマイズは有料コンテンツとなります。

有料カスタマイズ
  • 記事内の一部だけ会員限定にする
  • ログイン後に前の表示したページに戻る
  • URLをコピーしました!
目次