エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


Never Let Me Goで会員制サイトの退会機能を実装

      2017/03/11

Never Let Me Goで会員制サイトの退会機能を実装しよう

 

Never Let Me Goとは?

 
WordPressの機能の中には「退会する」という機能がありません。
その「退会する」という機能を実現するプラグインが「Never Let Me Go」です。
 
より具体的には、
WordPressには、権限があるユーザがユーザ情報を削除する機能はあるのですが、ログインしているユーザが自らのログイン権限を破棄するという機能がないのです。
そのため、会員制サイトを構築するプラグイン、例えば「Theme My Login」にもユーザ登録をする機能は付いているのですが、退会する機能は付いていないのです。
 
なので、登録したユーザが自ら退会をしたいという時に退会してもらうための機能を実現するには「Never Let Me Go」を利用する必要があるのです。
 
※Theme My Loginについては「Theme My Loginでメール認証、管理者承認付の会員管理・基本編」に記事を書いています。
 
 

Never Let Me Goのインストール方法

 
WordPressのプラグインのインストール方法は、「WordPressプラグインの3つのインストール方法解説」に記事を書いていますので、そちらを参考にしてください。
 
 

Never Let Me Goの設定方法

 
「Never Let Me Go」をインストールすると、左ナビゲーションの「設定」の中に「退会設定」というメニューが追加されます。
ここをクリックして表示される下記の画面で設定を行います
 
20160421_web_01
 
 

ユーザーに退会を許可する

許可しない
許可する
この項目は見ての通り「ユーザに退会を許可するか、許可しないか」を設定する項目です。
プラグインを有効にした途端、退会が可能になると困りますからね。プラグインを機能させる際に「許可する」に切り替えます。
 
 
 

退会ページ

前項の「ユーザーに退会を許可する」で「許可する」を選択すると、管理画面のプロフィール画面に退会するためのボタンが追加されます。
 
20160421_web_02
 
この退会するためのボタンをプロフィールページにのみ追加したい場合は、「退会ページなし」を選択します。
 
ですが、ユーザには管理側のプロフィールページを利用させない場合は、別途退会用のページを設ける必要がありますので、プルダウンから退会用のページを選択します。
 
ここで選択肢として出てくるのは、固定ページです。
そのため、退会用のページを作成する場合は、まず先に固定ページの新規追加をしておきましょう。
退会ページの作り方は、後述の「Never Let Me Goで会員制サイトの退会機能を実装/退会ページの作り方」に書いています。
 
 

退会方法

「退会方法」は、退会したユーザの情報を「通常」の「物理削除」か、「上級者向け」の「論理削除」かを選択する項目です。
 
「物理削除」「論理削除」はいずれもデータベースのレコードの削除方法を表す言葉で、「物理削除」はレコードを実際に消去する方法で、「論理削除」は削除フラグなどを利用して消去したように見せかける方法です。
 
WordPressのユーザ削除の標準的な方法は「物理削除」の「通常」の方です。
「論理削除」が「上級者向け」とあるように、一般的には「通常」の方を選択しておきましょう。
 
 

別ユーザーへの割当

前項の「退会方法」で「通常(データベースから削除)」を選択した場合に、退会するユーザをそのまま消してしまうと、そのユーザが投稿した情報が利用できなくなりますのでそれを防ぐための設定です。
「上級者向け(アカウントを停止し、データを残す)」を選択した場合はこの設定は関係ありません。
 
退会するユーザの情報が消えても大丈夫なように、そのユーザが投稿した情報を別の指定したユーザの情報として付け替えを行うのですが、その付け替えを行うユーザを指定しておく場所で、そのユーザの IDを指定します。
「ユーザー名かメールアドレスを入力して検索」は、テキストを入力すると該当するユーザ情報の候補を表示してくれますので、選択すると「ID」にそのユーザの IDが編集されます。
 
退会ユーザが投稿していた記事は必要ないからすべて消す、という運用をしているサイトであっても、カテゴリなどを登録できる権限を持つユーザである場合などもあるため、そういう場合でも不具合が起こらないようにするための仕組みですね。
 
私は、退会したユーザの情報を付け替えるための管理者ユーザを一つ作成し、そこに付け替えるようにしています。
 
 

削除レベル

前項の「別ユーザーへの割当」とは逆に、「上級者向け(アカウントを停止し、データを残す)」を選択した場合の設定内容です。
 
