2018.08.02

[WordPress]ユーザー登録時にカスタムフィールドの値を自動で挿入する方法

こんばんは、ゾノ( @ozonosho )です。

さて、今日のブログではWordPressでユーザー登録時にカスタムフィールドの値を自動で挿入する方法を紹介したいと思います。

それによってどんなことができるかというと、ユーザー登録時に自動でそのユーザー専用のアフィリエイトリンクを発行したり、初期機能では姓・名で分かれてしまっているユーザー名称をフルネームであわせて保存したりすることができます。

今回の実装にはWordpressの「フック」を利用するのですが、これがマジで便利で・・・もっと早く知っておけば良かったなと後悔していますw

ユーザー登録時にカスタムフィールドの値を自動で挿入する方法

実装は簡単で、下記の関数をfunctions.phpに追加してください。

function user_cf_set($user_id) {
	$val = '挿入したい値';
	update_user_meta($user_id, 'カスタムフィールド名', $val);
}
add_action( 'user_register', 'user_cf_set', 10, 1 );

これでユーザー作成ページから新規ユーザーを作成したときに、同時にカスタムフィールドにも値が挿入されます。

ポイントは「user_register」フックを利用すること

user_registerフックは新規ユーザー作成後のタイミングで処理を走らせてくれるため、ここで作成されたユーザーのカスタムフィールドを更新することでユーザー作成と同じタイミングでカスタムフィールドの値も挿入することができます。

フックを利用すればWordpressのコアファイルをいじる必要がないので、頻繁にあるWordpressの更新にも限りなく影響を受けづらいです。
(逆にフックを利用しなければWordpressの更新の度にソースが書き換わる可能性があります)

ここからは実際の使用例を見てみましょう。

使用例①自動でアフィリエイト用のコードを発行する

ユーザー用のカスタムフィールド「user_ref」を用意して、ユーザー登録時に自動でアフィリエイト用のコードを挿入するためのコードを書いてみました。

function user_cf_set($user_id) {
	function get_rand_str() {
		$str = 'abcdefghijklmnopqrstuvwxyz';
		$str_r = substr(str_shuffle($str), 0, 5);
		return $str_r;
	}
	$refcode = $user_id . get_rand_str() . mt_rand(0, 1000);
	update_user_meta($user_id, 'user_ref', $refcode);
}
add_action( 'user_register', 'user_cf_set', 10, 1 );

アフィリエイト用のコードはユーザーごとに重複しないようにする必要があるため、「ユーザーID(ユーザー固有の数字)+ランダムな英数字5桁+ランダムな数字3桁程度」をアフィリエイト用のコードとしてカスタムフィールド「user_ref」に挿入するようにしました。

使用例②ユーザー名称のフルネームを登録する

ユーザー用のカスタムフィールド「user_fullname」を用意して、ユーザー登録時に自動で姓名をあわせた内容を挿入するためのコードを書いてみました。

function user_cf_set($user_id) {
	$user = get_userdata($user_id);
	$fullname = $user->user_lastname . $user->user_firstname;
	update_user_meta($user_id, 'user_fullname', $fullname);
}
add_action( 'user_register', 'user_cf_set', 10, 1 );

get_userdataでユーザー情報を取得して、姓名をあわせた内容をカスタムフィールド「user_fullname」に挿入するようにしました。

おわりに

以上、今回の記事ではWordPressでユーザー登録時にカスタムフィールドの値を自動で挿入する方法を紹介させていただきました。

WordPressのフックを利用すれば、このように任意のタイミングで(コアファイルを書き換えずに)処理を加えることができます。

使用できるフックの一覧は「フィルターフック一覧」「アクションフック一覧」にそれぞれ記載されているので、ぜひ活用してみてください。

当サイトではWordPressのカスタマイズ依頼を請け負っています。実現したい機能・要望がある方はぜひ下記ページよりご相談ください。

あなたのサイトに理想の機能を実装!WordPressカスタマイズサービス

本サービスはあなたのWordPressサイトに理想の機能を実装するサービスとなります。 どのような機能・要望でも実現可能です! Wo......

→この記事を読む