Aktualizacje prywatnej wtyczki?

117

Jeśli piszę prywatną wtyczkę, czy jest jakiś sposób na skorzystanie z mechanizmu automatycznej aktualizacji WordPress w celu jej aktualizacji?

Chcę podsumować funkcjonalność, ale jest ona specyficzna dla moich 5 lub więcej blogów, więc nie jest dobrym kandydatem do publicznego źródła wtyczek. Ale uwielbiam mechanizm łatwej aktualizacji.

Czy jest na to sposób?

artlung
źródło
Wierzę, że omawiano to jako opcję do filtrowania na liście mailingowej wp-hackerów w ciągu dnia. Nigdy nie zostało rozwiązane, IIRC. Myślę, że odpowiednia dyskusja była w tym wątku: lists.automattic.com/pipermail/wp-hackers/2009- February / … ... ale mogę się mylić.
ZaMoose
Jeśli nie chcesz wdrażać własnego rozwiązania, możesz użyć kernl.us do aktualizacji hostowanych wtyczek.
Jack Slingerland

Odpowiedzi:

48

Wygląda na to obowiązujące kod znajduje się 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);

W szczególności sprawdza api.wordpress.org. Technicznie rzecz biorąc, można przekazać klucz $to_senddo środka, aby przekazać czek, ale według mojej wiedzy nie jest to obsługiwana funkcja.

Jeśli podłączysz się, set_site_transient_update_pluginsmożesz dodać własne szczegóły pakietu do tej zmiennej. Wygląda na to, że te wartości będą zaufane po uruchomieniu aktualizatora wtyczek. Zobacz wp-admin/update.phpi wp-admin/includes/class-wp-upgrader.php. Biorąc pod uwagę kod w tych dwóch funkcjach, myślę, że byłoby możliwe wstrzyknięcie własnego serwera aktualizacji, wystarczy spojrzeć na sposób formatowania szczegółów pakietu i dopasowanie go.

Annika Backstrom
źródło
42

Ta wtyczka zrobi to za Ciebie:

Automatyczne aktualizacje wtyczek prywatnych i komercyjnych

Od niepamiętnych czasów tylko wtyczki hostowane w oficjalnym katalogu wtyczek WordPress.org obsługują automatyczne aktualizacje. Teraz napisałem bibliotekę PHP, której można użyć do dodania funkcji automatycznej aktualizacji do dowolnej wtyczki. Wtyczki publiczne, prywatne i komercyjne - wszystkie mogą teraz korzystać z zalet automatycznych powiadomień o aktualizacjach i aktualizacji jednym kliknięciem.

Repozytorium GitHub

agileapricot
źródło
2
Możesz być także zainteresowany zarządzaniem wtyczkami po swojej stronie ... może za pomocą pakietu wp-update-servernapisanego przez tego samego autora;) github.com/YahnisElsts/wp-update-server Korzystając z tego serwera, możesz zabezpieczyć swoje wtyczki, ponieważ opisane tutaj: w-shadow.com/blog/2013/03/19/…
SimonSimCity
jak mogę wyłączyć domyślny moduł sprawdzania aktualizacji Wordpress na bezpłatnych wtyczkach?
csandreas1
Mimo że strona wygląda na przestarzałą, projekt jest bardzo aktywnie wspierany i działa również z prywatnymi repozytoriami Bitbucket / Github! Zobacz ich repozytorium Github, aby uzyskać więcej informacji na temat różnych dostępnych integracji github.com/YahnisElsts/plugin-update-checker
Mr. Me
10

Jeśli lubisz za darmo ... i chcesz użyć czegoś takiego jak GitHub, GitLab lub BitBucket, jest to dobrej jakości i obsługiwana wtyczka do obsługi tego (obsługuje prywatne i korporacyjne):

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

sMyles
źródło
1
Łał! Wygląda na dobrze obsługiwany i dojrzały projekt!
Armstrongest,
1
Poleganie na innej wtyczce nie wydaje się bardzo czystym rozwiązaniem.
kontur
2
@kontur jest bardzo prawdziwe, ale ponieważ jest to oprogramowanie typu open source i jest stale aktualizowane, może być używane jako środowisko lub jako przykład kodu do budowania własnych.
sMyles
8

Patrzę na to samo. Kilka linków, które znalazłem, które mogą być pomocne:

Pierwszym z nich jest kilka informacji i wskazówek do interfejsu API aktualizacji. Drugi to fragment kodu pokazujący, jak faktycznie żądać informacji z interfejsu API.

Dougal Campbell
źródło
1
@Dougal - Ładne linki!
MikeSchinkel
1

Możesz wypróbować wtyczkę WordPress Development Kit . Niedawno przeprowadziłem migrację mojego zastrzeżonego systemu aktualizacji do tej wtyczki. Wtyczka służy teraz jako procesor zaplecza dla moich aktualizacji wtyczek premium.

Jest to podobne w konfiguracji do rozwiązania dostarczonego przez agileapricot powyżej. Zostanie zainstalowany jako standardowa wtyczka na stronie WordPress. Hostujesz swoje premium pliki .zip i plugins.json w katalogach produkcyjnych lub wstępnych wydaniach na swoim serwerze (określonych w ustawieniach wtyczki).

Wtyczka umożliwia także wyświetlanie listy wersji wtyczek, a nawet zapewnia pobieranie plików na stronach publicznych, chronionych hasłem lub chronionych subskrypcją. Przykład listy wersji na stronie można zobaczyć tutaj .

Wtyczki używam od miesięcy do publikowania dziennika zmian moich dodatków premium, listy bieżących wersji i list pobierania dla moich posiadaczy subskrypcji Premier. Teraz, w wersji 0.7.01, działa jako miejsce docelowe zapytania dla wbudowanych aktualizacji WordPress.

Mam nadzieję, że niektórzy z was uznają to za przydatne.

Lance Cleveland
źródło
1

Jeśli potrzebujesz hostowanego rozwiązania, którym nie musisz zarządzać, sprawdź Kernl ( https://kernl.us ). Jest to usługa zapewniająca infrastrukturę do aktualizacji wtyczek i ułatwiająca integrację z własnymi wtyczkami.

Jack Slingerland
źródło
To wydaje się opłacalne.
kontur
-1

możesz użyć tej komercyjnej wtyczki: http://autohosted.com/ bez ograniczeń i mieć kilka innych funkcji, których możesz potrzebować:

  • Bez opłat miesięcznych
  • Nieograniczone wykorzystanie
  • Łatwa integracja z motywami i wtyczkami
  • Uwierzytelnianie według domen, kluczy i ról
David
źródło
1
Jest zamknięty dla nowych rejestracji ...
Cliff P