エス技研

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.

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

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

  関連記事

自サイト内のリンクをショートコードで指定する・アンカーリンク対応版

自サイト内の記事にショートコードで自動リンクを設定する関数のソースコードを提供。Post ID、slugで指定でき、アンカーリンクを設定する場合も対応。

WordPress初心者向け講座・詳細解説データベースとは何か?

データベースとは何か?を言葉の意味の説明なども含めエクセルと比較しながら説明しています。

Custom Post Type UIでカスタム投稿を設定し編集する方法解説

カスタム投稿を追加、管理するプラグインCustom Post Type UIの使い方の解説です。プラグインの解説ではあるものの、カスタム投稿の仕様の解説でもあります。

Search RegexでWordPress投稿の文字列を検索・置換する使い方解説

WordPressの投稿テキストを検索、置換するプラグイン Search Regexの使い方の詳細解説です。

WordPressのスラッグとは?

WordPressのスラッグって何?それを解説している記事です。なんとなく分かっている気になっているものを改めてしっかり確認をしてみませんか?

highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適

Crayon Syntax Highlighterの代替案としてhighlight.jsを試してみた。highlight.jsは設置簡単で軽量なシンタックスハイライト。デザインもCSS変更だけの簡単変更。

WordPressの Link Managerでブックマーク(リンク)の管理を行う

ウィジェットのブックマーク(リンク)はプラグイン化された「Link Manager」を使って設定します。その使い方の解説です。

WP Basic AuthなどWordPressにBasic認証を設定するプラグインのまとめ

WordPressにBasic認証を設定する方法のまとめ。プラグインを使う方法と.htaccessで設定する方法を紹介。公開側、ログインページをそれぞれ設定できます。

Advanced custom Fieldsのフィールドグループを簡単に複製する方法

Advanced custom Fieldsのフィールドグループの複製の方法の解説。XMLのExport、インポートする機能を利用して複製します。

WordPressで月極駐車場検索サイトを構築し無料公開・使ったプラグインの紹介も

月極駐車場を検索するシステムをWordPressで構築。そのアナウンスと構築するために利用したプラグインの紹介。構築にどれくらいの期間がかかるのかの紹介。