Disattivare l'Aggiornamento Automatico per un Singolo Plugin WordPress

9 ago 2011, 03:02:21
Visualizzazioni: 16.7K
Voti: 12

Ho un plugin che so che non voglio mai aggiornare. Sono consapevole che questa NON è una buona pratica, ma in questo caso è necessario. C'è un modo per impedire a WordPress di sollecitarmi ad aggiornare automaticamente un particolare plugin (mantenendo però gli avvisi normali per tutti gli altri plugin).

2
Commenti

Aumenta il numero di versione all'interno del file principale del plugin... es. 99.9 ...e apporta la stessa modifica anche nel file readme per maggiore sicurezza (anche se non penso sia effettivamente richiesto)..

t31os t31os
9 ago 2011 03:12:24

L'aggiustamento dei numeri di versione funzionerà ancora se il plugin aggiorna i suoi numeri di versione a qualcosa come 1.10.1?

emc emc
25 set 2013 22:33:21
Tutte le risposte alla domanda 8
4
12

inserisci questo nel file functions.php del tuo tema

// Disabilita le notifiche di aggiornamento per singoli plugin - vedi il mio esempio del plugin block-spam-by-math-reloaded per capire come usare questa funzione

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

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

Non capisco perché ci sia un codice del pulsante Google +1 nella tua risposta... Probabilmente un residuo...

brasofilo brasofilo
29 giu 2012 22:38:18

Residuo. Scusa.

Tara Tara
1 lug 2012 00:05:48

Questa soluzione genera un avviso durante l'attivazione o disattivazione di qualsiasi altro 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 gen 2014 05:58:03

gurung su quale versione di WP lo stai usando?

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

La risposta di T31os era corretta: aumenta il numero di versione all'interno del file principale del plugin... ad esempio 99.9... e apporta la stessa modifica anche nel file readme per maggiore sicurezza (anche se non penso sia effettivamente necessario).. – t31os

9 ago 2011 18:42:43
Commenti

2022 e funziona ancora! grazie

Sid Sid
23 mar 2022 13:53:08
1

Sebbene la risposta di Tara funzioni bene, richiede che il programmatore inserisca il percorso del file principale del plugin e funziona solo finché quel particolare tema è attivo. Una soluzione alternativa potrebbe essere questa:

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

versione one-line:

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

Inserisci questo codice all'inizio del file .php principale del plugin che desideri disabilitare. Se prevedi di utilizzarlo più di una volta nel tuo sito, cambia _1234 nel nome del filtro e della funzione con una serie diversa di numeri casuali per evitare nomi di funzione duplicati.

È probabile che se stai disabilitando gli aggiornamenti per un particolare plugin, sia perché lo stai modificando per qualche motivo... quindi aggiungere qualche riga in più a quel plugin dovrebbe essere fattibile.

25 set 2013 22:35:19
Commenti

Questa è la risposta migliore secondo me, soprattutto se stai disabilitando gli aggiornamenti perché stai modificando il plugin da solo. Grazie emc.

Nathan Nathan
11 mag 2018 18:55:46
0

Ricevevo avvisi PHP come quelli menzionati da 'gurung' quando installavo o aggiornavo altri plugin mentre utilizzavo questo codice. Ho visto questi avvisi PHP in WP 4.3.1.

Ho trovato altri post su stackexchange riguardanti il problema e ho creato una funzione che scorre l'array di riferimenti ai plugin e verifica prima se esiste già un riferimento a quel plugin (per evitare l'avviso PHP su non-oggetti se non ce n'è uno). Se esiste un oggetto, lo rimuove proprio come nel codice originale.

Non ho eseguito test unitari, ma ricevevo avvisi PHP ad ogni aggiornamento/installazione di plugin e ora non li vedo più.

function filter_plugin_updates( $value ) {

  // Aggiungi riferimenti ai plugin per cui vuoi disabilitare gli avvisi di aggiornamento nell'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 set 2015 19:02:59
0

Oppure puoi semplicemente rinominarlo in modo che 'non' sia lo stesso plugin.
Devi rinominare non solo la cartella ma anche nel file readme e nell'intestazione del plugin.

9 ago 2011 04:25:29
0

Ho ereditato un sito con l'implementazione npc dello snippet di codice di tara, che generava errori secondo il commento di gurung. Mi ha fatto impazzire. Ero titubante nel modificare il codice di un plugin, fino a quando non ho realizzato che lo snippet è comunque personalizzato.

Per eliminare gli errori, cambia questo:

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

in questo:

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

Potrebbe essere ovvio per alcuni, ma il punto chiave è che è già personalizzato quindi puoi modificarlo, e probabilmente non verrà sovrascritto dagli aggiornamenti perché lo scopo è proprio quello di evitare che tu aggiorni il plugin.

17 dic 2015 23:44:56
0

Puoi prevenire gli aggiornamenti semplicemente rinominando la cartella del plugin (o, nel caso di un plugin composto da un singolo file, rinominando quel file PHP). Questa è di gran lunga la soluzione più semplice. Inoltre, questo approccio rende evidente il fatto che hai modificato il codice agli sviluppatori futuri, incluso il "tuo futuro te stesso".

25 mar 2019 00:44:18
0

Una versione più alta nel file principale del plugin è la migliore, ma solo quando si aggiunge un hack speciale. Chiama un numero nullo/indefinito e rimarrà quindi in quella versione. Esempio:

Versione:

Ciò garantirà che nel 2100 non verrà aggiornato dopo la 9.9.9 o qualcosa di simile. È un approccio semplice per i plugin abbandonati che a un certo punto verranno sostituiti.

18 giu 2019 21:42:34