WordCamp Haneda 2019 - 4月20日(土)、4月21日(日) 大田区産業プラザPiOにて開催

サブスクリプションタイプの会員制ブログサイトを構築

はじめに

主旨は、以下の記事と同様です。

以下で紹介するサブスクリプションタイプは、継続に関する自由を与えるサブスクリプションタイプです。会員登録時にユーザーに期間分の支払いをいただいて、期間が過ぎたらユーザー登録が抹消されます。再度サービスを受けたければユーザーが再登録し支払うというしくみです。

プラグイン

以下のプラグインを使用します。すべて無料で WordPress 公式のものです。


ユーザーを一定期間登録
メールのみでユーザー登録

PayPal での課金

Stripe での課金
投稿の権限管理

仕組み

Members は、ログインしているユーザーの権限で投稿をアクセス制御できます。ユーザーを購読者権限で登録させ、投稿を購読者権限にしておけば、購読者権限のユーザーのみ購読可能という仕組みを作れます。

User Period Register は、仮登録機能が付与されています。仮登録時は独自の権限なので、 Members で投稿を購読者権限にしておくと投稿を読めません。仮登録させログインしていただき、ダッシュボード上での課金の際に、本登録として購読者権限を付与させ、期間登録させます。仮登録と本登録の期間は、設定できます。デフォルトは、仮登録1時間、本登録1年です。期間が過ぎると、自動でユーザー登録が削除されます。

MembersUser Period Register は、権限を自由に設定できます。当たり前の事ですが、投稿の権限と、本登録の権限を合わせなければなりません。

Simple PayPal PaymentSimple Stripe Payment は、User Period Register に課金機能を付与するものです。User Period Register 専用というわけでは無くフィルターを持っているので、User Period Register 側から呼び出しているだけです。

実際の流れ

Members を設定します。Multiple User Roles のチェックを外してください。このチェックが入っていると、管理者からユーザーの権限を変更したときに、有効期限を変更できません。Enable Permissions には必ずチェックを入れ、投稿の権限が無い際に出る Error Message を都合の良いものに変更すべきです。
投稿します。権限を購読者のみにします。
Simple PayPal Payment の設定です。今回は10,000円に設定します。
Simple Stripe Payment の設定です。今回は10,000円に設定します。
User Period Register が無効の場合
User Period Register を有効化すると、「だれでもユーザー登録ができるようにする」にチェックが入り、新規ユーザーのデフォルト権限グループは、仮登録になります。再び無効化すると元に戻ります。
User Period Register の設定です。仮登録の有効時間は1時間、支払い済みのユーザーの権限は購読者、支払い済みのユーザーの有効日数は1年とします。
通常の WordPress の登録フォームから登録します。User Mail Only Register を有効化するとメールアドレスのみの登録となります。また、利用規約のチェックが入ります。
ユーザーにメールが届きます。通常の WordPress のユーザー登録と同じく、パスワードリセットへのリンクからアクセスします。
パスワードをリセットしたら、そのパスワードと登録したメールアドレスでログインします。
ログイン画面です。まだ仮登録となっています。投稿にアクセスしてみます。
権限が違うので本文が読めません。メッセージは、Members で設定したものです。
管理者権限でログインしユーザー一覧を見てみると、権限が仮登録になり、有効期限が1時間後になっています。
仮登録ユーザーのダッシュボード上で課金してみます。
登録済みになります。投稿にアクセスしてみます。
投稿の本文が見える状態になっています。
管理者権限でログインしユーザー一覧を見てみると、権限が購読者になり、有効期限が1年後になっています。
有効期限は wp-cron で登録されています。wp-cron を管理できるプラグインから実行してみます。
wp-cron が実行され、wp-cron が削除されます。
wp-cron が実行されると、ユーザーが削除されます。逆にユーザー一覧画面からユーザーを削除すると、wp-cron も削除されるようになっています。
ユーザーが削除されると登録者にメールが届きます。