2016-06-18 4 views
1

Я хочу показать уведомление администратора, которое должно показать, не является ли WooCommerce не последней версией. Я попытался выполнить следующую функцию, которая не работает. Любая помощь будет оценена.Как показать уведомления администратора при проверке версии WooCommerce

function check_wc_version($version = '2.6.1'){ 
    if (function_exists('is_woocommerce_active') && is_woocommerce_active()) { 
     global $woocommerce; 
     if(version_compare($woocommerce, $version, ">=")) { 
      echo 'Show some notice here'; 
     } 
    } 
} 
add_action('admin_notices', 'check_wc_version'); 

ответ

1

Ну ваша функция находится на правильном пути, но не работает, потому что $woocommerce не номер версии. Это глобальная переменная, которая устарела, но содержит экземпляр основного класса WooCommerce. Теперь вы можете получить экземпляр singleton этого класса с помощью функции WC(). И одна из переменных класса - version, поэтому вы можете получить текущую версию WC через WC()->version. Кроме того, я думаю, вам нужно перевернуть свой оператор сравнения. Непроверенный, но я думаю, что это сработает.

function check_wc_version($version = '2.6.1'){ 
    if (function_exists('WC') && (version_compare(WC()->version, $version, "<")) { 
      echo 'You need a higher version of WooCommerce'; 
    } 
} 
add_action('admin_notices', 'check_wc_version'); 
+0

благодарит за ваш ответ. Фактически, я использовал константу, подобную этой, если (определен («WOOCOMMERCE_VERSION») && version_compare (WOOCOMMERCE_VERSION, «2.6.0», «> =»)) { – Ayanize