Aggiornamenti per un plugin privato?


117

Se scrivo un plugin privato, c'è un modo per utilizzare il meccanismo di aggiornamento automatico di WordPress per aggiornarlo?

Voglio incapsulare la funzionalità, ma è specifica per i miei circa 5 blog, quindi non è un buon candidato per la risorsa di plugin pubblici. Adoro il meccanismo di facile aggiornamento.

C'è un modo per fare questo?


Credo che questo sia stato discusso come un'opzione filtrabile sulla mailing list di wp-hackers nel corso della giornata. Non è mai stato risolto, IIRC. Penso che la discussione pertinente fosse in questo thread: lists.automattic.com/pipermail/wp-hackers/2009-February/… ... ma potrei sbagliarmi.
ZaMoose, l'

Se non desideri implementare la tua soluzione, puoi utilizzare kernl.us per gli aggiornamenti dei plugin ospitati.
Jack Slingerland,

Risposte:


48

Sembra che il codice applicabile è wp-includes/update.php, wp_update_plugins():

$to_send = (object) compact('plugins', 'active');

$options = array(
    'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3), 
    'body' => array( 'plugins' => serialize( $to_send ) ),
    'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
);  

$raw_response = wp_remote_post('http://api.wordpress.org/plugins/update-check/1.0/', $options);

Controlla specificamente api.wordpress.org. Tecnicamente parlando sarebbe possibile passare una chiave all'interno $to_sendper delegare il controllo, ma per quanto ne so non è una funzionalità supportata.

Se ti agganci set_site_transient_update_pluginspuoi aggiungere i dettagli del tuo pacchetto in questa variabile. Sembra che quei valori saranno attendibili quando si esegue l'aggiornamento del plug-in. Vedi wp-admin/update.phpe wp-admin/includes/class-wp-upgrader.php. Dato il codice in queste due funzioni, penso che sarebbe possibile iniettare il tuo server di aggiornamento, devi solo guardare come vengono formattati i dettagli del pacchetto e abbinarli.


42

Questo plugin lo fa per te:

Aggiornamenti automatici per plugin privati ​​e commerciali

Da tempo immemorabile, solo i plugin ospitati nella directory ufficiale dei plugin di WordPress.org hanno supportato gli aggiornamenti automatici. Ora, ho scritto una libreria PHP che puoi usare per aggiungere funzionalità di aggiornamento automatico a qualsiasi plugin. Plugin pubblici, privati ​​e commerciali allo stesso modo: ora tutti possono godere dei vantaggi delle notifiche di aggiornamento automatico e degli aggiornamenti con un clic.

Repository GitHub


2
Potresti anche essere interessato a gestire i plugin dalla tua parte ... forse con il pacchetto wp-update-server, scritto dallo stesso autore;) github.com/YahnisElsts/wp-update-server Usando questo server, puoi proteggere i tuoi plugin, come descritto qui: w-shadow.com/blog/2013/03/19/…
SimonSimCity

come posso disabilitare il controllo aggiornamenti predefinito di wordpress sui plugin gratuiti?
csandreas1,

Anche se quel sito sembra obsoleto, il progetto è supportato molto attivamente e funziona anche con repository Bitbucket / Github privati! Guarda il loro repository Github per maggiori informazioni sulle diverse integrazioni disponibili github.com/YahnisElsts/plugin-update-checker
Mr. Me

10

Se ti piace il libero ... e vuoi usare qualcosa come GitHub, GitLab o BitBucket, questo è un plugin di buona qualità e supportato per gestirlo (supporta privati ​​e aziendali):

https://github.com/afragen/github-updater


1
Wow! Sembra un progetto ben supportato e maturo!
Armstrongest,

1
Affidarsi a un altro plugin non sembra una soluzione molto pulita.
kontur

2
@kontur è molto vero, ma essendo come se fosse open source e in costante aggiornamento, potrebbe essere usato come framework o semplicemente come esempio di codice con cui costruire il proprio.
sMyles,


1

Potresti voler dare un'occhiata al plugin del kit di sviluppo di WordPress . Di recente ho migrato il mio sistema di aggiornamento proprietario su questo plugin. Il plug-in ora funge da processore back-end per i miei aggiornamenti premium del plug-in.

Questo è simile nella configurazione alla soluzione fornita da agileapricot sopra. Si installerà come plugin standard su un sito WordPress. Ospiti i tuoi file .zip premium e plugins.json nelle directory di produzione o pre-release sul tuo server (specificate nelle impostazioni del plug-in).

Il plug-in consente inoltre di elencare le versioni del plug-in e può persino fornire un download per i file su pagine pubbliche, protette da password o protette da abbonamento. Puoi vedere un esempio dell'elenco delle versioni on-page qui .

Uso il plug-in da mesi per pubblicare il registro delle modifiche per i miei componenti aggiuntivi premium, l'elenco delle versioni correnti e gli elenchi di download per i miei possessori di abbonamenti Premier. Ora, con la versione 0.7.01, funziona come destinazione della query per gli aggiornamenti di WordPress in linea.

Spero che alcuni di voi lo trovino utile.


1

Se desideri una soluzione ospitata che non devi gestire, dai un'occhiata a Kernl ( https://kernl.us ). È un servizio che fornisce l'infrastruttura per l'aggiornamento dei plug-in e semplifica l'integrazione nei propri plug-in.


Sembra fattibile.
kontur

-1

puoi utilizzare questo plug-in commerciale: http://autohosted.com/ nessuna limitazione e avere molte altre funzionalità che potresti aver bisogno:

  • Nessun costo mensile
  • Uso illimitato
  • Facile integrazione con temi e plugin
  • Autenticazione per domini, chiavi e ruoli

1
È chiuso a nuove iscrizioni ...
Cliff P,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.