J'ai trouvé ce plugin qui désactive les plugins pour les utilisateurs connectés. Comment puis-je le modifier pour créer des plugins désactivés uniquement pour le rôle d'utilisateur contributeur?
add_filter( 'option_active_plugins', 'disable_logged_in_plugin' );
function disable_logged_in_plugin( $plugins ) {
// The 'option_active_plugins' hook occurs before any user information get generated,
// so we need to require this file early to be able to check for logged in status
require (ABSPATH . WPINC . '/pluggable.php');
// If we are logged in, and not inside the WP Admin area
if ( is_user_logged_in() & !is_admin() ) {
// Use the plugin folder and main file name here.
// is used here as an example
$plugins_not_needed = array ('embed-image-links/embed-image-links.php',
'external-featured-image/main.php','wp-noexternallinks/wp-noexternallinks.php' );
foreach ( $plugins_not_needed as $plugin ) {
$key = array_search( $plugin, $plugins );
if ( false !== $key ) {
unset( $plugins[ $key ] );
}
}
}
return $plugins;
}
Essaye celui-là. Je viens de changer que current_user_can('contributor')
au lieu de is_user_logged_in()
.
add_filter( 'option_active_plugins', 'disable_logged_in_plugin' );
function disable_logged_in_plugin( $plugins ) {
// The 'option_active_plugins' hook occurs before any user information get generated,
// so we need to require this file early to be able to check for logged in status
require (ABSPATH . WPINC . '/pluggable.php');
// If we are logged in, and NOT an admin...
if ( current_user_can('contributor') & !is_admin() ) {
// Use the plugin folder and main file name here.
// is used here as an example
$plugins_not_needed = array ('embed-image-links/embed-image-links.php',
'external-featured-image/main.php','wp-noexternallinks/wp-noexternallinks.php' );
foreach ( $plugins_not_needed as $plugin ) {
$key = array_search( $plugin, $plugins );
if ( false !== $key ) {
unset( $plugins[ $key ] );
}
}
}
return $plugins;
}