This commit creates a new method called
WC_Admin_Status::output_plugins_info() that is used to display the
plugins that are installed on the site in the system status report page.
It is used to display both the active and inactive plugins sections and
it was created to remove code duplication.
I don't think that adding this code as a method to WC_Admin_Status is
an ideal solution but it is the best that I could think and it is better
than duplicating code. Suggestions of other places are welcome.
The check now also tests whether wc admin is active to prevent notice about undefined constant when running on WP 5.2 and older, or with inactive WC Admin.
WooCommerce relies on the constant DB_NAME to display information about the database tables in the system status page. The problem is that this constant is not always defined (e.g., when the plugin HyperDB is used to replace the standard wpdb class). When that is the case, WooCommerce will incorrectly say that its core tables are missing and the following PHP warning will be generated:
```
Use of undefined constant DB_NAME - assumed 'DB_NAME' (this will throw an Error in a future version of PHP)
wp-content/plugins/woocommerce/includes/api/v2/class-wc-rest-system-status-v2-controller.php:708
```
To fix this, this commit checks to see if DB_NAME is defined before using it. When the constant is not set, WooCommerce will display the following message to the users instead of the list of supposedly missing tables:
```
Database information: Unable to retrieve database information. Usually, this is not a problem, and it only means that your install is using a class that replaces the WordPress database class (e.g., HyperDB) and WooCommerce is unable to get database information.
```
This commit adds a new line to the section "WordPress environment" of the system status page to indicate whether or not WP external object cache is enabled.