Fragen\GitHub_Updater\Plugin::pre_set_site_transient_update_plugins PHP Method

pre_set_site_transient_update_plugins() public method

Hook into pre_set_site_transient_update_plugins to update from GitHub.
public pre_set_site_transient_update_plugins ( $transient ) : mixed
$transient
return mixed
    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;
    }