Hace poco me encargaron un trabajo para modificar la funcionalidad de un plugin, lo primero fue buscar algún Hook para la funcionalidad que quería modificar, de esta manera evitaría tocar los archivos del plugin, sin embargo no localicé ningún Hook.
Generalidades
Como no encontré un Hook en el que insertar mi código, terminé modificando un archivo del plugin, pero ahora encontré otro problema y es que el plugin en el futuro podría actualizarse y perdería las modificaciones realizadas.
Una posible solución sería clonar el plugin con otro nombre y así evitar la actualización, sin embargo me decante por evitar que el plugin notifique una actualización y hacer la actualización de manera manual, ya que tendría que hacer la modificación al archivo nuevamente.
Al final lo que quería obtener es algo similar a la siguiente imagen:

Código para evitar que un plugin notifique actualizaciones
El siguiente código puede ser agregado al final del archivo functions.php del tema o usando algún plugin de Snippets
// Deshabilitar la notificación de actualización de plugins
add_filter( 'site_transient_update_plugins', 'dcms_disable_plugin_update' );
function dcms_disable_plugin_update( $value ) {
if ( isset($value) && is_object($value) ) {
// Desactivamos las notificaciones del plugin1
if ( isset( $value->response['plugin1/plugin1.php'] ) ) {
unset( $value->response['plugin1/plugin1.php'] );
}
}
return $value;
}
En el código anterior:
- Usamos el Hook llamado site_transient_update_plugins que hace referencia a la función dcms_disable_plugin_update()
- Comprobamos que el parámetro $value sea un parámetro válido
- Evaluamos la clave del array $value que hace referencia al plugin al que queremos quitar las notificaciones
- Finalmente usamos la función de PHP unset() para quitar ese elemento del array
Conclusión
Si quieres evitar la notificación de actualización y que un plugin sea actualizado accidentalmente, entonces puedes evaluar desactivar notificación, de esta manera podrás decidir cuando actualizar manualmente. Esto es especialmente útil, tal como te comenté, cuando has realizado modificaciones a los archivos del plugin.
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.
Hola.
Como siempre muy correcta esta forma de hacerlo.
Yo hasta ahora lo hacía modificando la versión y poniendo por ejemplo: Version: 9.9.99
Ya sé que estoy es muy incorrecto, pero funciona.
Gracias por tus aportaciones.
Saludos
Buen tutorial… Puede ser muy útil
Saludos, el código:
add_filter( ‘site_transient_update_plugins’, ‘dcms_disable_plugin_update’ );
function dcms_disable_plugin_update( $value ) {
if ( isset($value) && is_object($value) ) {
// Desactivamos las notificaciones del plugin1
if ( isset( $value->response[‘plugin1/plugin1.php’] ) ) {
unset( $value->response[‘plugin1/plugin1.php’] );
}
}
return $value;
}
funciona para 1 plugin pero si necesito deshabilitar las notificaciones de dos o tres que modificación debo realizar.
Gracias.
Repite el bloque if
// Desactivamos las notificaciones del plugin1
…
// Desactivamos las notificaciones del plugin2
…
Puedes hacer varias comprobaciones para distintos plugins en ifs independientes o usando elseif.
Saludos.
Muchas gracias, me re sirvió! Gracias