Software Licensing 3.8 ha introdotto la possibilità di impostare requisiti minimi della piattaforma per i prodotti. Se un cliente non soddisfa tali requisiti, non riceverà aggiornamenti automatici tramite l'API.
Prerequisiti dell'API
Affinché questa funzionalità funzioni correttamente, le versioni della piattaforma del cliente devono essere inviate insieme alla richiesta API che verifica la presenza di un aggiornamento.
Se stai utilizzando l'aggiornatore di plugin, ciò significa che il tuo prodotto deve includere la versione 1.9 o successiva del file della classe EDD_SL_Plugin_Updater.
Se stai utilizzando l'aggiornatore di temi, il tuo prodotto deve includere la versione 1.2 o successiva.
Se hai creato un'integrazione personalizzata, devi assicurarti di includere "php_version" e "wp_version" nella tua richiesta API. Consulta la nostra documentazione API per maggiori dettagli.
Se il sito di un cliente non include la versione/le versioni della piattaforma nella richiesta API, tali requisiti non verranno verificati e l'utente potrebbe comunque ricevere l'aggiornamento.
Configurazione dei requisiti per un prodotto
Per configurare i requisiti di un prodotto, modifica il prodotto tramite Download > Modifica. Nella barra laterale destra, cerca una metabox chiamata "Requisiti di download". Ha questo aspetto:

Inserisci semplicemente le tue versioni minime richieste e salva. Le versioni lasciate vuote non verranno verificate né richieste.
Aggiunta di requisiti personalizzati
Per impostazione predefinita, Software Licensing supporta le versioni PHP e WordPress, anche se le tue dipendenze personalizzate possono essere aggiunte con del codice personalizzato. Sono necessari due passaggi:
1. Aggiungi la tua dipendenza alla metabox
L'aggiunta di una nuova dipendenza viene eseguita con un semplice filtro come questo, che deve essere aggiunto al tuo sito:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['your-platform-id'] = 'Your Platform Display Name';
return $platforms;
} );
Sostituisci your-platform-id con una versione univoca e compatibile con slug del nome della tua dipendenza e sostituisci Your Platform Display Name con la versione visualizzabile. Ecco un esempio di aggiunta di Easy Digital Downloads come requisito:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['easy-digital-downloads'] = 'Easy Digital Downloads';
return $platforms;
} );
Una volta aggiunta, la tua piattaforma apparirà nella metabox:

2. Includi la versione della dipendenza nella tua richiesta API
Quando verifichi un nuovo aggiornamento tramite API (all'interno del tuo prodotto), devi inviare il numero di versione corrente della dipendenza nella richiesta API. Per farlo, devi semplicemente aggiungere un nuovo argomento: {your platform ID}_version.
Una richiesta di controllo versione normalmente appare così:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com
Ma con il nostro nuovo argomento, apparirebbe così:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com&easy-digital-downloads_version=1.0
Nota l'aggiunta di &easy-digital-downloads_version=1.0 alla fine.
Se stai utilizzando un aggiornatore personalizzato, puoi aggiungere il nuovo argomento direttamente ai parametri API inviati con la richiesta:
$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 );
Se stai utilizzando la nostra classe di aggiornamento plugin (versione 1.9 o successiva), puoi aggiungere questo argomento alla richiesta API utilizzando un filtro. Questo filtro deve far parte del tuo plugin, poiché viene eseguito sui siti dei tuoi clienti:
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 );
Assicurati di sostituire easy-digital-downloads con l'ID univoco che hai scelto per la tua dipendenza e defined( 'EDD_VERSION' ) ? EDD_VERSION : '' con il numero di versione corrente. Questo valore deve poter essere recuperato dinamicamente dal sito del cliente.
