Automattic\WooCommerce\Internal\Features
FeaturesController::get_incompatible_plugins
Returns the list of plugins incompatible with a given feature.
Метод класса: FeaturesController{}
Хуков нет.
Возвращает
Массив. List of plugins incompatible with the given feature.
Использование
$FeaturesController = new FeaturesController(); $FeaturesController->get_incompatible_plugins( $feature_id, $plugin_list );
- $feature_id(строка) (обязательный)
- ID of the feature. Can also be all to denote all features.
- $plugin_list(массив) (обязательный)
- List of plugins to filter.
Код FeaturesController::get_incompatible_plugins() FeaturesController::get incompatible plugins WC 10.4.3
public function get_incompatible_plugins( $feature_id, $plugin_list ) {
$incompatibles = array();
$plugin_list = array_diff_key( $plugin_list, array_flip( $this->plugins_excluded_from_compatibility_ui ) );
$feature_ids = 'all' === $feature_id ? array_keys( $this->get_feature_definitions() ) : array( $feature_id );
$only_enabled_features = 'all' === $feature_id;
// phpcs:enable WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput
foreach ( array_keys( $plugin_list ) as $plugin_name ) {
if ( ! $this->plugin_util->is_woocommerce_aware_plugin( $plugin_name ) || ! $this->proxy->call_function( 'is_plugin_active', $plugin_name ) ) {
continue;
}
$compatibility_info = $this->get_compatible_features_for_plugin( $plugin_name );
foreach ( $feature_ids as $feature_id ) {
$features_considered_incompatible = array_filter(
$this->plugin_util->get_items_considered_incompatible( $feature_id, $compatibility_info ),
$only_enabled_features ?
fn( $id ) => $this->feature_is_enabled( $id ) && ! $this->should_skip_compatibility_checks( $id ) :
fn( $id ) => ! $this->should_skip_compatibility_checks( $id )
);
if ( in_array( $feature_id, $features_considered_incompatible, true ) ) {
$incompatibles[] = $plugin_name;
}
}
}
return array_intersect_key( $plugin_list, array_flip( $incompatibles ) );
}