Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Cómo desactivar plugins dependiendo de si los usuarios están conectados o no

En sitios de gran volumen hay que ser fino a la hora del control de la carga de recursos, procurando evitar la activación de todo aquello que no sea necesario en una situación, página, ubicación particular.

Mediante la carga selectiva de plugins podemos optimizar al máximo el consumo de recursos de nuestra web, consiguiendo de este modo un funcionamiento óptimo e incluso un ahorro en costes de hosting.

En esta ocasión vamos a plantear la situación en la que queremos que para los usuarios que estén conectados a nuestro sitio, desde administradores a clientes, se desactiven ciertos plugins que no tendrían utilidad alguna para ellos, al ser plugins con funcionalidades orientadas a usuarios no conectados a la web, como por ejemplo plugins de suscripción, ventanas emergentes o cualquier otro que se te ocurra.

La idea es evitar que esos plugins que no tienen utilidad para el usuario conectado, no consuman recursos, se desactiven para usuarios conectados.

El código que debes añadir es el siguiente:

/* Plugins que no se cargan para usuarios conectados */
add_filter( 'option_active_plugins', 'desactivar_plugins_usuarios_conectados' );
function desactivar_plugins_usuarios_conectados( $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 estamos conectados pero no en el area de admin de WP
if ( is_user_logged_in() & !is_admin() ) {

// 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;
}

Añade el código como plugin independiente o plugin imprescindible (mejor), pues necesita cargarse pronto el código para saber qué plugins están activos o no, y comprueba si, efectivamente, están desactivados los plugins del array cuando estás conectado a la web, y activos cuando estás desconectado.

Por supuesto, los slugs de los plugins del código son de ejemplo, pon algunos reales que tengas instalados.

Otro día probamos otras posibles situaciones 😉

Enregistrer un commentaire

0 Commentaires