Есть ли WordPress функция для определения, если плагин не обновлен? - PullRequest
1 голос
/ 25 марта 2019

Я пытаюсь добавить параметр автообновления в мой плагин WordPress. Я обнаружил, как выполнить обновление, но постоянное выполнение обновления, когда обновление недоступно, приведет к сбою веб-сайта. Есть ли функция WordPress, которая может проверить, есть ли обновление моего плагина? или глобальная переменная? или любой способ получить самый последний номер версии из плагинов WordPress? Мне нужен способ определить, обновлен ли плагин. спасибо.

эта функция, которую я нашел в сети здесь не работает

function is_plugin_updated($plugin_slug){
  if (!function_exists('get_plugins')) {
    require_once(ABSPATH.'wp-admin/includes/plugin.php');
  }
  $all_plugins = get_plugins();

  if(!empty($all_plugins[$plugin_slug])){
    return true;
  }else{
    return false;
  }
}

и эта функция просто дает мне текущую версию плагина, а не самую последнюю выпущенную версию

function get_plugin_version(){
  $plugin_data = get_file_data(__FILE__, array('Version' => 'Version'), false);
  $plugin_version = $plugin_data['Version'];
  return $plugin_version;
}

Это то, что я имею до сих пор

function upgrade_plugin($plugin_slug){
  include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
  wp_cache_flush();

  $upgrader = new Plugin_Upgrader();
  $upgraded = $upgrader->upgrade($plugin_slug);

  return $upgraded;
}

Мне нужно что-то еще подобное

function upgrade_plugin($plugin_slug){
  if(!pluginUpToDate()){
    include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
    wp_cache_flush();

    $upgrader = new Plugin_Upgrader();
    $upgraded = $upgrader->upgrade($plugin_slug);

    return $upgraded;
  }
}

function pluginUpToDate(){
  //detect if plugin version is current and up to date
}
...