El otro día desarrollando una funcionalidad en uno de mis plugins, quería ofrecer de forma sencilla que los usuarios instalaran otro plugin que creo que es complementario al mío. Hay formas de sugerir a un usuario que instale otro, como enviarlo a la página del plugin en el repositorio por ejemplo algo así si te recomendara instalar nuestro plugin para importar y exportar usuarios y clientes para WordPress y WooCommerce.
Pero claro, esa solución no es buena porque sacas al usuario del entorno entonces la probabilidad que el usuario no sepa instalar el plugin o en su defecto, sepa instalarlo pero se despiste es muy alta.
Así que nada, si estáis desarrollando un plugin y queréis sugerir que un usuario instale un plugin sería tan fácil como hacer esto que os dejo a continuación:
sprintf( '<a href="%s">Haz clic aquí para instalar y activar nuestro plugin para importar usuarios y clientes</a>', esc_url( wp_nonce_url( self_admin_url('update.php?action=install-plugin&plugin=import-users-from-csv-with-meta'), 'install-plugin_import_users_from_csv_with_meta') ) )
Lo que pasará es que si hacéis click WordPress directamente:
- Instalará el plugin
- Te ofrecerá activarlo
Todo eso claro está si tienes el rol suficiente para hacerlo. Básicamente se trata de crear una cadena que llame a :
- Una URL de administración del sitio
- En la ruta del fichero update.php
- Con la acción install-plugin
- Y pasando el plugin por parámetro, el slug del mismo
- Todo ello se añade un nonce que se genera con una cadena que es install-plugin_ seguido del slug del plugin con los guiones cambiados por barras bajas
Y bueno ya que estamos os cuento que uso sprintf porque aunque aquí no es necesario expresamente al no haber cadenas internacionalizadas, es mucho más cómodo porque se queda la cadena sin la parte del anchor mucho más limpia para visualizar.