Cómo mostrar una notificación al activar un Plugin en WordPress

PHPWordPress

Puede que en ocasiones queramos mostrar un mensaje cuando los usuarios activan el Plugin que has creado. De este modo podremos hacer cosas como:

  • Ofrecer información acerca de los requerimientos del servidor.
  • Agregar un enlace a la página de opciones del Plugin.
  • Mostrar un enlace hacia algún tutorial.
  • Preguntar al usuario si quiere dar una valoración de tu flamante Plugin.
  • Pedir una donación a los usuarios de esas que sabemos que jamás realizarán.
  • Sencillamente agradecerles que utilicen el Plugin.

Si creas una notificación en el panel de administración de WordPress te darás cuenta de que no puedes utilizar la acción admin_notices dentro de la función que asocies al hook de activación del Plugin. En este tutorial veremos un método alternativo acerca de cómo podemos mostrar la notificación.

He aquí un ejemplo de lo que queremos conseguir.
He aquí un ejemplo de lo que queremos conseguir.

Nos vamos a dejar de charlas y vamos a ver directamente un ejemplo de código que funciona y que podéis adaptar a vuestros Plugins.

register_activation_hook( __FILE__, 'mi_plugin_admin_notice_plugin_activation_hook' );
function mi_plugin_admin_notice_plugin_activation_hook() {
  set_transient( 'mi-plugin-admin-notice-plugin', true, 5 );
}

add_action( 'admin_notices', 'mi_plugin_admin_notice_plugin_notice' );
function cs_admin_notice_plugin_notice(){
  if( get_transient( 'cs-admin-notice-plugin' ) ){
    ?>
    <div class="updated notice is-dismissible">
      <p>Gracias por entrar en esta web. <strong>¡Que la disfrutes!</strong>.</p>
    </div>
    <?php
    // Delete transient, only display this notice once
    delete_transient( 'cs-admin-notice-plugin' );
  }
}

Lo que hacemos es agregar una acción a nuestro Plugin que mostrará un mensaje cuando se muestre cualquier notificación tal y como podemos ver en la segunda función llamada mi-plugin_admin_notice_plugin_notice. El problema es  que solamente queremos mostrar la notificación cuando se haya activado el Plugin.

Para solucionarlo, creamos un hook en la que agregamos un valor temporal mediante set_transient( ‘mi-plugin-admin-notice-plugin’, true, 5 ). Este valor será verdadero hasta que lo eliminemos dentro de al función mi-plugin_admin_notice_plugin_notice cuando el plugin se activa.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

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

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”