id() ] = $feature; if ( $feature->is_enabled() ) { $feature->register(); } } if ( is_admin() ) { Admin\Menu::init(); Admin\Assets::init(); Admin\Notice::init(); Admin\Actions::init(); } } /** * Feature classes shipped in this build. * * @return string[] */ public static function feature_classes() { return array( Features\LoginLockout::class, Features\WafLite::class, Features\IntegrityScan::class, Features\Hardening::class, Features\ActivityLog::class, ); } /** * Loaded feature modules. * * @return Features\Feature[] */ public static function features() { return self::$features; } /** * One loaded feature module. * * @param string $id Module id. * @return Features\Feature|null */ public static function feature( $id ) { return isset( self::$features[ $id ] ) ? self::$features[ $id ] : null; } /** * Capability required to manage the plugin. * * @return string */ public static function capability() { return 'manage_options'; } }