私は500人のユーザーを持ち、そのうち50人はユーザーロールXYZに割り当てられています。これらの50人のXYZユーザーに、現在のXYZユーザー役割を維持するだけでなく、別の/追加の/ extra/secondのユーザー役割ABCを割り当てるようにします。 ..大量の仕事として。
私は可能な機能を探しています
単純な関数を書いてそれをユーザー関連のアクションにフックすることで自分でできるようになるはずです(これを1回実行するのか継続的に実行するのかはあなた次第です)。
トリガーする方法はいくつかありますが、おそらく最も簡単な方法は、 profile_update
フックにフックして実行することです。ユーザーが保存されるたびに。また、 user_register
にフックして、新しいユーザーが追加されるたびにデータが同期されるようにすることもできます。これをテストするには、アクションフックをトリガーするので、既存のユーザーを保存するか新しいユーザーを作成してみます。
add_action( 'profile_update', 'wpse_assign_abc_role_to_xyz_users', 10 );
add_action( 'user_register', 'wpse_assign_abc_role_to_xyz_users', 10 );
function wpse_assign_abc_role_to_xyz_users() {
$args = array(
'role' => 'xyz', // Set the role you want to search for here
'role__not_in' => array( 'abc' ), // If they already have abc role, we can skip them
'number' => '500', // Good idea to set a limit to avoid timeouts/performance bottlenecks
);
$xyz_users = get_users( $args );
// Bail early if there aren't any to update
if ( count( $xyz_users ) === 0 ) return;
// get_users() returns an array of WP_User objects, meaning we can use the add_role() method of the object
foreach ( $xyz_users as $user ) {
$user->add_role( 'abc' );
}
}
これは、WPが認識できるように、 add_role
を使用して既にabc
ロールを追加していることを前提としています。
残念ながら、今すぐテストすることはできませんが、後で試してテストしますが、正しい方向に操作できるはずです。