Automattic\WooCommerce\Internal\Admin\RemoteFreeExtensions

EvaluateExtension::evaluate()public staticWC 1.0

Evaluates the extension and returns it.

Method of the class: EvaluateExtension{}

No Hooks.

Return

Object. The evaluated extension.

Usage

$result = EvaluateExtension::evaluate( $extension );
$extension(object) (required)
The extension to evaluate.

EvaluateExtension::evaluate() code WC 8.6.1

public static function evaluate( $extension ) {
	global $wp_version;
	$rule_evaluator = new RuleEvaluator();

	if ( isset( $extension->is_visible ) ) {
		$is_visible            = $rule_evaluator->evaluate( $extension->is_visible );
		$extension->is_visible = $is_visible;
	} else {
		$extension->is_visible = true;
	}

	// Run PHP and WP version chcecks.
	if ( true === $extension->is_visible ) {
		if ( isset( $extension->min_php_version ) && ! version_compare( PHP_VERSION, $extension->min_php_version, '>=' ) ) {
			$extension->is_visible = false;
		}

		if ( isset( $extension->min_wp_version ) && ! version_compare( $wp_version, $extension->min_wp_version, '>=' ) ) {
			$extension->is_visible = false;
		}
	}

	$installed_plugins       = PluginsHelper::get_installed_plugin_slugs();
	$activated_plugins       = PluginsHelper::get_active_plugin_slugs();
	$extension->is_installed = in_array( explode( ':', $extension->key )[0], $installed_plugins, true );
	$extension->is_activated = in_array( explode( ':', $extension->key )[0], $activated_plugins, true );

	return $extension;
}