Navigation

ユーザー登録時にカスタムロールを自動付与するフック

📅 7月 7, 2025
👤
1 min read

概要

ユーザー登録時に特定の条件に基づいてカスタムロールを自動的に付与するためのフックについて解説します。

ユースケース

WordPressサイトにおいて、特定の条件を満たしたユーザーに対して、自動的に特定の権限を持つカスタムロールを付与したい場合に、このスニペットが必要となります。

前提条件

このスニペットを利用するには、functions.phpファイルやカスタムプラグイン内でコードを追加することが前提となります。

サンプルコード


function auto_assign_custom_role_on_registration( $user_id ) {
    $user = new WP_User( $user_id );
    
    if ( $user && !empty( $user->user_email ) ) {
        $user_email = $user->user_email;
        
        // 特定のメールアドレスを持つユーザーにカスタムロールを付与
        if ( $user_email === 'example@example.com' ) {
            $user->add_role( 'custom_role_name' );
        }
    }
}
add_action( 'user_register', 'auto_assign_custom_role_on_registration' );

解説

  • `auto_assign_custom_role_on_registration` 関数は、ユーザー登録時に呼び出されるアクション `user_register` にフックして、指定の条件を満たすユーザーにカスタムロールを自動付与します。
  • `WP_User` クラスを使用して、ユーザーオブジェクトを取得し、その中のメールアドレスをチェックします。
  • 特定のメールアドレスを持つユーザーの場合、`add_role` メソッドを使って指定したカスタムロールを付与します。

ベストプラクティス

  • セキュリティ上の観点から、カスタムロールの権限付与には慎重に検討する必要があります。不必要な権限付与はセキュリティリスクとなり得ます。
  • 他の条件(例:ユーザーメタ情報、登録フォームのフィールド値)に基づいてカスタムロールを自動付与する場合も、同様の仕組みを利用できます。
← Back to WordPress