public function pre_set_site_transient_update_plugins($transient)
{
foreach ((array) $this->config as $plugin) {
if ($this->can_update($plugin)) {
$response = array('slug' => dirname($plugin->slug), 'plugin' => $plugin->slug, 'new_version' => $plugin->remote_version, 'url' => $plugin->uri, 'package' => $plugin->download_link, 'branch' => $plugin->branch, 'branches' => array_keys($plugin->branches));
/*
* If branch is 'master' and plugin is in wp.org repo then pull update from wp.org
*/
if ($plugin->dot_org && 'master' === $plugin->branch) {
$transient = empty($transient) ? get_site_transient('update_plugins') : $transient;
if (isset($transient->response[$plugin->slug]) && !isset($transient->response[$plugin->slug]->id)) {
unset($transient->response[$plugin->slug]);
}
continue;
}
/*
* Skip on branch switching or rollback.
*/
if ($this->tag && (isset($_GET['plugin']) && $plugin->slug === $_GET['plugin'])) {
continue;
}
$transient->response[$plugin->slug] = (object) $response;
}
}
return $transient;
}