# elasticpress/4.7.0/includes/classes/StatusReport/Features.php

ElasticPress, version 4.7.0. 69 lines.

- Page: https://pluginprobe.com/plugins/elasticpress/4.7.0/code/includes/classes/StatusReport/Features.php
- Raw: https://pluginprobe.com/plugins/elasticpress/4.7.0/raw/includes/classes/StatusReport/Features.php
- Modified: 2023-01-10T18:12:08+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elasticpress/4.7.0/code/includes/classes/StatusReport/Features.php#L10-L20`.

```php
<?php
/**
 * Feature report class
 *
 * @since 4.4.0
 * @package elasticpress
 */

namespace ElasticPress\StatusReport;

use \ElasticPress\Features as EP_Features;

defined( 'ABSPATH' ) || exit;

/**
 * Feature report class
 *
 * @package ElasticPress
 */
class Features extends Report {

	/**
	 * Return the report title
	 *
	 * @return string
	 */
	public function get_title() : string {
		return __( 'Feature Settings', 'elasticpress' );
	}

	/**
	 * Return the report fields
	 *
	 * @return array
	 */
	public function get_groups() : array {
		$features_settings = \ElasticPress\Utils\get_option( 'ep_feature_settings', [] );

		$features = array_filter(
			EP_Features::factory()->registered_features,
			function( $feature ) {
				return $feature->is_active();
			}
		);
		$features = wp_list_sort( $features, 'title' );

		$groups = [];
		foreach ( $features as $feature ) {
			$feature_settings = $features_settings[ $feature->slug ] ?? [];

			$fields = [];
			foreach ( $feature_settings as $feature_setting => $value ) {
				$fields[ $feature_setting ] = [
					'label' => $feature_setting,
					'value' => $value,
				];
			}
			ksort( $fields );

			$groups[] = [
				'title'  => $feature->get_short_title(),
				'fields' => $fields,
			];
		}

		return $groups;
	}
}

```
