¿Hay alguna manera de determinar si un complemento de WordPress acaba de instalarse?

2 minutos de lectura

avatar de usuario
KodePara.Me

Me gustaría saber si hay alguna forma de saber si un complemento está recién instalado. No me importa si eso ya está activado, ¡pero solo si ese complemento está instalado!

¿Conoces alguna buena forma de hacerlo?

Tengo que ser más específico. Sé dónde encontrar los complementos y sé cómo puedo ver si están instalados. La pregunta es si hay alguna forma programática de verificar si el complemento está instalado.

es decir: WordPress nos proporciona register_activation_hook() para realizar cualquier operación que deseemos en la activación del complemento, pero no hay ningún enlace relevante para la instalación del complemento. ¿Hay alguna forma de determinar la instalación del complemento?

  • ¿Estás hablando de verificar desde un archivo de script php? ¿Te gustaría ver si existe un complemento? Y si es así, ¿es un complemento en particular o cualquier complemento?

    – Sénica González

    12 de octubre de 2011 a las 11:05

avatar de usuario
cerebro de dron

Aquí está la mejor manera que he encontrado hasta ahora: (esto fue escrito a partir de WP 3.5)

Información:

Lo principal a tener en cuenta con register_activation_hook es que se llama como una página intermedia entre hacer clic en un enlace de activación de wp-admin/plugins.php y ver el aviso de Complemento activado después de que se haya conectado. Descubrí esto después de intenté usar el $_GET variable que se envían desde el enlace Activar. Si observa bien, el enlace en el que hace clic también y el enlace en el que termina son ligeramente diferentes. Por eso no puedes usar add_action(), do_action() or add_filter().. dentro de register_activation_hook() disparadores Redirige instantáneamente una vez que se ha activado un complemento.

Solución:

Sin embargo, puede utilizar add_option durante los procesos de gancho como tal

/* Main Plugin File */
...
register_activation_hook( __FILE__, function() {
  add_option('Activated_Plugin','Plugin-Slug');
  /* activation code here */
});

add_action('admin_init','load_plugin');
function load_plugin() {
    if(is_admin()&&get_option('Activated_Plugin')=='Plugin-Slug') {
     delete_option('Activated_Plugin');
     /* do some stuff once right after activation */
    }
}

Eso debería ayudarte a empezar…

Hay varias formas de comprobar que se me ocurren:

  • Compruebe que la carpeta del complemento existe
  • Comprobar que se ha definido un gancho o filtro
  • Verifique que se haya definido un definido () – espere hasta que se ejecute el enlace plugins_loaded para este
  • Verifique un campo de opciones para valores relacionados establecidos por el complemento
  • Comprobar que se ha definido una clase

¿Ha sido útil esta solución?