Limit How Many Sites Each User Can Create
Stops a user from signing up for another site once they already own the number you set; super admins are never limited.
Opens WPIDE on
Code
if ( ! is_multisite() ) {
return;
}
$wpide_max_sites = 1; // Sites a user may administer.
add_filter( 'wpmu_validate_blog_signup', function ( $result ) use ( $wpide_max_sites ) {
$user = isset( $result['user'] ) && $result['user'] instanceof WP_User ? $result['user'] : wp_get_current_user();
if ( ! $user || ! $user->exists() || is_super_admin( $user->ID ) ) {
return $result;
}
$owned = 0;
foreach ( get_blogs_of_user( $user->ID ) as $blog ) {
$caps = get_user_meta( $user->ID, $GLOBALS['wpdb']->get_blog_prefix( $blog->userblog_id ) . 'capabilities', true );
if ( is_array( $caps ) && ! empty( $caps['administrator'] ) ) {
$owned++;
}
}
if ( $owned >= $wpide_max_sites ) {
$result['errors']->add( 'blogname', sprintf( 'You can have up to %d site(s) on this network.', $wpide_max_sites ) );
}
return $result;
} );
Notes
Counts sites where the user is an administrator. Applies to the front-end signup form and the "Add new site" screen for non-super-admins.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.