Web制作・開発会社 プレスマンのスタッフブログ

PRESSMAN*Tech

第3部 会員管理プラグイン「Simple Membership」の会員限定記事に関する課題

それでは、全3部構成の最後になる第3部として、
第3部 会員管理プラグイン「Simple Membership」の会員限定記事に関する課題
を書いていきます。

ちなみに、全3部構成になっています。

第1部 会員管理プラグイン「Simple Membership」の使い勝手
第2部 会員管理プラグイン「Simple Membership」の拡張プラグイン「Form Builder Addon」について
第3部 会員管理プラグイン「Simple Membership」の会員限定記事に関する課題

全3部構成の最後になる第3部では、
恐らく「Simple Membership」を使っていく上で
課題となる内容を書いていきます。

「Simple Membership」の公開範囲限定機能

「Simple Membership」のメイン機能に、
WordPressで作成した記事を
会員専用にするかどうかを設定できる機能があります。

この機能を使った会員専用記事を見ようとした場合、
ログインしてない場合は、見れなくなります。
(ログインページに飛ばされます)

また、記事毎に、会員レベル別の公開範囲を設定する事も可能なので、
Aの記事は、会員レベル1と会員レベル2の会員のみが見れる
Bの記事は、会員レベル2の会員のみが見れる
といった使い方が出来ます。

「Simple Membership」がサブスクリプションに対応しているので、
会員レベル1=無料会員
会員レベル2=定期購入している有料会員
といった使い方が出来るのが、大きいかもしれませんね。

公開範囲限定機能が大量件数に耐えられない

結構便利な会員レベルに紐づく公開範囲限定機能なのですが、
実は、大きな課題がありました。

恐らく、使い始めの公開範囲限定記事が少ない時は、
殆ど影響が出ないと思います。

っというのは、この「公開範囲限定記事かどうか」という判断基準となる情報が、
wp_optionの1レコードの1カラムの中に
シリアライズされた形で格納されてるという仕様が
記事が少ない場合は影響しないからです。

記事を閲覧した際、その記事が「公開範囲限定記事かどうか」を
「Simple Membership」の判定関数でチェックしているのですが、
その時、シリアライズされた配列の中を in_array で探しています。

どの記事の閲覧でもチェック処理が動くので、
公開範囲限定記事数が増えれば増えていく程
どんどんサイトが重くなっていきます。

大量の公開範囲限定記事への対処方法

■対処方法として
そこで今回、以下の対処方法を実装しました。

1.「Simple Membership」の限定公開判定用カテゴリを追加
2.限定公開判定では、限定公開判定用カテゴリの投稿かを見るように修正

「Simple Membership」の標準機能に、
特定のカテゴリの投稿を限定公開にするという機能があります。

そこで、限定公開記事というカテゴリを作り、
限定公開の投稿記事を保存する際、
そのカテゴリを記事毎に紐付けるように実装しました。

また、フロント画面側では、「Simple Membership」の判定関数を使わず、
その記事自体が限定公開判定用カテゴリかどうか判定するようにしました。

これにより、 in_array での処理を使わなくなるので、
かなり軽い判定処理になります。

実際にこの実装に変えた事により、
サイト全体がかなり軽くなりました。

他にも対処方法はあるかもしれないのですが、
「Simple Membership」をサイト利用される方は
まず、この課題の対処方法を検討して頂くのが必須かと思います。

■さいごに
ここまで色々書きましたが、「Simple Membership」は
結構良く出来たプラグインだと思います。

決済代行会社にストライプを利用したのですが、
サブスクリプション連携の部分での不具合もありませんでした。

今回特に書いてませんが、
会員登録時のメール認証機能による
会員登録機能まで付いてます。

もし、WordPressでサブスクリプションのサイトを作るのであれば、
選択肢の1つとしてオススメ出来るプラグインだと思います。