diff --git a/projects/packages/status/changelog/add-status-private-coming-soon-site b/projects/packages/status/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..34e150aa8ad2 --- /dev/null +++ b/projects/packages/status/changelog/add-status-private-coming-soon-site @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Add 2 new methods to detect whether a site is private or not. diff --git a/projects/packages/status/composer.json b/projects/packages/status/composer.json index eb6421a6da74..92769ec894dc 100644 --- a/projects/packages/status/composer.json +++ b/projects/packages/status/composer.json @@ -45,7 +45,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } } } diff --git a/projects/packages/status/src/class-status.php b/projects/packages/status/src/class-status.php index 91c446c46a25..463bb6895d1a 100644 --- a/projects/packages/status/src/class-status.php +++ b/projects/packages/status/src/class-status.php @@ -314,6 +314,43 @@ public function is_onboarding() { return \Jetpack_Options::get_option( 'onboarding' ) !== false; } + /** + * Whether the site is currently private or not. + * On WordPress.com and WoA, sites can be marked as private + * + * @since $$next-version$$ + * + * @return bool True if the site is private. + */ + public function is_private_site() { + $ret = Cache::get( 'is_private_site' ); + if ( null === $ret ) { + $is_private_site = '-1' === get_option( 'blog_public' ); + Cache::set( 'is_private_site', $is_private_site ); + return $is_private_site; + } + return $ret; + } + + /** + * Whether the site is currently unlaunched or not. + * On WordPress.com and WoA, sites can be marked as "coming soon", aka unlaunched + * + * @since $$next-version$$ + * + * @return bool True if the site is not launched. + */ + public function is_coming_soon() { + $ret = Cache::get( 'is_coming_soon' ); + if ( null === $ret ) { + $is_coming_soon = (bool) ( function_exists( 'site_is_coming_soon' ) && \site_is_coming_soon() ) + || get_option( 'wpcom_public_coming_soon' ); + Cache::set( 'is_coming_soon', $is_coming_soon ); + return $is_coming_soon; + } + return $ret; + } + /** * Returns the site slug suffix to be used as part of Calypso URLs. * diff --git a/projects/packages/status/tests/php/test-status.php b/projects/packages/status/tests/php/test-status.php index 3908623e892c..3a471e1ac226 100644 --- a/projects/packages/status/tests/php/test-status.php +++ b/projects/packages/status/tests/php/test-status.php @@ -538,4 +538,44 @@ public function provide_cached() { ); } + /** + * Test that is_private_site returns true when get_option is set to -1. + * + * @covers Automattic\Jetpack\Status::is_private_site + */ + public function test_is_private_site() { + Functions\when( 'get_option' )->justReturn( '-1' ); + + $this->assertTrue( $this->status_obj->is_private_site() ); + } + + /** + * Test that is_coming_soon returns true when a site is set to coming soon. + * + * @covers Automattic\Jetpack\Status::is_coming_soon + * @dataProvider get_coming_soon_status + * + * @param bool $site_is_coming_soon Site is coming soon value. + * @param int $wpcom_public_coming_soon wpcom_public_coming_soon option value. + * @param bool $expected Expected result. + */ + public function test_is_coming_soon( $site_is_coming_soon, $wpcom_public_coming_soon, $expected ) { + Functions\when( 'site_is_coming_soon' )->justReturn( $site_is_coming_soon ); + Functions\when( 'get_option' )->justReturn( $wpcom_public_coming_soon ); + $this->assertSame( $expected, $this->status_obj->is_coming_soon() ); + } + + /** + * Mock data for test_is_coming_soon + * + * @return array + */ + public function get_coming_soon_status() { + return array( + 'Jetpack public site' => array( null, false, false ), + 'WoA public site' => array( false, false, false ), + 'WoA private site' => array( true, false, true ), + 'wpcom simple private site' => array( null, true, true ), + ); + } } diff --git a/projects/plugins/backup/changelog/add-status-private-coming-soon-site b/projects/plugins/backup/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..9aa70e3ec1f7 --- /dev/null +++ b/projects/plugins/backup/changelog/add-status-private-coming-soon-site @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Updated composer.lock. + + diff --git a/projects/plugins/backup/composer.lock b/projects/plugins/backup/composer.lock index f2914a226634..c27e5bf69444 100644 --- a/projects/plugins/backup/composer.lock +++ b/projects/plugins/backup/composer.lock @@ -1182,7 +1182,7 @@ "dist": { "type": "path", "url": "../../packages/status", - "reference": "295e13cbb1b584a5435c8a467773bffd5f90a5e2" + "reference": "c558b54d0365cf2d4dbe04ce0884afd1cf20d7a1" }, "require": { "automattic/jetpack-constants": "@dev" @@ -1200,7 +1200,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } }, "autoload": { diff --git a/projects/plugins/boost/changelog/add-status-private-coming-soon-site b/projects/plugins/boost/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..9aa70e3ec1f7 --- /dev/null +++ b/projects/plugins/boost/changelog/add-status-private-coming-soon-site @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Updated composer.lock. + + diff --git a/projects/plugins/boost/composer.lock b/projects/plugins/boost/composer.lock index 67ee6599cab7..1e40629df526 100644 --- a/projects/plugins/boost/composer.lock +++ b/projects/plugins/boost/composer.lock @@ -1096,7 +1096,7 @@ "dist": { "type": "path", "url": "../../packages/status", - "reference": "295e13cbb1b584a5435c8a467773bffd5f90a5e2" + "reference": "c558b54d0365cf2d4dbe04ce0884afd1cf20d7a1" }, "require": { "automattic/jetpack-constants": "@dev" @@ -1114,7 +1114,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } }, "autoload": { diff --git a/projects/plugins/jetpack/changelog/add-status-private-coming-soon-site b/projects/plugins/jetpack/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..a1c1831fa1ef --- /dev/null +++ b/projects/plugins/jetpack/changelog/add-status-private-coming-soon-site @@ -0,0 +1,5 @@ +Significance: patch +Type: other +Comment: Updated composer.lock. + + diff --git a/projects/plugins/jetpack/composer.lock b/projects/plugins/jetpack/composer.lock index 2a8dd2d5738e..0373dd5455aa 100644 --- a/projects/plugins/jetpack/composer.lock +++ b/projects/plugins/jetpack/composer.lock @@ -2076,7 +2076,7 @@ "dist": { "type": "path", "url": "../../packages/status", - "reference": "295e13cbb1b584a5435c8a467773bffd5f90a5e2" + "reference": "c558b54d0365cf2d4dbe04ce0884afd1cf20d7a1" }, "require": { "automattic/jetpack-constants": "@dev" @@ -2094,7 +2094,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } }, "autoload": { diff --git a/projects/plugins/protect/changelog/add-status-private-coming-soon-site b/projects/plugins/protect/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..9aa70e3ec1f7 --- /dev/null +++ b/projects/plugins/protect/changelog/add-status-private-coming-soon-site @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Updated composer.lock. + + diff --git a/projects/plugins/protect/composer.lock b/projects/plugins/protect/composer.lock index 0d5630313a33..02ce5d5979e7 100644 --- a/projects/plugins/protect/composer.lock +++ b/projects/plugins/protect/composer.lock @@ -1161,7 +1161,7 @@ "dist": { "type": "path", "url": "../../packages/status", - "reference": "295e13cbb1b584a5435c8a467773bffd5f90a5e2" + "reference": "c558b54d0365cf2d4dbe04ce0884afd1cf20d7a1" }, "require": { "automattic/jetpack-constants": "@dev" @@ -1179,7 +1179,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } }, "autoload": { diff --git a/projects/plugins/search/changelog/add-status-private-coming-soon-site b/projects/plugins/search/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..9aa70e3ec1f7 --- /dev/null +++ b/projects/plugins/search/changelog/add-status-private-coming-soon-site @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Updated composer.lock. + + diff --git a/projects/plugins/search/composer.lock b/projects/plugins/search/composer.lock index 7b96a4bca5bc..4fea1c76c318 100644 --- a/projects/plugins/search/composer.lock +++ b/projects/plugins/search/composer.lock @@ -1240,7 +1240,7 @@ "dist": { "type": "path", "url": "../../packages/status", - "reference": "295e13cbb1b584a5435c8a467773bffd5f90a5e2" + "reference": "c558b54d0365cf2d4dbe04ce0884afd1cf20d7a1" }, "require": { "automattic/jetpack-constants": "@dev" @@ -1258,7 +1258,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } }, "autoload": { diff --git a/projects/plugins/social/changelog/add-status-private-coming-soon-site b/projects/plugins/social/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..9aa70e3ec1f7 --- /dev/null +++ b/projects/plugins/social/changelog/add-status-private-coming-soon-site @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Updated composer.lock. + + diff --git a/projects/plugins/social/composer.lock b/projects/plugins/social/composer.lock index c74731f5c5be..ed184f830184 100644 --- a/projects/plugins/social/composer.lock +++ b/projects/plugins/social/composer.lock @@ -1229,7 +1229,7 @@ "dist": { "type": "path", "url": "../../packages/status", - "reference": "295e13cbb1b584a5435c8a467773bffd5f90a5e2" + "reference": "c558b54d0365cf2d4dbe04ce0884afd1cf20d7a1" }, "require": { "automattic/jetpack-constants": "@dev" @@ -1247,7 +1247,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } }, "autoload": { diff --git a/projects/plugins/starter-plugin/changelog/add-status-private-coming-soon-site b/projects/plugins/starter-plugin/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..9aa70e3ec1f7 --- /dev/null +++ b/projects/plugins/starter-plugin/changelog/add-status-private-coming-soon-site @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Updated composer.lock. + + diff --git a/projects/plugins/starter-plugin/composer.lock b/projects/plugins/starter-plugin/composer.lock index 9f5d5b330f76..1ab53ae4c463 100644 --- a/projects/plugins/starter-plugin/composer.lock +++ b/projects/plugins/starter-plugin/composer.lock @@ -1097,7 +1097,7 @@ "dist": { "type": "path", "url": "../../packages/status", - "reference": "295e13cbb1b584a5435c8a467773bffd5f90a5e2" + "reference": "c558b54d0365cf2d4dbe04ce0884afd1cf20d7a1" }, "require": { "automattic/jetpack-constants": "@dev" @@ -1115,7 +1115,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } }, "autoload": { diff --git a/projects/plugins/videopress/changelog/add-status-private-coming-soon-site b/projects/plugins/videopress/changelog/add-status-private-coming-soon-site new file mode 100644 index 000000000000..9aa70e3ec1f7 --- /dev/null +++ b/projects/plugins/videopress/changelog/add-status-private-coming-soon-site @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Updated composer.lock. + + diff --git a/projects/plugins/videopress/composer.lock b/projects/plugins/videopress/composer.lock index 60e055a86796..f3916c65d2b0 100644 --- a/projects/plugins/videopress/composer.lock +++ b/projects/plugins/videopress/composer.lock @@ -1161,7 +1161,7 @@ "dist": { "type": "path", "url": "../../packages/status", - "reference": "295e13cbb1b584a5435c8a467773bffd5f90a5e2" + "reference": "c558b54d0365cf2d4dbe04ce0884afd1cf20d7a1" }, "require": { "automattic/jetpack-constants": "@dev" @@ -1179,7 +1179,7 @@ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}" }, "branch-alias": { - "dev-trunk": "1.15.x-dev" + "dev-trunk": "1.16.x-dev" } }, "autoload": {