EDD_SL_Plugin_Updater::show_update_notification PHP Method

show_update_notification() public method

show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise!
public show_update_notification ( string $file, array $plugin )
$file string
$plugin array
    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>';
        }
    }