For the activation of your plugin you have to write few lines of code in the plugin.
The WordPress installation runs from wp-admin/install.php. What we are looking for is for certain actions to be triggered once the install is successful, so a good place to insert our code is right above this:
<h1><?php _e( 'Success!' ); ?></h1>
We see a code block that starts with:
if ( $error === false ) {
$wpdb->show_errors();
$result = wp_install($weblog_title, $user_name, $admin_email, $public, '', $admin_password);
extract( $result, EXTR_SKIP );
I chose to insert our actions after the last extract statement. To activate the plugins, I added:
require_once( dirname( dirname( __FILE__ ) ) . '/wp-admin/includes/plugin.php' );
activate_plugin( dirname( dirname( __FILE__ ) ) . '/wp-content/plugins/plugin-dir-name/pluginfile.php' );
And for the hiding the plugin from the list of plugin:
/**
* Filter the list of plugins according to user_login
*
* Usage: configure the variable $plugin_credentials, which holds a list of users and their plugins.
* To give full access, put a simple string "ALL"
* To grant only for some plugins, create an array with the Plugin Slug,
* which is the file name without extension (akismet.php, hello.php)
*
* @return array List of plugins
*/
function wdm_plugin_permissions( $plugins )
{
// Config
$plugin_credentials = array(
'admin' => "ALL",
'other-admin' => array(
'akismet',
),
'another-admin' => array(
'akismet',
'hello',
),
);
// Current user
global $current_user;
$username = $current_user->user_login;
// Super admin, return everything
if ( "ALL" == $plugin_credentials[ $username ] )
return $plugins;
// Filter the plugins of the user
foreach ( $plugins as $key => $value )
{
// Get the file name minus extension
$plugin_slug = basename( $key, '.php' );
// If not in the list of allowed plugins, remove from array
if( !in_array( $plugin_slug, $plugin_credentials[ $username ] ) )
unset( $plugins[ $key ] );
}
return $plugins;
}
add_filter( 'all_plugins', 'wdm_plugin_permissions' );
You need to modify the code as per your users roles.
For plugin hide code you may refer to this