No permitir desactivar plugins

Tiempo estimado de lectura: 4 minutos

 

Cómo podemos no permitir desactivar plugins

Esta semana veremos cómo podemos no permitir desactivar plugins a usuarios registrados de nuestra web. Este es un complemento a un artículo de hace unas semanas en el que hemos visto cómo esconder un plugin de la lista de plugins.

¿Por qué aprender a hacer esto?

Ya hemos comentado en varias ocasiones el peligro que tiene tener usuarios en nuestra web con permisos para poder administrar las páginas y los post. Pues bien, ahora añadimos a esta lista de cosas muy importantes los plugins.

Imagínate que un usuario de tu web tiene rol de administrador y sin querer borra un plugin imprescindible de tu web.

Otro ejemplo que puede ser más cercano para ti: imagínate que terminas la web de un cliente y le das los datos de acceso y administración de su web. Seguramente le entregarás un usuario con el rol de administrador… Ahora imagínate que te llama un día y te dice que ha borrado sin querer un plugin de su web y que ha dejado de funcionar, o ya no se ve como debería verse.

La solución más rápida sería cargarle una copia de seguridad de la última fecha (o la más proxima) en la que su web funcionaba correctamente. ¿No sería estupendo que en lugar de dejarle acceso a todos los plugins, le restringieras el mismo a ciertos plugins vitales de la web?.

Código que vamos a utilizar para no permitir desactivar plugins

El código que vamos a utilizar es muy sencillo: crearemos una función que desactivará la opción desactivar plugins (valga la redundancia), y si esa opción de desactivar existe, directamente la desactiva (unset), valga de nuevo la redundancia :-P.

Lo que tienes que saber es lo siguiente: debes conocer la ruta de instalación del plugin en cuestión que quieras impedir desactivar, terminada con el nombre de su archivo .php. Es decir, si quieres impedir la desactivación del plugin Contact Form 7, la ruta de acceso a ese plugin es la siguiente:

contact-form-7/wp-contact-form-7.php

Si quieres impedir que se desactive el plugin Code Snippets, que es el plugin que habitualmente utilizamos para insertar estos trozos de código, su ruta es la siguiente:

code-snippets/code-snippets.php

Con estos ejemplos de plugins que no permitiremos desactivar, el código resultante sería este:

/* No permitir desactivar plugins */
function disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {
if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
'contact-form-7/wp-contact-form-7.php',
'code-snippets/code-snippets.php',
)))
unset( $actions['deactivate'] );
return $actions;
}
add_filter( 'plugin_action_links', 'disable_plugin_deactivation', 10, 4 );

Y este es el resultado antes de aplicar este código:

Cómo no permitir desactivar plugins
Cómo podemos no permitir desactivar plugins

Y el resultado después de aplicarlo:

Cómo podemos no permitir desactivar plugins de la lsita de plugins
Cómo podemos no permitir desactivar plugins de la lista de plugins


¿Qué te ha parecido el artículo?. Házmelo saber en los comentarios que tienes más abajo. Estoy deseando leerte.

Por último, si crees que este artículo puede ser interesante para algún amigo tuyo, te agradecería enormemente que lo compartieras con él y con todo el mundo a través de las Redes Sociales.

Puntúa este artículo:
[Total: 0 - Promedio: 0]

Puede que también te interese...

Deja una respuesta

Información básica sobre protección de datos
Responsable: Jose González Bueno.
Finalidad: Moderación y publicación de comentarios.
Destinatarios: No se comunican datos a terceros, salvo por imperativo legal.
Derechos: Tienes derecho a acceder, rectificar, exportar y suprimir tus datos.

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

He leído y acepto la política de privacidad de este sitio. *