Plugins (IV) Activar y desactivar funciones

Una de las principales funciones al realizar un plugin es la función register_Activation_hook() que nos permite activar y desactivar funciones y que se ejecuta al activar el plugin en la pantalla de plugins de WordPress.

Esta función admite dos parametros:

  • La ruta del archivo del plugin principal
  • la funcion a ejecutar cuando se activa

A continuación vemos como se ejecuta  la función inicio() al activar el plugin:

regisiter_activation_hook(__FILE__, 'inicio');

function inicio()
{
  //código de la funcion inicio
}

Con esta función se puede ejecutar alguna acción al activar nuestro plugin, como por ejemplo querer comprobar que la versión actual es compatible con nuestro plugin, aunque podría tener ajustes y opciones predeterminados a nuestras necesidades.

En el siguiente ejemplo vamos a ver si la versión de nuestro WordPress es superior a la que necesite el plugin para ejecutarse, ya que de otra forma no nos funcionaría.

register_activation_hook(__FILE__, 'inicio');

function inicio()
{
  global $wp_version;

  if(version_compare($wp_version, '4.1', '<')){
    wp_die('Este plugin necesita una version 4.1 o superior de wordpress para ejecutarse');
  }
}

En este ejemplo hemos utilizado la variable global $wp_version que almacena la version de WP que estamos utilizando y la comparamos en la función version_compare() mostrando un mensaje de error si la versión no esta actualizada como mínimo a la 4.1.

De la misma forma que tenemos la función register_Activation_hook() también disponemos de la función register_deactivation_hook() que se ejecuta al desactivar un plugin. Acepta los mismos parámetros que su hermana, tal y como vemos en el siguiente ejemplo:

register_deactivation_hook(__FILE__, 'desactivar');

function desactivar()
{
  //código
}

Hay que tener en cuenta que desactivar no es lo mismo que desinstalar, ya que si un usuario desactiva por error el plugin este no debe de borrar la configuración, por lo que hay que evitar poner funciones de desinstalación en las funciones de desactivar.

Como podemos ver el proceso para activar y desactivar funciones es bastante sencillo y es algo que nos servirá bastante a la hora del desarrollo de nuestros plugins