「0 – 変更なし」とすると、何も変更されません。
そのため、「退会」の手続きを行っても何も変わりません。ログインも問題なくできます。見ようによってはバグなのか?と思えてしまいます。
下記の「ユーザーデータの取り扱い方法」に書いてあるような処理を利用して、オリジナルの削除処理を構築したい場合に使うものなのではないかと思います。
 
20160421_web_03
 
「1 – ログイン情報をハッシュ化する」は、レコードを残しつつ、WordPressのユーザ情報が保存される「wp-users」テーブルにあるログイン情報をハッシュ化しますので、ユーザがログインすることはできなくなります。
また、メールアドレスは削除され、displaynameは「削除されたユーザー」に変更になります。
ただ、それ以外の項目は変更されませんので、ユーザの登録情報として項目追加をしている情報などは、「0 – 変更なし」の時と同じように、項目追加分の情報を削除する独自のカスタマイズが必要になります。
 
 


 
 

Never Let Me Goの退会ページの作り方

 
Never Let Me Goで会員制サイトの退会機能を実装/退会ページ」で設定する「退会ページ」の作り方を解説します。
 
固定ページを「新規追加」をします。
ページ名や slugは自由に設定して OKです。
 
そこに、「Never Let Me Go設定」ページの下の方にある下記のテキストを編集します。
 

 
<!--nextpage--> の前と後とで文章が分かれていて、前半が「アカウントを削除する」のボタンをクリックするまでに表示されている文章で、後半がボタンをクリックしてユーザが削除された後に表示される文章です。
 
文章自体は、好みに合わせて、他のサイトなどを参考にしながら適宜編集してください。
 
退会ページを作成したら、「Never Let Me Goで会員制サイトの退会機能を実装/退会ページ」に戻って「退会ページ」に設定します。
 
「退会ページ」の設定を行うと、下記のように変わります。
 
退会ページの最初の表示は以下のようになります。
20160421_web_04
 
「アカウントを削除する」ボタンをクリックすると、ダイアログが表示され「OK」をクリックすると、ユーザ情報が削除され、下記の画面に切り替わります。
20160421_web_05
 
 
また、「退会ページ」の設定をせずに退会ページを見ると、下記のように単にページ分割された投稿として表示されます。
 
20160421_web_06

 - WordPress

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

Advanced Custom Fields(ACF)のアドオン・ギャラリーの使い方解説

Advanced Custom Fieldsのアドオン・ギャラリーの解説記事。複数の画像を入力できる優れもので、画像のサイズ、容量などでの制限ができ、より厳密な管理が可能。

WordPressの不正ログインを Force email loginで回避

WordPressのセキュリティ強化に Force email loginを使う理由と設定方法の解説をしています。

WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法

WordPressのカテゴリやタクソノミーに編集する項目を追加する方法の解説。Advanced Custom Fieldsを使うと簡単。テンプレートに記述する方法も解説。

BackWPupでWordPress以外のファイル、データベースをバックアップ

BackWPupその10。BackWPupはWordPressのバックアップ用のプラグインですが、WordPress以外のテーブルやファイルをバックアップする方法の解説です。

プラグインが原因で起動しないWordPressを復旧させる方法解説

プラグインが原因で WordPressが起動できなくなった、ログインできなくなった場合の対処方法の解説です。

Advanced Custom Fieldsの全項目解説・公開側表示編集編

Advanced Custom Fieldsは現時点でカスタムフィールドを設定する最高のプラグイン。それで入力した情報を取り出す方法を全て網羅して解説しました。

WordPressのおすすめプラグイン記事のまとめ一覧

WordPressプラグインのまとめ。WordPressのプラグイン紹介記事も多くなってきたため紹介コメント付のプラグインまとめ記事を作成しました。

WordPress投稿にPHPを記述するショートコードの使い方add_shortcode

WordPressの投稿ページで PHPの処理を行うには add_shortcode関数を使ったショートコードという機能を利用します。

Theme My Loginでメール認証、管理者承認付の会員管理・基本編

会員管理をするプラグインTheme My Loginの解説。メール認証、管理者認証、reCAPTCHAによるいたずら登録を防止し、ログイン攻撃対応のセキュリティも備わっている。

WordPressプラグインの3つのインストール方法解説

プラグインのインストール方法の特徴とおススメの方法を理由を含めて解説していきます。