WC_Helper::get_local_woo_plugins() public WC 1.0
Obtain a list of data about locally installed Woo extensions.
{} Это метод класса: WC_Helper{}
Хуков нет.
Возвращает
Null. Ничего.
Использование
$result = WC_Helper::get_local_woo_plugins();
Код WC_Helper::get_local_woo_plugins() WC Helper::get local woo plugins WC 5.0.0
public static function get_local_woo_plugins() {
if ( ! function_exists( 'get_plugins' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$plugins = get_plugins();
/**
* Check if plugins have WC headers, if not then clear cache and fetch again.
* WC Headers will not be present if `wc_enable_wc_plugin_headers` hook was added after a `get_plugins` call -- for example when WC is activated/updated.
* Also, get_plugins call is expensive so we should clear this cache very conservatively.
*/
if ( ! empty( $plugins ) && ! array_key_exists( 'Woo', current( $plugins ) ) ) {
wp_clean_plugins_cache( false );
$plugins = get_plugins();
}
$woo_plugins = array();
// Backwards compatibility for woothemes_queue_update().
$_compat = array();
if ( ! empty( $GLOBALS['woothemes_queued_updates'] ) ) {
foreach ( $GLOBALS['woothemes_queued_updates'] as $_compat_plugin ) {
$_compat[ $_compat_plugin->file ] = array(
'product_id' => $_compat_plugin->product_id,
'file_id' => $_compat_plugin->file_id,
);
}
}
foreach ( $plugins as $filename => $data ) {
if ( empty( $data['Woo'] ) && ! empty( $_compat[ $filename ] ) ) {
$data['Woo'] = sprintf( '%d:%s', $_compat[ $filename ]['product_id'], $_compat[ $filename ]['file_id'] );
}
if ( empty( $data['Woo'] ) ) {
continue;
}
list( $product_id, $file_id ) = explode( ':', $data['Woo'] );
if ( empty( $product_id ) || empty( $file_id ) ) {
continue;
}
$data['_filename'] = $filename;
$data['_product_id'] = absint( $product_id );
$data['_file_id'] = $file_id;
$data['_type'] = 'plugin';
$data['slug'] = dirname( $filename );
$woo_plugins[ $filename ] = $data;
}
return $woo_plugins;
}