エス技研

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.

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

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

  関連記事

Contact Form 7の使い方・引数で情報を受け渡す方法

Contact Form 7で引数の情報をフォームに編集する方法を解説します。

WordPressの投稿データ(記事データ)の管理方法

投稿の登録の方法、投稿データの管理方法の解説。MetaManagerなどのプラグインを入れた場合の入力ボックスを表示させる方法についても解説します。

AddQuicktagを使って WordPressの投稿を楽にする

投稿時にタグの入力を楽にしてくれるプラグイン「AddQuicktag」の使い方の説明です。クリック一つでタグを編集できます。

WordPressのウィジェットにGoogle+ページのバッジ編集方法

Google+ページの特徴(Facebook、Mixiとの違い)や構築のメリット(Google対策)、登録、バッジの編集方法の解説。

WordPressプログラム全体で定数や変数を利用する場合の設定方法

WordPressで関数を追加するときなど、全体で同じ変数を使いたいと思う場面の対処方法です。変数を記述する関数はfunctions.php、wp-config.phpのいずれか。

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

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

ショートコード+ウィジェットでサイドバーに人気記事を表示させる方法

WordPressのサイドナビゲーションに人気記事を編集する方法です。プラグインを使わずウィジェットにショートコードで任意のPostIDを指定することで編集する方法です。

Advanced Custom Fieldsの関数の全部の使い方を調べてみた

Advanced Custom Fieldsに用意されている関数を全て調べてみた。よく使うget_field、the_field以外にも多くの関数が用意されていて、フォームを作成することも可能。

WordPressのサイトマップ生成ツールPS Auto Sitemapの使い方

サイトマップを PS Auto Sitemapで自動生成する方法を説明します。このプラグインは Google用のサイトマップではなく一般ユーザが見るためのサイトマップページを作ります。

WordPressのインストール方法・セキュリティ重視 3つのポイント

WordPressのインストールをセキュリティ重視の視点から3つのポイントの解説と設定方法です。