diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php
index 69b8c35208..73a7e8db92 100644
--- a/src/wp-includes/user.php
+++ b/src/wp-includes/user.php
@@ -643,7 +643,9 @@ function get_blogs_of_user( $user_id, $all = false ) {
 		$sites[ $site_id ]->path        = '';
 		$sites[ $site_id ]->site_id     = 1;
 		$sites[ $site_id ]->siteurl     = get_option( 'siteurl' );
+		$sites[ $site_id ]->public      = get_option( 'blog_public' );
 		$sites[ $site_id ]->archived    = 0;
+		$sites[ $site_id ]->mature      = 0;
 		$sites[ $site_id ]->spam        = 0;
 		$sites[ $site_id ]->deleted     = 0;
 		return $sites;
@@ -697,6 +699,7 @@ function get_blogs_of_user( $user_id, $all = false ) {
 				'path'        => $site->path,
 				'site_id'     => $site->network_id,
 				'siteurl'     => $site->siteurl,
+				'public'      => $site->public,
 				'archived'    => $site->archived,
 				'mature'      => $site->mature,
 				'spam'        => $site->spam,
diff --git a/tests/phpunit/tests/user/multisite.php b/tests/phpunit/tests/user/multisite.php
index 01c7b7d096..083e718b17 100644
--- a/tests/phpunit/tests/user/multisite.php
+++ b/tests/phpunit/tests/user/multisite.php
@@ -45,7 +45,7 @@ if ( is_multisite() ) :
 			$user1_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
 
 			// Maintain a list of 6 total sites and include the primary network site.
-			$blog_ids = self::factory()->blog->create_many( 5, array( 'user_id' => $user1_id ) );
+			$blog_ids = self::factory()->blog->create_many( 6, array( 'user_id' => $user1_id ) );
 			$blog_ids = array_merge( array( 1 ), $blog_ids );
 
 			// All sites are new and not marked as spam, archived, or deleted.
@@ -78,15 +78,17 @@ if ( is_multisite() ) :
 				$this->assertTrue( isset( $blog->path ) );
 				$this->assertTrue( isset( $blog->site_id ) );
 				$this->assertTrue( isset( $blog->siteurl ) );
+				$this->assertTrue( isset( $blog->public ) );
 				$this->assertTrue( isset( $blog->archived ) );
 				$this->assertTrue( isset( $blog->spam ) );
 				$this->assertTrue( isset( $blog->deleted ) );
 			}
 
-			// Mark each remaining site as spam, archived, and deleted.
+			// Mark each remaining site as spam, archived, deleted, and private.
 			update_blog_details( $blog_ids[0], array( 'spam' => 1 ) );
 			update_blog_details( $blog_ids[1], array( 'archived' => 1 ) );
 			update_blog_details( $blog_ids[2], array( 'deleted' => 1 ) );
+			update_blog_details( $blog_ids[3], array( 'public' => 0 ) );
 
 			// Passing true as the second parameter should retrieve ALL sites, even if marked.
 			$blogs_of_user    = get_blogs_of_user( $user1_id, true );
@@ -97,6 +99,7 @@ if ( is_multisite() ) :
 			$this->assertEquals( 1, $blogs_of_user[ $blog_ids[0] ]->spam );
 			$this->assertEquals( 1, $blogs_of_user[ $blog_ids[1] ]->archived );
 			$this->assertEquals( 1, $blogs_of_user[ $blog_ids[2] ]->deleted );
+			$this->assertEquals( 0, $blogs_of_user[ $blog_ids[3] ]->public );
 
 			unset( $blog_ids[0] );
 			unset( $blog_ids[1] );
