Podczas korzystania z Licencjonowania oprogramowania, istnieje kilka przyczyn, dla których aktualizacje wtyczek mogą się nie pojawiać.
1. Brak synchronizacji numerów wersji.
Istnieją trzy miejsca, w których musisz zaktualizować swoje oprogramowanie podczas wydawania nowej wersji.
A. Pole meta Licencjonowanie na stronie Twojego pobierania

B. W pliku aktualizatora. Motywy mają plik o nazwie theme-updater.php, a wtyczki mają kod bezpośrednio w głównym pliku wtyczki.
Motywy mają coś takiego:
$config = array( 'remote_api_url' => 'https://easydigitaldownloads.com', // Site where EDD is hosted 'item_name' => 'Theme Name', // Name of theme 'item_id' => 123, // ID of download 'theme_slug' => 'theme-slug', // Theme slug 'version' => '1.4', // The current version of this theme 'author' => 'Easy Digital Downloads', // The author of this theme 'download_id' => '', // Optional, used for generating a license renewal link 'renew_url' => '' // Optional, allows for a custom license renewal link ),
Zwróć uwagę na „version” w tym miejscu. Musi ono odpowiadać temu, co masz w polu Meta powyżej.
Wtyczki mają coś takiego:
$edd_updater = new EDD_SL_Plugin_Updater( EDD_SAMPLE_STORE_URL, __FILE__, array(
'version' => '1.4', // current version number
'license' => $license_key, // license key (used get_option above to retrieve from DB)
'item_id' => EDD_SAMPLE_ITEM_ID, // download ID on your site
'author' => 'EDD Team' // author of this plugin
)
);
Zwróć również uwagę na numer wersji w tym kodzie.
C. Nagłówek wtyczki.
Podobnie jak każda inna wtyczka, w nagłówku znajduje się numer wersji. Przykład:
<!--?php
/**
* Plugin Name: Easy Digital Downloads
* Plugin URI: https://easydigitaldownloads.com
* Description: Serve Digital Downloads Through WordPress
* Author: EDD Teak
* Author URI: https://easydigitaldownloads.com
* Version: 1.4
Ważne: Wszystkie te trzy numery wersji muszą być zgodne.
2. Niezgodność nazwy pobierania i brak określonego elementu item_id
Aby aktualizator licencji otrzymywał aktualizacje z właściwego pobierania na Twojej stronie, klucze item_name i item_id są zawarte w powyższej tablicy. Nie jest konieczne uwzględnianie obu. Jeśli oba są obecne, wartość item_id zostanie użyta, a item_name zostanie zignorowane.
Jeśli używany jest tylko item_id (zalecane), wartość musi dokładnie odpowiadać rzeczywistemu identyfikatorowi pobierania na Twojej stronie internetowej.
3. Używanie wtyczki zabezpieczającej lub reguł htaccess blokujących żądania ?edd_action=get_version/activate_license
Niektóre wtyczki i reguły .htaccess blokują zmienne GET, takie jak powyższa, ponieważ są one często używane przez atakujących. Poszukaj tych ustawień i upewnij się, że są wyłączone.
4. Dlaczego to nie działa w mojej konfiguracji multisite?
Wtyczka musi być aktywowana albo przez sieć multisite, albo przez jedną z poszczególnych witryn. Niestandardowy aktualizator działa tylko wtedy, gdy wtyczka jest aktywowana; w przeciwnym razie kod nie może zostać wykonany.
Administrator sieci zobaczy aktualizacje tylko przez Panel Administratora Sieci, jeśli wtyczka jest aktywowana w sieci LUB wtyczka jest aktywowana na głównej witrynie. Uwaga, główna witryna to witryna WordPress w sieci oznaczona jako Główna:
Uwaga: Administrator sieci nie zobaczy powiadomienia o aktualizacji z Panelu Administratora Sieci, jeśli wtyczka jest aktywna w którejkolwiek z pozostałych witryn w sieci. Ale administrator sieci może zobaczyć i zaktualizować wtyczkę za pośrednictwem listy wtyczek witryny, na której wtyczka jest aktywowana.
Tylko administratorzy sieci zobaczą powiadomienie o aktualizacji, ponieważ jest to jedyny poziom użytkownika, który może aktualizować wtyczki w multisite.
Oznacza to, że aby aktualizacje pojawiły się w Panelu Administratora Sieci, bez aktywowania wtyczki w sieci, musi się wydarzyć następujące rzeczy:
- Aktywuj wtyczkę na głównej witrynie
- Aktywuj klucz licencyjny na głównej witrynie
- Odwiedź stronę Wtyczki (lub Administrator Sieci → Strona główna → Aktualizacje). Uwaga, chociaż administrator witryny odwiedzający ekran Wtyczki wywoła sprawdzenie aktualizacji, powiadomienie pojawi się tylko administratorom sieci.
- To buforuje dostępne aktualizacje wtyczek w sieciowym przejściowym czasie.
- Jako administrator sieci możesz przejść do Sieć → Wtyczki i zobaczyć aktualizację.

Dlaczego niektóre wtyczki wyświetlają powiadomienie o aktualizacji, mimo że nie są aktywne w żadnej z witryn multisite?
Wtyczki z wp.org będą wyświetlać dostępność aktualizacji, nawet jeśli nie są aktywne.
5. Nieprawidłowy parametr __FILE__ podany do klasy aktualizatora
Jeśli rozszerzasz klasę aktualizatora z pliku innego niż główny plik wtyczki, dodaj define('YOUR_PREFIX_PLUGIN_FILE', __FILE__ ); do głównego pliku wtyczki, a następnie zamiast wywoływać __FILE__ jako drugi parametr nowej klasy EDD_SL_Plugin_Updater, wywołaj tam YOUR_PREFIX_PLUGIN_FILE.

