Aktualizacje odczarujmy i poczarujmy

Krzysiek Dróżdż
krzysiek@wpmagus.pl
WPmagus.pl

Kim jestem?

Krzysiek Dróżdż

Wszyscy to znamy

Ale skąd to się bierze?

WordPress odpytuje o to serwer.

Przy użyciu crona.

Co 12 godzin.

  • wp_version_check
  • wp_update_plugins
  • wp_update_themes

A jak odpytuje?

Funkcjami z wp-includes/update.php

  • wp_version_check
    http://api.wordpress.org/core/version-check/1.7/
  • wp_update_plugins
    http://api.wordpress.org/plugins/update-check/1.1/
  • wp_update_themes
    http://api.wordpress.org/themes/update-check/1.1/

Uwaga: Możemy użyć filtrów: http_request_args i http_response i akcji http_api_debug

Co z odpowiedzią?

Zapisuje w transientach, żeby móc potem spokojnie wyświetlać

  • update_core
  • update_plugins
  • update_themes

Uwaga: Czyli możemy dobrać się do tych danych przy użyciu filtrów pre_set_transient_{$transient} i transient_{$transient}

Jak to wygląda w kodzie?

A jak wyglądają requesty?

A skoro już podsłuchujemy...

Skąd biorą się rozszerzone opisy wtyczek?

A gdy klikniemy Aktualizuj...

Tworzony jest obiekt jednej z poniższych klas (w zależności od kontekstu):

Uwaga: Przydatne hooki: pre_auto_update, upgrader_pre_download, upgrader_process_complete i cała masa innych...

A jak wykorzystać tę wiedzę?

Możemy np.:

  • Ukryć aktualizacje
  • Wyłączyć możliwość wykonania aktualizacji
  • Obsłużyć aktualizacje dla własnych wtyczek/motywów
  • Logować lub dodać sobie powiadomienia o pojawieniu się lub wykonaniu aktualizacji

Inne pomysły?

A czy są pułapki?

Jak zawsze... Konflikt nazw.

Dzięki za uwagę!

Krzysiek Dróżdż
krzysiek@wpmagus.pl
WPmagus.pl