こんにちは、Ryohei(@ityryohei)です!

本記事では、WordPressのWP-Membersを導入しているサイトで、自作プログラムから登録したユーザーを承認済みの状態にする方法をご紹介しています。

WP Membwesのプラグインのフォームから登録されたユーザーは管理者の承認が必要だけど、自作プログラムのフォーム等から新規登録したユーザーは承認済みの状態にしておきたい場合に有効な方法です。

では、解説していきます。

user_metaのactiveを1にしてユーザーを登録すればOK!

WP-Membersをインストールしたサイトで検証した結果、見出しにあるようにuser_metaactive1に設定することで承認済みの状態でユーザーを新規登録することができました。

検証に使用したコードは下記の通りです。

<?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のドキュメントに目を通したところ、ユーザー登録時に承認済みに設定する関数が用意されていました。

参考:WP-Members API Functions

上記ページの真中より少し下辺りに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で自作プログラムから登録したユーザーを承認済みの状態にする方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。