I’m working on a WPMU multisite install but have run into a wee problem.
I create a user during a signup process on my primary domain. With something like the following.
$username = 'myname-'.time();
$user_id = wpmu_create_user($username,'anypassword','example@gmail.com');
add_user_to_blog(1, 5, 'subscriber');
$user = wp_signon(array(
"user_login" => $username,
"user_password" => 'anypassword',
"remember" => true
));
What I do is create the user, and then assign it to the primary domain only, and the log the user in with wp_signon. However, when visiting a subsite of the network on a sub domain which is importantly very restrictive in it’s access. I am still logged in and the dashboard menu at the top still shows.
I used is_user_blog() to try and determine whether the user should be able to see this and could direct them to the login page of the sub domain. But this would mean terminating the existing login session on the primary domain. Ideally it would be cool if you could be logged in to the primary domain and also logged into the sub domain but both treated seperately.
Anyone run into this problem before?
Yes, I had this issue. And, if you need special user management, you’ll have to set up a new autonomous (single site) WordPress installation.
That’s the way Multisite works. All users are automatically included as
subscribers
of all sites in the network.From the article Don’t Use WordPress Multisite:
This plugin may be of help (but am not sure): Multisite User Management.
From this recent answer I gave on WordPress StackExchange, some little hacks may be helpful:
(I did small tests in my development environment, but please, test extensively)