context = $context; } /** * Standalone mode * * @since 1.8.0 */ public function register() { if ( ! $this->is_standalone() ) { return; } /** * Appends the standalone admin body class. * * @since 1.8.0 * * @param string $admin_body_classes Admin body classes. * @return string Filtered admin body classes. */ add_filter( 'admin_body_class', function ( $admin_body_classes ) { return "{$admin_body_classes} googlesitekit-standalone"; } ); remove_action( 'in_admin_header', 'wp_admin_bar_render', 0 ); add_filter( 'admin_footer_text', '__return_empty_string', PHP_INT_MAX ); add_filter( 'update_footer', '__return_empty_string', PHP_INT_MAX ); add_action( 'admin_head', function () { $this->print_standalone_styles(); } ); } /** * Detects if we are in Google Site Kit standalone mode. * * @since 1.8.0 * * @return boolean True when in standalone mode, else false. */ public function is_standalone() { global $pagenow; $page = htmlspecialchars( $this->context->input()->filter( INPUT_GET, 'page' ) ?: '' ); $standalone = $this->context->input()->filter( INPUT_GET, 'googlesitekit-standalone', FILTER_VALIDATE_BOOLEAN ); return ( 'admin.php' === $pagenow && false !== strpos( $page, 'googlesitekit' ) && $standalone ); } /** * Enqueues styles for standalone mode. * * @since 1.8.0 */ private function print_standalone_styles() { ?>