Cómo desactivar las actualizaciones automáticas para un plugin específico en WordPress

9 ago 2011, 03:02:21
Vistas: 16.7K
Votos: 12

Tengo un plugin que sé que nunca quiero actualizar. Soy consciente de que NO es la mejor práctica, pero en este caso es necesario hacerlo. ¿Hay alguna manera de evitar que WordPress me notifique sobre actualizaciones automáticas para un plugin en particular (pero que siga alertando normalmente para todos los demás plugins)?

2
Comentarios

Incrementa el número de versión dentro del archivo principal del plugin... ej. 99.9 ...y también haz ese mismo cambio dentro del archivo readme por si acaso (aunque no creo que sea realmente necesario)..

t31os t31os
9 ago 2011 03:12:24

¿Ajustar los números de versión seguirá funcionando si el plugin actualiza sus números de versión a algo como 1.10.1?

emc emc
25 sept 2013 22:33:21
Todas las respuestas a la pregunta 8
4
12

coloca esto en el functions.php de tu tema

// Desactiva las notificaciones de actualización para plugins individuales - mira mi ejemplo del plugin block-spam-by-math-reloaded para ver cómo usar esta función

function filter_plugin_updates( $value ) {
    unset( $value->response['plugin-folder-name/plugin-file-name.php'] );    
    return $value;
}

add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
9 ago 2011 03:37:41
Comentarios

No entiendo por qué hay un código del botón Google +1 en tu respuesta... Probablemente un remanente...

brasofilo brasofilo
29 jun 2012 22:38:18

remanente. Lo siento.

Tara Tara
1 jul 2012 00:05:48

Esta solución genera una advertencia al activar o desactivar cualquier otro plugin. Warning: Attempt to modify property of non-object in /home/XXXXXX/public_html/wp-content/themes/XXXXXXX/custom-functions.php on line 15

gurung gurung
11 ene 2014 05:58:03

¿Qué versión de WP estás utilizando para esto?

fedmich fedmich
17 feb 2015 18:33:27
1
10

La respuesta de T31os era correcta: Incrementa el número de versión dentro del archivo principal del plugin... ej. 99.9 ... y también realiza ese mismo cambio dentro del archivo readme por si acaso (aunque no creo que sea realmente necesario).. – t31os

9 ago 2011 18:42:43
Comentarios

¡2022 y todavía funciona! Gracias

Sid Sid
23 mar 2022 13:53:08
1

Si bien la respuesta de Tara funciona bien, requiere que el programador introduzca la ruta al archivo principal del plugin y solo funciona mientras ese tema en particular está activado. Una solución alternativa podría ser esta:

add_filter('site_transient_update_plugins', 'remove_update_notification_1234');
function remove_update_notification_1234($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
    return $value;
}

versión de una línea:

add_filter('site_transient_update_plugins', function ($value) { unset($value->response[ plugin_basename(__FILE__) ]);return $value; });

Coloca este código al inicio del archivo principal .php del plugin que deseas desactivar. Si planeas usar esto más de una vez en tu sitio, cambia el _1234 en el filtro y nombre de la función por un conjunto diferente de números aleatorios para evitar nombres de funciones duplicados.

Es probable que si estás desactivando actualizaciones para un plugin en particular, es porque lo estás editando por alguna razón... así que agregar algunas líneas extra a ese plugin debería ser viable.

25 sept 2013 22:35:19
Comentarios

Esta es la mejor respuesta en mi opinión, especialmente si estás desactivando actualizaciones porque estás editando el plugin tú mismo. Gracias emc.

Nathan Nathan
11 may 2018 18:55:46
0

Estaba recibiendo advertencias PHP como las mencionadas por 'gurung' cuando instalaba o actualizaba otros plugins mientras usaba este código. Vi estas advertencias en WordPress 4.3.1.

Encontré algunas publicaciones en stackexchange sobre este problema y desarrollé una función que recorre el array de referencias de plugins. Primero verifica si existe una referencia a ese plugin (para evitar la advertencia PHP en objetos no existentes) y si existe el objeto, lo elimina como en el código original.

No he realizado pruebas unitarias, pero antes recibía advertencias PHP en cada actualización/instalación de plugins y ahora ya no las veo.

function filter_plugin_updates( $value ) {

  // Agrega referencias a los plugins para los que quieres desactivar las notificaciones de actualización en el array $plugins
  $plugins = array(
    'k-elements/setup.php'
  );

  foreach( $plugins as $plugin ) {
    if ( isset( $value->response[$plugin] ) ) {
      unset( $value->response[$plugin] );
    }
  }

  return $value;

}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
21 sept 2015 19:02:59
0

O simplemente lo renombras para que 'no' sea el mismo plugin.
Necesitas renombrar no solo la carpeta sino también en el readme y en la cabecera del plugin.

9 ago 2011 04:25:29
0

Heredé un sitio con la implementación de NPC del fragmento de código de Tara, que arrojaba errores según el comentario de Gurung. Me volvió loco. Dudaba en editar código en un plugin, hasta que me di cuenta de que el fragmento es personalizado de todos modos.

Para eliminar los errores, cambia esto:

unset($value->response[ plugin_basename(__FILE__) ]);

por esto:

if($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
}

Puede ser obvio para algunos, pero la clave es que ya es personalizado, así que puedes editarlo, y probablemente no se sobrescribirá con actualizaciones porque el objetivo es evitar que actualices el plugin.

17 dic 2015 23:44:56
0

Puedes evitar actualizaciones simplemente renombrando la carpeta del plugin (o, en el caso de un plugin de un solo archivo, renombrando ese archivo PHP). Esta es, por mucho, la solución más simple. Además, este enfoque hace que el hecho de que hayas alterado el código sea transparente para los desarrolladores futuros, incluyendo el "tú futuro".

25 mar 2019 00:44:18
0

Una versión más alta en el archivo principal del plugin es lo mejor, pero solo cuando se agrega un truco especial. Llama a un número nulo/indefinido y luego permanecerá en esa versión. Ejemplo:

Versión:

Esto asegurará que en el año 2100 no se actualice después de la versión 9.9.9 o algo similar. Es un enfoque simple para plugins abandonados que en algún momento serán reemplazados.

18 jun 2019 21:42:34