user_register フックの使い方|説明・引数・注意点

説明

user_register は、ユーザーが新規登録された直後に実行されるアクションです。

基本構文

do_action( 'user_register', int $user_id, array $userdata )

引数

  • $user_id:ユーザーID
  • $userdata:登録されたユーザーデータ

戻り値

値は返しません。

使い方(サンプル)

add_action( 'user_register', function( $user_id ) {
	update_user_meta( $user_id, 'welcome', 1 );
} );

注意点

  • ユーザーメタの初期値の設定などに使います。

実務での使いどころ

  • 新しいユーザーが、登録された直後に、追加の処理(独自のメタの保存、通知メール)を、行うとき。

よくあるミスと対処

  • 管理画面で作成したユーザーでも、実行される。登録経路を、区別したいときは、別の方法で判定する。
  • ロールを、勝手に変更している。権限の昇格につながる。
  • ユーザーの入力を、検証・サニタイズせずに、メタとして保存している。

NG例

add_action( 'user_register', function ( $user_id ) {
	update_user_meta( $user_id, 'phone', $_POST['phone'] ); // 検証・サニタイズがない
} );

OK例

add_action( 'user_register', function ( $user_id ) {
	if ( isset( $_POST['phone'] ) ) {
		update_user_meta( $user_id, 'phone', sanitize_text_field( wp_unslash( $_POST['phone'] ) ) );
	}
} );

使い分け早見表

フック 実行されるタイミング
user_register ユーザーが、登録された直後
wp_login ユーザーが、ログインした直後
wp_insert_user() ユーザーを、作成する関数

関連項目

wp_insert_user()、update_user_meta()、wp_create_user()

公式リファレンス:user_register | WordPress Developer Resources

コメント

タイトルとURLをコピーしました