Oferta SiteGround Black Friday

Cómo desactivar plugins dependiendo del perfil de usuario

El otro día veíamos cómo desactivar plugins dependiendo del estado de conexión del usuario, y hoy vamos a ver una variación del mismo código, pero en esta ocasión dependiendo del perfil de usuario.

El código sería así:

/* Desactivar plugins para un perfil de usuario */
add_filter( 'option_active_plugins', 'desactivar_plugins_perfil_contributor' );
function desactivar_plugins_perfil_contributor( $plugins ) {
// El gancho 'option_active_plugins' se lanza antes de que se genere info de usuario
// por lo que hay que cargar pronto este archivo
require (ABSPATH . WPINC . '/pluggable.php');
// Si el usuario tiene el perfil de contributor
if ( current_user_can('Contributor') ) {
// Usa el slug de la carpeta del plugin y el nombre de su archivo php principal
// como en los siguientes ejemplos
$plugins_not_needed = array ('woo-add-to-cart-popup/woo-add-to-cart-popup.php',
'hurry-timer/hurry-timer.php','wp-advanced-ads-manager/wp-advanced-ads-manager.php' );
foreach ( $plugins_not_needed as $plugin ) {
$key = array_search( $plugin, $plugins );
if ( false !== $key ) {
unset( $plugins[ $key ] );
}
}
}
return $plugins;
}

El código puedes añadirlo como plugin independiente o plugin imprescindible (mejor), pues necesita cargarse pronto.

Con esto, cuando el usuario conectado tenga el perfil de contributor no se cargarán los plugins del array.

Una posible variación de este código es si quieres desactivar plugins en base a perfiles de usuario, no de WordPress, sino de WooCommerce, como el gestor de tienda, en cuyo caso puedes usar este otro código:

/* Desactivar plugin si el usuario es gestor de tienda */
add_action( 'init', 'ayudawp_desactivar_plugin_gestores_tienda' );
function ayudawp_desactivar_plugin_gestores_tienda() {
if ( wp_doing_ajax() ) return;
if ( wc_current_user_has_role( 'shop_manager' ) ) {
deactivate_plugins(
array( 'hurry-timer/hurry-timer.php' ),
true,
false,
);
} else {
activate_plugins(
array( 'hurry-timer/hurry-timer.php' ),
'',
false,
true,
);
}
}

Todo lo demás es igual que con el código anterior.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 4.8 / 5. Total de votos: 4

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

1 comentario en “Cómo desactivar plugins dependiendo del perfil de usuario”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio