WC_Plugin_Updates::get_untested_plugins( string $new_version, string $release )
Get installed plugins that have a tested version lower than the input version.
Description Description
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.
Parameters Parameters
- $new_version
-
(Required) WooCommerce version to test against.
- $release
-
(Required) 'major', 'minor', or 'none'.
Return Return
(array) of plugin info arrays
Source Source
File: includes/admin/plugin-updates/class-wc-plugin-updates.php
public function get_untested_plugins( $new_version, $release ) { $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]; } if ( 'major' === $release ) { $current_version_parts = explode( '.', Constants::get_constant( 'WC_VERSION' ) ); // If user has already moved to the major version, we don't need to flag up anything. if ( version_compare( $current_version_parts[0] . '.' . $current_version_parts[1], $new_version_parts[0] . '.0', '>=' ) ) { return array(); } } 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; }