Licențierea Software-ului 3.8 a introdus posibilitatea de a seta cerințe minime de platformă pentru produse. Dacă un client nu îndeplinește aceste cerințe, nu va primi actualizări automate prin API.
Cerințe preliminare API
Pentru ca această funcționalitate să funcționeze corect, versiunile platformei clientului trebuie trimise împreună cu cererea API care verifică o actualizare.
Dacă utilizați actualizatorul nostru de pluginuri, înseamnă că produsul dvs. trebuie să includă versiunea 1.9 sau mai mare a fișierului clasei EDD_SL_Plugin_Updater.
Dacă utilizați actualizatorul nostru de teme, produsul dvs. trebuie să includă versiunea 1.2 sau mai mare.
Dacă ați creat o integrare personalizată, trebuie să vă asigurați că includeți „php_version” și „wp_version” în cererea dvs. API. Consultați documentația API pentru mai multe detalii.
Dacă site-ul unui client nu include versiunea (versiunile) platformei în cererea API, atunci acele cerințe nu vor fi verificate și utilizatorul ar putea primi totuși actualizarea.
Configurarea cerințelor pentru un produs
Pentru a configura cerințele unui produs, editați produsul prin Descărcări > Editare. În bara laterală din dreapta, căutați o casetă numită „Cerințe de descărcare”. Arată astfel:

Pur și simplu introduceți versiunile minime necesare și salvați. Orice versiuni lăsate goale nu vor fi verificate sau necesare.
Adăugarea de cerințe personalizate
În mod implicit, Licențierea Software-ului suportă versiunile PHP și WordPress, deși propriile dvs. dependențe pot fi adăugate cu un cod personalizat. Sunt necesari doi pași:
1. Adăugați dependența dvs. în caseta
Adăugarea unei noi dependențe se face cu un filtru simplu de genul acesta, care trebuie adăugat pe propriul dvs. site:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['your-platform-id'] = 'Your Platform Display Name';
return $platforms;
} );
Înlocuiți your-platform-id cu o versiune unică, prietenoasă cu slug-ul, a numelui dependenței dvs. și înlocuiți Your Platform Display Name cu versiunea prietenoasă pentru afișare. Iată un exemplu de adăugare a Easy Digital Downloads ca cerință:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['easy-digital-downloads'] = 'Easy Digital Downloads';
return $platforms;
} );
Odată adăugată, platforma dvs. va apărea în casetă:

2. Includeți versiunea dependenței în cererea dvs. API
Când verificați o nouă actualizare prin API (în produsul dvs.), trebuie să trimiteți numărul versiunii curente a dependenței în cererea API. Pentru a face acest lucru, trebuie pur și simplu să adăugați un nou argument: {your platform ID}_version.
O cerere de verificare a versiunii arată în mod normal astfel:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com
Dar cu noul nostru argument, ar arăta astfel:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com&easy-digital-downloads_version=1.0
Observați adăugarea lui &easy-digital-downloads_version=1.0 la sfârșit.
Dacă utilizați un actualizator personalizat, puteți adăuga noul argument direct la parametrii API trimiși cu cererea:
$api_params = array( 'edd_action' => 'get_version', 'license' => ! empty( $data['license'] ) ? $data['license'] : '', 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, 'version' => $this->version, 'slug' => $data['slug'], 'author' => $data['author'], 'url' => home_url(), 'beta' => ! empty( $data['beta'] ), 'php_version' => phpversion(), 'wp_version' => get_bloginfo( 'version' ), 'easy-digital-downloads_version' => defined( 'EDD_VERSION' ) ? EDD_VERSION : '', // current version number );
Dacă utilizați clasa noastră de actualizare a pluginurilor (versiunea 1.9 sau mai mare), atunci puteți adăuga acest argument la cererea API folosind un filtru. Acest filtru trebuie să facă parte din pluginul dvs., deoarece rulează pe site-urile clienților dvs.:
add_filter( 'edd_sl_plugin_updater_api_params', function( $api_params, $api_data, $plugin_file ) {
/*
* Make sure $plugin_file matches your plugin's file path. You should have a constant for this
* or can use __FILE__ if this code goes in your plugin's main file.
*/
if ( __FILE__ === $plugin_file ) {
// Dynamically retrieve the current version number.
$api_params['easy-digital-downloads_version'] = defined( 'EDD_VERSION' ) ? EDD_VERSION : '';
}
return $api_params;
}, 10, 3 );
Asigurați-vă că înlocuiți easy-digital-downloads cu ID-ul unic pe care l-ați ales pentru dependența dvs. și defined( 'EDD_VERSION' ) ? EDD_VERSION : '' cu numărul curent al versiunii. Această valoare trebuie să poată fi preluată dinamic de pe site-ul clientului.
