【WP-Members】自作プログラムから登録したユーザーを承認済みの状態にする【WordPress】
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、WordPressのWP-Membersを導入しているサイトで、自作プログラムから登録したユーザーを承認済みの状態にする方法をご紹介しています。
WP Membwesのプラグインのフォームから登録されたユーザーは管理者の承認が必要だけど、自作プログラムのフォーム等から新規登録したユーザーは承認済みの状態にしておきたい場合に有効な方法です。
では、解説していきます。user_metaのactiveを1にしてユーザーを登録すればOK!
WP-Membersをインストールしたサイトで検証した結果、見出しにあるようにuser_metaのactiveを1に設定することで承認済みの状態でユーザーを新規登録することができました。
検証に使用したコードは下記の通りです。
<?php //ユーザー名 $user_name = 'test_user'; //メールアドレス $user_email = 'test@test.jp'; //パスワード自動生成 $user_password = wp_generate_password(12, false); //ユーザー登録 $user_id = wp_create_user($user_name, $user_password, $user_email); //user_metaのactiveをtrueに設定 update_user_meta($user_id, 'active', 1 );
上記ソースの最終行にあるuser_meta
の値を1
にして更新することで、承認済みの状態でユーザーを新規登録することができました。
WP-Membetsにも関数が用意されている
一通りWP-Membersのドキュメントに目を通したところ、ユーザー登録時に承認済みに設定する関数が用意されていました。
上記ページの真中より少し下辺りにwpmem_activate_user()
という関数の存在が確認できます。この関数を使って新規登録ユーザーを承認済みの状態にすることができるはずですが、私の環境ではうまく動作しませんでした。
関数の呼び出し方は簡単で、関数が定義されているファイル(wp-members/includes/api-users.php)を確認する限りでは下記のように記述するだけで良いようです。
wpmem_activate_user( $user_id );
新規登録ユーザーを承認済みにするというのはDBのレコードを更新する処理ですので、プラグイン側で用意されている関数で実現できるのであればそちらを使用した方が効率的ですし、安全かなと思います。余力がある方はこちらの方法も試してみてくださいね。
最後に
WP-Membersはあまり使ったことがないプラグインですが、WordPressで簡単に会員制のサイトが作れる素晴らしいプラグインです。私は業務の中で他社で制作されたWEBサイトを改修さあせていただくことがありますが、WordPressで会員制のサイトとくると、このプラグインが使用されているケースが多いです。WordPressを扱っていればいつかは触れることになると思いますので、仕様を把握するためにも、一度テスト環境でWP-Membersを使って会員制のサイトを作ってみるのもいいかもしれませんね。
以上、WordPressのWP-Membersで自作プログラムから登録したユーザーを承認済みの状態にする方法のご紹介でした!