'GET', 'callback' => 'broadnews_get_all_useful_plugins', 'permission_callback' => function () { return true; return current_user_can('manage_options'); }, ) ); } function broadnews_get_all_useful_plugins(\WP_REST_Request $request){ $params = $request->get_params(); $plugin_array = json_decode($request['plug'],TRUE); require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); $data = array(); foreach($plugin_array as $plugin) { $button_classes = 'install button'; $button_text = __('Install Now', 'broadnews'); $plugin_description = $plugin['description']; $api = plugins_api( 'plugin_information', array( 'slug' => sanitize_file_name($plugin['slug']), 'fields' => array( 'short_description' => true, 'sections' => false, 'requires' => false, 'downloaded' => true, 'last_updated' => false, 'added' => false, 'tags' => false, 'compatibility' => false, 'homepage' => false, 'donate_link' => false, 'icons' => true, 'banners' => true, ), ) ); if ( !is_wp_error( $api ) ) { // confirm error free $main_plugin_file = broadnews_get_plugin_file($plugin['slug']); // Get main plugin file if($plugin['slug'] == 'af-companion'){ $title = $plugin['title']; }else{ $title = $api->name; } if(broadnews_check_file_extension($main_plugin_file)){ // check file extension if(is_plugin_active($main_plugin_file)){ // plugin activation, confirmed! $button_classes = 'button disabled'; $button_text = __('Activated', 'broadnews'); } else { // It's installed, let's activate it $button_classes = 'activate button button-primary'; $button_text = __('Activate', 'broadnews'); } } $data['plugins'][] = broadnews_render_plugin_lists_template($plugin, $api, $button_text, $button_classes, $plugin_description,$title); } } return $data; } function broadnews_render_plugin_lists_template($plugin, $api, $button_text, $button_classes ,$plugin_description,$title){ ob_start(); ?>

author; ?>

$plugin_info ) { // Get the basename of the plugin e.g. [askismet]/askismet.php $slug = dirname( plugin_basename( $plugin_file ) ); if($slug){ if ( $slug == $plugin_slug ) { return $plugin_file; // If $slug = $plugin_name } } } return null; } function broadnews_check_file_extension( $filename ) { if( substr( strrchr($filename, '.' ), 1 ) === 'php' ){ // has .php exension return true; } else { // ./wp-content/plugins return false; } }