Automattic\WooCommerce\Internal\Features

FeaturesController::get_features()publicWC 1.0

Get all the existing WooCommerce features.

Returns an associative array where keys are unique feature ids and values are arrays with these keys:

  • name (string)
  • description (string)
  • is_experimental (bool)
  • is_enabled (bool) (only if $include_enabled_info is passed as true)

Method of the class: FeaturesController{}

No Hooks.

Return

null. Nothing (null).

Usage

$FeaturesController = new FeaturesController();
$FeaturesController->get_features( $include_experimental, $include_enabled_info ): array;
$include_experimental(true|false)
Include also experimental/work in progress features in the list.
Default: false
$include_enabled_info(true|false)
True to include the 'is_enabled' field in the returned features info.
Default: false

FeaturesController::get_features() code WC 9.3.3

public function get_features( bool $include_experimental = false, bool $include_enabled_info = false ): array {
	$features = $this->get_feature_definitions();

	if ( ! $include_experimental ) {
		$features = array_filter(
			$features,
			function ( $feature ) {
				return ! $feature['is_experimental'];
			}
		);
	}

	if ( $include_enabled_info ) {
		foreach ( array_keys( $features ) as $feature_id ) {
			$is_enabled                            = $this->feature_is_enabled( $feature_id );
			$features[ $feature_id ]['is_enabled'] = $is_enabled;
		}
	}

	return $features;
}