WC_Plugin_Updates::get_untested_plugins()publicWC 1.0

Get installed plugins that have a tested version lower than the input version.

In case of testing major version compatibility and if current WC version is >= major version part of the $new_version, no plugins are returned, even if they don't explicitly declare compatibility with the $new_version.

Метод класса: WC_Plugin_Updates{}

Хуков нет.

Возвращает

Массив. of plugin info arrays

Использование

$WC_Plugin_Updates = new WC_Plugin_Updates();
$WC_Plugin_Updates->get_untested_plugins( $new_version, $release );
$new_version(строка) (обязательный)
WooCommerce version to test against.
$release(строка) (обязательный)
'major', 'minor', or 'none'.

Код WC_Plugin_Updates::get_untested_plugins() WC 8.7.0

public function get_untested_plugins( $new_version, $release ) {
	// Since 5.0 all versions are backwards compatible.
	if ( 'none' === $release ) {
		return array();
	}

	$extensions        = array_merge( $this->get_plugins_with_header( self::VERSION_TESTED_HEADER ), $this->get_plugins_for_woocommerce() );
	$untested          = array();
	$new_version_parts = explode( '.', $new_version );
	$version           = $new_version_parts[0];

	if ( 'minor' === $release ) {
		$version .= '.' . $new_version_parts[1];
	}

	foreach ( $extensions as $file => $plugin ) {
		if ( ! empty( $plugin[ self::VERSION_TESTED_HEADER ] ) ) {
			$plugin_version_parts = explode( '.', $plugin[ self::VERSION_TESTED_HEADER ] );

			if ( ! is_numeric( $plugin_version_parts[0] )
				|| ( 'minor' === $release && ! isset( $plugin_version_parts[1] ) )
				|| ( 'minor' === $release && ! is_numeric( $plugin_version_parts[1] ) )
				) {
				continue;
			}

			$plugin_version = $plugin_version_parts[0];

			if ( 'minor' === $release ) {
				$plugin_version .= '.' . $plugin_version_parts[1];
			}

			if ( version_compare( $plugin_version, $version, '<' ) ) {
				$untested[ $file ] = $plugin;
			}
		} else {
			$plugin[ self::VERSION_TESTED_HEADER ] = __( 'unknown', 'woocommerce' );
			$untested[ $file ]                     = $plugin;
		}
	}

	return $untested;
}