EP_API::get_plugins PHP Method

get_plugins() public method

Gets a list of available Elasticearch plugins.
Since: 1.9
public get_plugins ( ) : array
return array Array of plugins and their version or error message
    public function get_plugins()
    {
        $plugins = get_transient('ep_installed_plugins');
        if (is_array($plugins)) {
            return $plugins;
        }
        $plugins = array();
        if (is_wp_error(ep_get_host())) {
            return array('status' => false, 'msg' => esc_html__('Elasticsearch Host is not available.', 'elasticpress'));
        }
        $path = '/_nodes?plugin=true';
        $request = ep_remote_request($path, array('method' => 'GET'));
        if (!is_wp_error($request)) {
            $response = json_decode(wp_remote_retrieve_body($request), true);
            if (isset($response['nodes'])) {
                foreach ($response['nodes'] as $node) {
                    if (isset($node['plugins']) && is_array($node['plugins'])) {
                        foreach ($node['plugins'] as $plugin) {
                            $plugins[$plugin['name']] = $plugin['version'];
                        }
                        break;
                    }
                }
            }
            set_transient('ep_installed_plugins', $plugins, apply_filters('ep_installed_plugins_exp', 3600));
            return $plugins;
        }
        return array('status' => false, 'msg' => $request->get_error_message());
    }