CMS PHP Programación WordPress

Mostrar una notificación al activar un Plugin en WordPress

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.

EduZRO

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

No Comments

comment No comments yet

You can be first to leave a comment

Deja un comentario

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