Licences de logiciels 3.8 a introduit la possibilité de définir des exigences minimales de plateforme pour les produits. Si un client ne répond pas à ces exigences, il ne recevra pas de mises à jour automatiques via l’API.
Prérequis de l’API
Pour que cette fonctionnalité fonctionne correctement, les versions de plateforme du client doivent être envoyées avec la requête API qui vérifie les mises à jour.
Si vous utilisez notre programme de mise à jour de plugins, cela signifie que votre produit doit inclure la version 1.9 ou supérieure du fichier de classe EDD_SL_Plugin_Updater.
Si vous utilisez notre programme de mise à jour de thèmes, votre produit doit inclure la version 1.2 ou supérieure.
Si vous avez créé une intégration personnalisée, vous devez vous assurer d’inclure « php_version » et « wp_version » dans votre requête API. Consultez notre documentation API pour plus de détails.
Si le site d’un client n’inclut pas la ou les versions de plateforme dans la requête API, ces exigences ne seront pas vérifiées et l’utilisateur pourra quand même recevoir la mise à jour.
Configuration des exigences pour un produit
Pour configurer les exigences d’un produit, modifiez le produit via Téléchargements > Modifier. Dans la barre latérale droite, recherchez une boîte de métadonnées appelée « Exigences de téléchargement ». Elle ressemble à ceci :

Entrez simplement vos versions minimales requises et enregistrez. Toutes les versions laissées vides ne seront pas vérifiées ni requises.
Ajout d’exigences personnalisées
Par défaut, Licences de logiciels prend en charge les versions PHP et WordPress, bien que vos propres dépendances puissent être ajoutées avec du code personnalisé. Deux étapes sont nécessaires :
1. Ajoutez votre dépendance à la boîte de métadonnées
L’ajout d’une nouvelle dépendance se fait avec un simple filtre comme celui-ci, qui doit être ajouté à votre propre site :
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['your-platform-id'] = 'Your Platform Display Name';
return $platforms;
} );
Remplacez your-platform-id par une version unique et conviviale de votre nom de dépendance, et remplacez Your Platform Display Name par la version conviviale à afficher. Voici un exemple d’ajout d’Easy Digital Downloads comme exigence :
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['easy-digital-downloads'] = 'Easy Digital Downloads';
return $platforms;
} );
Une fois ajoutée, votre plateforme apparaîtra dans la boîte de métadonnées :

2. Incluez la version de la dépendance dans votre requête API
Lors de la vérification d’une nouvelle mise à jour via l’API (dans votre produit), vous devez envoyer le numéro de version actuel de la dépendance dans la requête API. Pour ce faire, il vous suffit d’ajouter un nouvel argument : {your platform ID}_version.
Une requête de vérification de version ressemble normalement à ceci :
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com
Mais avec notre nouvel argument, elle ressemblerait à ceci :
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com&easy-digital-downloads_version=1.0
Notez l’ajout de &easy-digital-downloads_version=1.0 à la fin.
Si vous utilisez un programme de mise à jour personnalisé, vous pouvez ajouter le nouvel argument directement aux paramètres de l’API envoyés avec la requête :
$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 );
Si vous utilisez notre classe de mise à jour de plugin (version 1.9 ou supérieure), vous pouvez ajouter cet argument à la requête API en utilisant un filtre. Ce filtre doit faire partie de votre plugin, car il s’exécute sur les sites de vos clients :
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 );
Assurez-vous de remplacer easy-digital-downloads par l’identifiant unique que vous avez choisi pour votre dépendance, et defined( 'EDD_VERSION' ) ? EDD_VERSION : '' par le numéro de version actuel. Cette valeur doit pouvoir être récupérée dynamiquement par le site client.
