Как проверить версию WooCommerce

Разрабатывая дополнения для WooCommerce я столкнулся с необходимостью проверки текущей версии данного плагина. Это нужно в первую очередь для того, чтобы обеспечивать совместимость кода и избежать появления всевозможных ошибок. Предлагаю вашему вниманию следующее решение данной задачи:

if (!function_exists('get_woo_version_number')) {
	function get_woo_version_number() {
		// If get_plugins() isn't available, require it
		if (!function_exists('get_plugins')) {
			require_once( ABSPATH . 'wp-admin/includes/plugin.php');
		}
		// Create the plugins folder and file variables
		$plugin_folder = get_plugins('/' . 'woocommerce');
		$plugin_file = 'woocommerce.php';
			
		// If the plugin version number is set, return it 
		if (isset($plugin_folder[$plugin_file]['Version'])) {
			return $plugin_folder[$plugin_file]['Version'];
		} else {	
			return null;
		}
	}
}

Код выше вы можете вставить в файл function.php вашей темы либо в код вашего плагина. Если вы заметили, то я обернул функцию в условие function_exists. Можно данный if убрать, но в таком случае я настоятельно рекомендую добавить функции get_woo_version_number какой-нибудь уникальный префикс (особенно, если вы пишите плагин).

Пример использования:

echo get_woo_version_number();

Этот код выведет на экран номер текущей версии вукомерц.

Как добавить поддержку проверки версии вашего плагина на совместимость с WooCommerce

Наверняка вы видели, что Вукомерц при выходе новой версии может уведомить пользователя о том, что такие-то плагины совместимы, а такие-то не проходили проверку на совместимость с новой версией Вукомерца. Выглядит это примерно так:

woocommerce проверка совместимости плагинов

А достигается очень просто. В шапку вашего плагина необходимо добавить следующую информацию:

WC requires at least: 3.0.0
WC tested up to: 3.5.5

где WC requires at least - минимальная версия WooCommerce, необходимая для работы, а WC tested up to: 3.5.5 - последняя версия WooCommerce с которой проверялась совместимость с вашим плагином.

Пример кода моего плагина:

совместимость с вукомерц

Еще одна функция, которая вам может понадобиться. Нарыл на зарубежном форуме:

/**
* Check WooCommerce Version
* @param string $version
* @return bool
*/
function woo_feed_wc_version_check($version = '3.0') {
	if (class_exists('WooCommerce')) {
		global $woocommerce;
		if (version_compare($woocommerce->version, $version, ">=" )) {
			return true;
		}
	}
	return false;
}
Рейтинг: 5

2023-10-23 / / 0 комментариев / Про кодинг и сервер / , ,