WordPressでユーザー登録をしてもらう形態のサイトを作るとき、WordPress標準の登録機能では画面が素っ気ないから別のもので・・・というところで登場するのが「Ultimate Member」や「Wp Members」というプラグイン。無料でここまでできる??って驚く機能を持つプラグインたちです。
そして、通常のユーザー登録ではなく別のユーザー?としてコミュニティサイトを作れる「Simple Membersip」、WordPress標準のログイン画面周りをフロントエンドで表示しようという「Theme My Login」、そして人気のコミュニティサイト構築プラグインの「Buddypress」。
いろいろなプラグインを紹介しているだけあってこういうのがどんどん出てきます。通常ならそれでいいと思うのですが、今回やりたいのは
でも書いた通り、数時間とか数日使えるだけのメールアドレスを使ってファイルをダウンロードしよう!!という輩に対する対策。使い捨てメールアドレスを否定するわけでもないですし、それを使うのも否定はしませんけど、それを使ってこちらが苦労して作ったファイルをダウンロードされたら・・・メルマガが送れなくなるというダメージよりも泥棒された気分で精神的にやられました。なんとかせねば!!
そこで見つけたのが「Ban Hummer」というプラグインでした。でもこれを軸に試したらどの会員プラグインも使えず・・でたどり着いたのが今回紹介する方法です。
結局4個のプラグインを使うことにはなりましたが寄せ集めにしてはいい流れになったと思います。同じように困っている方の参考になれば幸いです。
使い捨てメアド対策をしつつユーザー登録をしてもらう環境を作る方法
それでは早速今回のカスタマイズでやりたいことと、どうやって実現したのかをズラズラと書いていきます
使い捨てアドレスからの登録を撃退する
これが一番やりたかったこと。いくらユーザー登録しないと・・・にしても一時的に取得できるメールで登録からダウンロードまでされてさよなら~~とされたら元も子もないので
を使って実装。でもこのプラグインはWordPress標準のユーザー登録で使用するメールアドレス欄と「Buddypress」プラグインのみ動作確認がされているようで、実際にテストしても次に紹介するプラグイン以外は全部機能しませんでした(プログラムがわかる方なら対応させられるでしょうけど私には知識がないので・・・)。
登録はダブルオプトイン可能なプラグインにする
ダブルオプトインとは要するに1度メールを送って何かアクションをすると登録が完了するという段取りのことです。2重認証っていえばいいんじゃ・・・と言われそうですけどなんとなくかっこいいので使ってみました。
WordPressの通常の登録画面からユーザー登録をしたときの流れをおさらいしておくと
- ログインフォームから「新規」をクリックする
- ユーザー名とメールアドレスを入力して送信する
- メールアドレス宛にメールが届く
- その中のパスワード変更リンクをクリックする
- パスワード変更画面でパスワード変更
- ログイン
これが一連の流れです。2と5で2回作業しないと登録が完了しない「Double-Optin(今度は英語)」になっているんですね。前は確かユーザー名とパスワードが送られておしまい!!となってた認識だったのにいつの間に変わったんだろう・・・まあそれは置いといて・・。
今回登録とログイン/ログアウト回りに使ったのが
というプラグイン。本来画面の移動をしないでログイン/ログアウトができるのがウリのプラグインですけど、不随する機能として「登録」や「パスワードリセット」の機能があり、なんとこのプラグインは「Ban Hummer」が動作した!!ので採用しました(ほかにどんな方法を探ったかは文末に苦労話書いてます)。
「登録」をクリックすると上の登録の流れでいう1~4まではいい感じで流れます。でも・・・5のパスワード変更画面はWordPress標準の画面が登場、そしてそこからはWordPressの本来の流れとなるのでログインしたらプロフィール編集画面が・・・。ただパスワード変更画面はどうしてもWordPress標準のものを使わないといけないようなのでこのままでいくしかありません。とはいえあまり見栄えのよいものでもないので以下の対策をしました。
それからもう1つ問題なのが3で送られるメールの内容。見たことありますか?
ユーザー名: ユーザー名
パスワードを設定するには以下のアドレスへ移動してください。
<パスワード変更リンク>
こんな風なんです。・・・業務連絡じゃないんだからねぇって感じ。でも大丈夫!!このプラグインにはメールの内容を置き換える機能がありました。これでメール問題は解決しました。
それから、設定画面の「グローバルログアウトリダイレクト」を「%LASTURL% 」にしておかないと、環境によってはログアウト後、バックエンドのログイン画面が登場してしまうので注意が必要です。
登録後絶対にバックエンドへ行かせない
WordPress標準の流れではパスワード変更後に表示される画面で「ログイン」というリンクをクリックしてログインするとプロフィール編集画面(バックエンド)が登場してしまうので、
を使って購読者をバックエンドへ行かせないようにしました(管理バーは全ユーザーに表示されますが、権限のないユーザーはバックエンドへ行けません)。
もちろんユーザー編集もできなくなるので管理バー自体不要という方は、「hide adminbar」などの単語でプラグイン検索すればいろいろ出てきますのでインストールすればOKです。
これで「このサイトWordPressだな・・それならログイン画面のURLは・・・」でバックエンドのログイン画面へ直接アクセスされてもバックエンドへのアクセスを許可されていないユーザーならログインしたらフロントエンドへ跳ね返されるので、危険を冒してまでログインURLを変更する必要なし!ですね。
今回のケースではこのプラグインは使わないほうがいいです
運用開始段階で
を使って完璧!!だったはずでした。でもどこかの誰かがヒントをくれました。「Login With Ajax」のウィジェットでプロフィール表示をしないようにしたのでよしよし・・・と思っていたのですが、このプラグインだとログインした状態でプロフィール編集のURLを手入力すると・・・なんとプロフィール編集画面がでてしまうんですね、これが。何度かテストしてみたところ上の「Remove Dashboard Access」では手打ちでプロフィール編集画面が出てしまうこともありませんし、管理バーも管理者権限以外(設定による)は非表示になりました。
うーーん奥が深い・・・。それにしてもわざわざ手打ちしてプロフィール更新してくれた誰かさんありがとうございました(申し訳ないですけど荒さがししたいだけのようでしたのでユーザー削除させていただきました)。
ログイン画面回りのデザイン変更
これもプラグインを使ってカスタマイズ
というのを使いました。
おまけ 使えなかったプラグインたち
会員登録系のプラグインはたくさんありますが、WordPressのコアユーザーとして登録していくものでないと肝心の「Ban Hummer」が動かないので
はすぐに除外。そしてWordPressの登録やログイン画面などをテーマの中で表示するという
は一見よさそうにみえるけど実際にユーザーさんが何をするかなぁと思って動かすとパスワードリセットで時折エラーが出たり、管理者が管理画面へ入れなくなってしまったりしたのでこれもパス。
そして今までいろいろテストした中で会員登録系のものでは一番秀逸だと思った
も「Ban Hummer」が動かないのでダメ・・・とその他ありとあらゆるプラグインを試しました。。
また、
がいいところまでできたのですが、これもWordPress通常のユーザー登録機能を停止しないとカスタマイズが反映されない=「Ban Hummer」が動かないのでダメ・・・という結論に達しました。
おまけ 「Login With Ajax」プラグインを使わずに実装する方法
今回はフロントエンドからひとまず登録画面を出してという風にしたかったので「Login With Ajax」を使いましたが、パスワードの変更画面がバックエンドなんだから登録もバックエンドでいい!という方のために・・・
フロントエンドへは標準の登録画面へ行くリンクを作っておけばOK。で問題となるのは登録時に送信されるメールの内容。前述したように業務連絡ではどう?って感じなのでそれを変更できるプラグインを1つ追加します。
これはWordPressが標準で送付するあらゆるメール通知に対して変更ができるプラグイン。これを使えば問題はすべて解決です。あとはフロントエンドでのログイン/ログアウト/パスワード再発行などの機能を実装すれば・・・となるとやっぱり「Login With Ajax」のほうがいいというのが私の結論です。