it-swarm-eu.dev

Aktualizace pro soukromý plugin?

Pokud píšu soukromý plugin, existuje nějaký způsob, jak použít mechanismus automatické aktualizace WordPress pro jeho aktualizaci?

Chci zapracovat funkce, ale je to specifické pro mé vlastní 5 nebo tak blogy, takže to není dobrý kandidát pro veřejné pluginy zdroje. Ale miluju snadno aktualizovatelný mechanismus.

Existuje způsob, jak toho dosáhnout?

112
artlung

Vypadá to, že příslušný kód je v 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);

Konkrétně kontroluje api.wordpress.org. Technicky vzato by bylo možné předat klíč uvnitř $to_send, aby bylo možné kontrolovat, ale na mé znalosti, které nejsou podporovány.

Pokud zavěsíte do set_site_transient_update_plugins, můžete do této proměnné přidat vlastní podrobnosti o balíčku. Vypadá to, že tyto hodnoty budou důvěryhodné, když spustíte aktualizační modul pluginu. Viz wp-admin/update.php a wp-admin/includes/class-wp-upgrader.php. Vzhledem k tomu, kód v těchto dvou funkcí, myslím, že by bylo možné vstřikovat svůj vlastní aktualizační server, stačí se podívat na to, jak jsou podrobnosti o balíčku formátovány a odpovídají.

45
Annika Backstrom

Tento plugin to udělá za vás:

Automatické aktualizace pro soukromé a komerční pluginy

Od nepaměti podporují automatické aktualizace pouze pluginy hostované v oficiálním adresáři pluginů WordPress.org. Nyní jsem napsal knihovnu PHP, kterou můžete použít k přidání funkcí automatické aktualizace do libovolného pluginu. Veřejné, soukromé i komerční pluginy - všechny nyní mohou využívat výhod automatických aktualizací oznámení a upgradu na jedno kliknutí.

Repozitář GitHub

40
agileapricot

Pokud se vám líbí zdarma ... a chcete použít něco jako GitHub, GitLab nebo BitBucket, jedná se o kvalitní a podporovaný plugin pro práci s ním (podporuje soukromé i podnikové):

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

9
sMyles

Dívám se do té samé věci. Pár odkazů, které jsem našel a které by mohly být užitečné:

Prvním z nich jsou některé informace a odkazy na upgrade API. Druhým je fragment kódu, který ukazuje, jak skutečně požadovat informace z rozhraní API.

8
Dougal Campbell

Možná budete chtít podívat na WordPress Development Kit plugin . Nedávno jsem migroval svůj vlastní systém aktualizace do tohoto pluginu. Plugin nyní slouží jako back-end procesor pro mé aktualizace prémiového pluginu.

To je podobné v nastavení na řešení poskytované společností agileapricot výše. Bude instalován jako standardní plugin na stránkách WordPress. Hostujete své prémiové soubory .zip a plugins.json ve výrobních nebo předprodejních adresářích na vašem serveru (specifikovaném v nastavení pro plugin).

Plugin také umožňuje seznam verzí pluginů a může dokonce poskytnout soubory ke stažení na veřejných, heslem chráněných nebo chráněných stránkách. Zde můžete vidět příklad seznamu verzí na stránce .

Používám plugin pro měsíce ke zveřejnění protokolu změn pro mé prémiové doplňky, seznam aktuálních verzí a seznamy ke stažení pro držitele předplatného Premier. Nyní, s verzí 0.7.01, pracuje jako cíl dotazu pro inline aktualizace WordPress.

Doufám, že někteří z vás to považují za užitečné.

1
Lance Cleveland

Pokud chcete hostované řešení, které nemusíte spravovat, podívejte se na Kernl ( https://kernl.us ). Je to služba, která poskytuje infrastrukturu pro aktualizaci pluginů a usnadňuje integraci do vlastních pluginů.

1