Activar, desactivar y desinstalar plugins de WordPress

Home » Blog » Activar, desactivar y desinstalar plugins de WordPress

Cuando estamos creando un plugin para wordpress en ocasiones tenemos que realizar ciertas tareas previas para que nuestro plugin funcione, y cuando sea desinstalado nuestro plugin lo normal deshacer esas tareas. Para ello WordPress nos ofrece funciones especiales que se ejecutan en el momento de activar, desactivar o desinstalar nuestro plugin.

Activando un plugin

En primer lugar, hay que pensar que cuando un usuario se instala nuestro plugin no debemos realizar nada, en cierto modo solo lo tiene visible en su sitio pero no lo ésta usando. Pero cuando decide instalarlo, debemos realizar todos los preparativos para que nuestro plugin funcione de forma adecuada.

Normalmente, suelen crearse variables globales o creación de tablas específicas para el almacenamiento de información lo suficientemente compleja como para separarlo de las tablas básicas de WordPress.

function myplugin_activate() {
// código
}
register_activation_hook( __FILE__, 'myplugin_activate' );

Supongamos que cuando se instale nuestro plugin, vamos a recoger datos privados de los clientes y lo haremos en otras tablas ajenas a WordPress que nos permitan mantenerlos más seguros y encriptados si es necesario.

function myplugin_activate() {
$table_name=$wpdb->prefix.'datos_privados';
$sql = "Create table $table_name (
id int(100) NOT NULL AUTO_INCREMENT,
colesterol text NOT NULL
)
";
require_once(ABSPATH.'wp-admin/includes/upgrade.php');
dbDelta($sql);
} 
register_activation_hook( __FILE__, 'myplugin_activate' );

Con este código cuando un usuario active nuestro plugin se generara una tabla en la base de datos.

Antes de crear tablas es importante pensar si es necesario, solo es recomendable si la información que se guardara será mucha y muy diferenciada de las funcionalidades básicas de WordPress. Por ejemplo, si nuestro plugin es un gestor de formularios con preguntas anidadas, etc.

Desactivar un plugin

Aunque existe una función que se ejecuta al desactivar un plugin, piense que desactivar no es lo mismo que desinstalar. Piense que un usuario puede desinstalar para depurar un error y que lo puede volver a activar, ¿Es lógico que borre las tablas de la base de datos de su plugin?

function myplugin_desactivate() {
// código
}
register_deactivation_hook( __FILE__, 'myplugin_desactivate' );

Desinstalar plugin

Hay 2 formas de desinstalar un plugin, la primera es mediante la función register_uninstall_hook(__FILE__,’funcion_delete’); que no es la más ‘lógica’ ya que se ejecuta dentro de un fichero que queremos borrar, la otra forma es la de crear un fichero de desinstalación personalizado con el nombre: uninstall.php.

if (!defined('ABSPATH') && !defined('WP_UNINSTALL_PLUGIN')) exit();
//eliminar base de datos
global $wpdb;
//Borrar tabla de mysql
$table_name=$wpdb->prefix.'datos_privados';
$wpdb->query( "DROP TABLE $table_name");
delete_option('imacPrestashop_options');

En la primera línea comprobamos que no se intenta borrar el plugin desde fuera del administrador de WordPress, y luego borramos una tabla creada en la activación y eliminamos las variables almacenadas desde los ajustes del plugin.

Foto de Iñigo Mezo Alvarez

IÑIGO MEZO ALVAREZ (IMAcreste)


Comentarios

Deja una respuesta

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

Las reseñas son opiniones que las personas dejan en la página local de Google. Si son positivas, estas reseñas ayudarán a mejorar la confianza y credibilidad de una marca.

Participa en nuestro sorteo enviando un email con tu nombre y el asunto «Sorteo AUDITORÍA SEO». Se realizara un sorteo cada mes.

Evaluación EXCELENTE
A base de 7 reseñas

Contactamos con Iñigo para el diseño web de nuestra tienda online y estamos encantados. Su asesoramiento, seguimiento y trato han sido excepcionales. Un verdadero crack. Recomendado al 100%. No dudes en ponerte en contacto con el.

erlantz rique
erlantz rique
19/02/2024

Un acierto quien elija a Iñigo. Autentico profesional, se preocupó en todo momento que entendiera el funcionamiento de la web. Me explicó todo las veces necesarias hasta entenderlo. Se preocupó y acertó en que la web tuviera lo que le pedí y lo hizo con creces. Muy contento con el servicio prestado. Una vez realizado el trabajo, cualquier duda que tengo me sigue ayudando. Lo recomiendo sin temor a equivocarme.

Jose Marlasca
Jose Marlasca
06/02/2024

Dió en la clave y nos dió los instrumentos que necesitábamos en esos momentos, y sobre todo entendió a la perfección lo que buscábamos. Lo mejor de web que hemos tenido en 24 años. Eskerrik asko Mezo!!

Troka Abentura
Troka Abentura
07/01/2024

Compromiso, implicación e innovación en los proyectos. Atento a las necesidades e incansable en la búsqueda de soluciones. Muy buena opción.

Jabier Fuertes Udaondo
Jabier Fuertes Udaondo
07/01/2024

Si buscas a alguien que además de hacer un diseño web moderno, responsivo y adaptado a tu sector, te explique por qué plantea el diseño web de esa manera y que te explique y ayude en posicionar tu web lo mejor posible en base a los objetivos fijados, ese es Iñigo Mezo y os lo recomiendo al 100%

Asier Hermoso
Asier Hermoso
03/01/2024

Genial trabajar con él! Además de ser muy buen profesional, experto y responsable, a destacar tanto su implicación en cada proyecto, así como su trato siempre cercano y su paciencia infinita 😉
Un crack!!

itxaso zubia
itxaso zubia
15/12/2023

El plugin gratuito para integrar productos de Prestashop en Wordpress muy sencillo de utilizar y muy bien documentado, os felicito.

Fernando Cózar
Fernando Cózar
02/11/2023