public function show_update_notification($file, $plugin)
{
if (!current_user_can('update_plugins')) {
return;
}
if (!is_multisite()) {
return;
}
if ($this->name != $file) {
return;
}
// Remove our filter on the site transient
remove_filter('pre_set_site_transient_update_plugins', array($this, 'check_update'), 10);
$update_cache = get_site_transient('update_plugins');
if (!is_object($update_cache) || empty($update_cache->response) || empty($update_cache->response[$this->name])) {
$cache_key = md5('edd_plugin_' . sanitize_key($this->name) . '_version_info');
$version_info = get_transient($cache_key);
if (false === $version_info) {
$version_info = $this->api_request('plugin_latest_version', array('slug' => $this->slug));
set_transient($cache_key, $version_info, 3600);
}
if (!is_object($version_info)) {
return;
}
if (version_compare($this->version, $version_info->new_version, '<')) {
$update_cache->response[$this->name] = $version_info;
}
$update_cache->last_checked = time();
$update_cache->checked[$this->name] = $this->version;
set_site_transient('update_plugins', $update_cache);
} else {
$version_info = $update_cache->response[$this->name];
}
// Restore our filter
add_filter('pre_set_site_transient_update_plugins', array($this, 'check_update'));
if (!empty($update_cache->response[$this->name]) && version_compare($this->version, $version_info->new_version, '<')) {
// build a plugin list row, with update notification
$wp_list_table = _get_list_table('WP_Plugins_List_Table');
echo '<tr class="plugin-update-tr"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange"><div class="update-message">';
$changelog_link = self_admin_url('index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911');
if (empty($version_info->download_link)) {
printf(__('There is a new version of %1$s available. <a target="_blank" class="thickbox" href="%2$s">View version %3$s details</a>.', 'edd'), esc_html($version_info->name), esc_url($changelog_link), esc_html($version_info->new_version));
} else {
printf(__('There is a new version of %1$s available. <a target="_blank" class="thickbox" href="%2$s">View version %3$s details</a> or <a href="%4$s">update now</a>.', 'edd'), esc_html($version_info->name), esc_url($changelog_link), esc_html($version_info->new_version), esc_url(wp_nonce_url(self_admin_url('update.php?action=upgrade-plugin&plugin=') . $this->name, 'upgrade-plugin_' . $this->name)));
}
echo '</div></td></tr>';
}
}