validate_wpaas() ) { return; } $this->setup_env_vars(); if ( self::is_log_enabled() ) { new Log(); } new Hotfixes( $api ); // Load these early. new Auto_Updates(); new Blacklist( $api ); new Bundled_Plugins(); new Cache(); new CDN(); new Gravity_Forms(); new Sucuri_Scanner(); new WooCommerce(); new WooCommerce_Product_Updates( $api ); new Worker(); new \WPaaS_Deprecated(); new Yoast_SEO(); /** * We can stop here in CLI mode. */ if ( self::is_wp_cli() ) { new CLI(); return; } new Change_Domain(); new Debug_Mode(); new RAD( $api ); new REST_API(); new RUM(); new SSO( $api ); new Temp_Domain( $api ); new Admin\Bar(); new Admin\Dashboard_Widgets(); new Admin\Recommended_Plugins_Tab(); new Admin\Growl(); new Admin\Site_Health(); new Admin\Starter_Tips(); new Admin\Themes_Tab( $api ); new Admin\Woo_Extensions( $api ); /** * Staging site admin notice. * * @since 2.0.11 */ if ( self::is_staging_site() ) { new Admin\Notice( __( 'Note: This is a staging site.', 'gd-system-plugin' ), [ 'error' ] ); } } /** * Setup commonly used env var for bundled plugins to consume * * @return void */ private function setup_env_vars() { if ( ! getenv( 'SERVER_ENV' ) ) { putenv( 'SERVER_ENV=' . self::get_env() ); } if ( ! getenv( 'SITE_UID' ) && defined( 'GD_ACCOUNT_UID' ) && GD_ACCOUNT_UID ) { putenv( 'SITE_UID=' . GD_ACCOUNT_UID ); } } /** * Verify that we are running on WPaaS. * * @return bool */ private function validate_wpaas() { if ( self::is_wpaas() ) { return true; } /** * Filter self-destruct mode. * * @since 2.0.0 * * @var bool */ $self_destruct = (bool) apply_filters( 'wpaas_self_destruct_enabled', ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) ); /** * If a WPaaS site has been migrated away to a different host * we will attempt to silently delete this System Plugin from * the filesystem. * * Self-destruct mode is disabled when running in debug mode. */ if ( $self_destruct ) { if ( ! class_exists( 'WP_Filesystem' ) ) { require_once ABSPATH . 'wp-admin/includes/file.php'; } WP_Filesystem(); global $wp_filesystem; $wp_filesystem->delete( self::$data['base_dir'], true ); $wp_filesystem->delete( __FILE__ ); } return false; } } plugin();