/** * @param $remote_plugins * @return array */ protected function filter_remote_plugins($remote_plugins) { $available_updates = array(); // find new versions foreach ($remote_plugins as $remote_plugin) { // find corresponding local plugin $plugin = $this->extensions->find(function ($p) use($remote_plugin) { return $p->id() == $remote_plugin->id; }); // plugin found and local plugin version not same as remote version? if (!$plugin || version_compare($plugin->version(), $remote_plugin->version, '>=')) { continue; } // add some dynamic data $available_updates[$plugin->slug()] = $this->format_response($plugin, $remote_plugin); } return $available_updates; }
/** * @param Collection $plugins * @return object */ public function get_plugins(Collection $plugins) { // create array of plugin ID's $plugin_ids = $plugins->map(function ($p) { return $p->id(); }); $endpoint = add_query_arg(array('ids' => implode(',', $plugin_ids), 'format' => 'wp'), '/plugins'); return $this->call($endpoint); }