Automattic\WooCommerce

Packages::get_enabled_packages()protected staticWC 1.0

Gets all merged, enabled packages.

Method of the class: Packages{}

No Hooks.

Return

Array.

Usage

$result = Packages::get_enabled_packages();

Packages::get_enabled_packages() code WC 9.6.1

protected static function get_enabled_packages() {
	$enabled_packages = array();

	foreach ( self::$merged_packages as $merged_package_name => $package_class ) {

		$option       = 'wc_feature_' . str_replace( '-', '_', $merged_package_name ) . '_enabled';
		$option_value = get_option( $option, '' );

		// Opt out from the feature.
		if ( 'no' === $option_value ) {
			continue;
		}

		// Force enable feature -- mainly for testing purpose.
		if ( 'yes' === $option_value ) {
			$enabled_packages[ $merged_package_name ] = $package_class;
			continue;
		}

		// If an option is not set, ensure that a package is enabled for user's remote variant number. Mainly for gradual releases.
		$experimental_package_enabled = method_exists( $package_class, 'is_enabled' ) ?
			call_user_func( array( $package_class, 'is_enabled' ) ) :
			false;

		if ( ! $experimental_package_enabled ) {
			continue;
		}

		$enabled_packages[ $merged_package_name ] = $package_class;
	}

	return array_merge( $enabled_packages, self::$base_packages );
}