This works for me:
1. Go to the functions.php file from your BuddyPress theme.
2. Add this at the top of the php:
<? ob_start(); ?>
<i>So you’ll not get any white screens.</i>
3. Then add this at the bottom of the php:
<?php
function ds_one_blog_only($active_signup) {
// get the array of the current user's blogs
$blogs = get_blogs_of_user( get_current_user_id() );
// all users may be members of blog 1 so remove it from the count, could be a "Dashboard" blog as well
if ($blogs["1"]) unset($blogs["1"]);
//if the user still has blogs, disable signup else continue with existing active_signup rules at SiteAdmin->Options
$n = count($blogs);
if($n == 1) {
$active_signup = 'none';
echo '';
} elseif($n > 1) {
$active_signup = 'none';
echo '';
} else {
$active_signup = $active_signup;
}
return $active_signup; // return "all", "none", "blog" or "user"
}
add_filter('wpmu_active_signup', 'ds_one_blog_only');
?>
<i>This will remove the ‘Create a blog’ button when a user already has a blog.</i>
Cheers!
J.