L'extension Gestion des licences logicielles pour Easy Digital Downloads nécessite une certaine configuration et intégration – et il est possible que vous rencontriez des problèmes. Certains d'entre eux sont décrits ici avec des solutions potentielles.
Table des matières
FAQ
Comment contactez-vous les clients lorsqu'une mise à jour est disponible ?
Il est recommandé d'utiliser un service de marketing par e-mail, tel que Mailchimp ou ConvertKit. WordPress n'est pas recommandé pour l'envoi d'e-mails en masse, le contact des utilisateurs doit donc se faire en dehors d'EDD/WordPress.
Est-il possible de vendre des licences personnalisées / d'entreprise ?
Bien qu'il n'y ait pas de support intégré pour la vente de licences personnalisées ou d'entreprise pouvant être activées sur un plus grand nombre de sites, il existe des solutions de contournement pour y parvenir. L'option la plus simple consiste à facturer le client via une facture Stripe ou PayPal. Une fois payé, créez manuellement une commande et mettez à jour la limite d'activation de la licence au nombre d'activations que vous souhaitez que le client ait disponibles.
La gestion des licences logicielles fonctionne-t-elle avec Amazon S3 ?
Oui, elle est entièrement compatible sans problèmes et sans réglages spéciaux.
Les environnements locaux / de développement ont-ils un impact sur le nombre d'activations ?
Si vous choisissez de limiter le nombre d'activations de licence qu'un client peut avoir, il est toujours possible de lui permettre d'activer une licence sur son environnement de développement local sans impacter son nombre d'activations.
This allows your users to easily stay up to date in their testing and development environments while not getting free license activations.
Pour que cela fonctionne, deux choses doivent se produire :
1) Ignorer les URL d'hôtes locaux
Dans votre administration WordPress, sous
Téléchargements → Paramètres → Extensions → Gestion des licences logicielles recherchez une case à cocher indiquant Ignorer les URL d'hôtes locaux. Assurez-vous qu'elle est cochée.

2) Éduquer les clients
Consultez ce guide sur la façon d'ignorer les activations pour les sites de développement.
Comment créer des formats de clé de licence personnalisés ?
Les clés de licence EDD sont par défaut une somme md5 comme celle-ci :
e0c7ccc47b2613c82d1073a4214deecc
Si vous souhaitez quelque chose de différent, avec Gestion des licences logicielles, il suffit de créer une fonction pour générer des clés uniques et cohérentes et de s'accrocher à un filtre appelé edd_sl_generate_license_key.
Les formats de clé de licence peuvent vraiment être tout ce que vous souhaitez, tant qu'ils sont uniques et cohérents. Si vous voulez des clés dans ce format :
username_timestamp_licensekey sdavis2702_20151015120022_e0c7ccc47b2613c82d1073a4214deecc
Vous pouvez utiliser cette fonction :
// Example shown how to base the MD5 off of the user's email and purchase date
function pw_edd_license_md5_user_and_date( $key, $license_id, $download_id, $payment_id, $cart_index ) {
$name = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
$date = get_post_field( 'post_date', $payment_id );
$timestamp = strtotime($date);
$nice_date = date( 'Yndhis', $timestamp );
$license = md5( $license_id );
$key = $name->user_nicename . '_' . $nice_date . '_' . $license;
return $key;
}
add_filter( 'edd_sl_generate_license_key', 'pw_edd_license_md5_user_and_date', 10, 5 );
Une fonction plus simple utilise uniquement le nom d'utilisateur et la clé de licence :
// prepend user's username to license key
function sd_edd_license_username_md5( $key, $license_id, $download_id, $payment_id, $cart_index ) {
$name = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
$license = md5( $license_id );
$key = $name->user_nicename . '_' . $license;
return $key;
}
add_filter( 'edd_sl_generate_license_key', 'sd_edd_license_username_md5', 10, 5 );
La chose la plus importante à retenir de ce document est que vous pouvez utiliser n'importe quel code qui produit des chaînes uniques et cohérentes et utiliser ces chaînes comme clés de licence.
Afficher une liste des clés de licence d'un client
Le code suivant vous permettra de récupérer et d'afficher une liste des clés de licence pour un client spécifique.
Remarque : "$customer->id" doit être remplacé par l'ID client réel.
$licenses = edd_software_licensing()->licenses_db->get_licenses( array( 'number' => -1, 'customer_id' => $customer->id, 'orderby' => 'id', 'order' => 'ASC', ) );
Que se passe-t-il si le domaine de mon magasin tombe en panne ?
Nous vous encourageons à utiliser le SDK Easy Digital Downloads Software Licensing pour gérer les licences dans votre plugin ou thème WordPress. Le SDK n'enverra pas de requêtes API répétées à votre site s'il ne reçoit pas de réponse valide.
Si vous avez l'intention de changer de domaine ou de fermer un nom de domaine, il serait préférable de publier une mise à jour utilisant le nouveau domaine ou de supprimer complètement les appels à l'API.
Problèmes courants
Personnaliser le code d'exemple
Le code d'exemple fourni avec Software Licensing peut utiliser des préfixes de fonction tels que edd_ et edd_sl_. Ceux-ci doivent être modifiés pour correspondre à votre propre plugin, et la fonction rechercher-remplacer est un excellent moyen de le faire, mais vous devez faire attention à votre chaîne de recherche.
Il existe des fonctions avec des préfixes tels que edd_action_ qui ne doivent pas être modifiées. Assurez-vous de ne modifier que les préfixes de vos propres noms de fonction, et non les préfixes du cœur d'EDD.
Dépannage des problèmes de mise à jour
Si vous rencontrez des erreurs lors de la tentative de mise à jour de plugins et de thèmes depuis votre boutique Software Licensing, voici quelques éléments que vous pouvez vérifier, en fonction de l'erreur signalée.
Personnaliser votre mise à jour
Si vous utilisez la classe de mise à jour de plugin héritée fournie dans les versions précédentes de Software Licensing, vous utilisez probablement la classe EDD_SL_Plugin_Updater pour gérer les licences et les vérifications de mise à jour. Il y a un risque de « conflit » si un autre plugin inclut une version différente de la classe EDD_SL_Plugin_Updater que celle que vous emballez avec votre plugin. Vous pouvez renommer cette classe pour qu'elle soit unique à votre plugin, afin d'éviter les conflits. Par exemple, si le nom de mon plugin est « Mes Annonces Personnalisées », je pourrais renommer EDD_SL_Plugin_Updater en MCA_Plugin_Updater et modifier toutes les références à celle-ci. Alternativement, l'utilisation du SDK Easy Digital Downloads Software Licensing simplifiera grandement la gestion des mises à jour de plugins/thèmes.
Erreurs SSL
De nombreuses erreurs peuvent être causées par des problèmes de connectivité SSL ; les suivantes sont couramment observées avec Software Licensing.
SSL : le nom du sujet du certificat ne correspond pas
Cette erreur signifie que le certificat SSL installé sur votre site ne correspond pas à votre nom de domaine principal. Cela peut généralement se produire dans les environnements d'hébergement mutualisé et la solution la plus courante est de demander une adresse IP dédiée à votre fournisseur d'hébergement. Si votre fournisseur d'hébergement ne prend pas en charge les adresses IP dédiées, vous devrez alors travailler avec votre fournisseur d'hébergement pour configurer une chaîne SSL appropriée qui correspond à votre domaine principal, au lieu d'un certificat SSL wildcard partagé.
SSL23_GET_SERVER_HELLO: échec de négociation d'alerte sslv3
Cette erreur de handshake SSL se produit lorsque la version d'OpenSSL sur le serveur du site demandant la mise à jour est obsolète et ne prend pas en charge les protocoles SSL requis par la boutique fournissant la mise à jour. Il existe deux façons de résoudre ce problème. La solution idéale est de faire vérifier par le site demandant la mise à jour que son logiciel OpenSSL est à jour pour sa plateforme. OpenSSL est un logiciel serveur qui facilite la communication sur le protocole HTTPS. Si ce n'est pas une solution possible, vous pouvez travailler avec votre fournisseur d'hébergement ou votre administrateur système pour configurer votre serveur web afin qu'il accepte ces versions SSL obsolètes, mais ce n'est pas idéal car cela autorise des connexions moins sécurisées à votre serveur.
Erreur cURL 35 : erreur de connexion SSL
Cette erreur spécifique avec la gestion des licences logicielles pour la livraison des mises à jour est généralement observée lors de l'utilisation de l'option SSL Flexible de Cloudflare. Cette option crée un problème de chaîne avec certaines versions de cURL présentes sur le serveur client demandant la mise à jour. Il existe plusieurs façons de résoudre ce problème côté serveur (sans avoir à demander au client de mettre à jour sa version de cURL). La première consiste à passer à un SSL Cloudflare payant. Les certificats SSL des niveaux payants de Cloudflare ne posent généralement pas ce problème. L'autre solution consiste à acheter un certificat SSL auprès d'un tiers et à l'installer directement sur votre serveur.
Téléchargement échoué. SSL : aucun nom de sujet de certificat alternatif ne correspond au nom d'hôte cible
An error occurred while updating Resurrect: Download failed. SSL: certificate subject name '*.example.com' does not match target host name 'anotherexample.com'
Cela se produit lorsque le site du client a une ancienne version d'OpenSSL ou de cURL. Les deux sites ne peuvent alors pas communiquer de manière sécurisée et la mise à jour échoue.
La seule solution est que le site disposant de l'ancienne version du logiciel sur son serveur effectue une mise à jour vers les dernières versions.
Téléchargement échoué. Certificat SSL du pair ou clé distante SSH non valide
Si vos clients rencontrent cette erreur lors de la mise à jour de leurs produits, vous devrez contacter votre hébergeur web pour l'informer que votre certificat SSL est mal configuré :
Téléchargement échoué. Service indisponible
Vous verrez cette erreur lorsque vous tenterez de mettre à jour un plugin ou un thème sur un site qui héberge également ce plugin ou ce thème. En raison de la manière dont la gestion des licences logicielles s'intègre à l'API de mise à jour de WordPress, il n'est actuellement pas possible de mettre à jour vos propres thèmes ou plugins depuis le site qui les vend. Lorsque WordPress installe une mise à jour, il met temporairement votre site en mode maintenance, et pendant ce processus, votre site ne peut pas installer sa propre mise à jour. Pour mettre à jour un plugin ou un thème depuis un site qui le vend également, vous devrez installer manuellement la mise à jour.
Téléchargement échoué. Non autorisé / Trop de redirections
Cette erreur se produit lors de la mise à jour de votre plugin ou de votre thème vers une nouvelle version. Lors du téléchargement de votre nouvelle version, si vous ajoutez un nouveau fichier avec votre nouvelle version, puis supprimez la ligne du fichier précédent, au lieu de remplacer la version actuelle, il est possible que cette erreur se produise. Nous sommes actuellement conscients de ce bug et travaillons à sa résolution. En attendant, la solution simple consiste à cliquer une deuxième fois sur le bouton « Mettre à jour » pour réécrire les clés de fichier, ou à toujours remplacer le fichier actuel au lieu d'ajouter vos nouveaux fichiers sur une deuxième ligne de fichier.
Package de mise à jour indisponible
Lorsque cette erreur apparaît, cela signifie généralement :
- Il y a un problème avec l'activation de la licence sur le site du client. Il y a quelques points à vérifier si un client signale cette erreur. La première est que le domaine sur lequel il essaie de mettre à jour a été activé pour la licence. Vous pouvez le déterminer en allant dans Téléchargements → Licences. Vous pouvez ensuite rechercher la clé de licence que l'utilisateur essaie de mettre à jour et cliquer sur « Gérer les sites » pour vous assurer que le domaine sur lequel il se trouve est dans la liste. Si ce n'est pas le cas, vous pouvez soit l'ajouter vous-même depuis l'administration, soit demander au client de visiter sa page de gestion des licences et de l'activer lui-même.
- L'autre résultat est qu'une licence est expirée ou désactivée. Si tel est le cas, le client doit soit renouveler sa licence, soit un administrateur du site l'a désactivée manuellement.
Nom de dossier long et étrange après la mise à jour
Cela se produit lorsque le fichier .zip est créé de manière incorrecte. Lors de la création de l'archive .zip finale, il est important de zipper le dossier *et* son contenu plutôt que seulement le contenu du dossier.
La structure du fichier zip devrait ressembler à ceci :
nom_fichier.zip
– nom_produit/
— fichier ici
— autre fichier ici
En d'autres termes, les fichiers doivent être dans un dossier et non en haut du fichier zip. Recompressez votre fichier pour inclure le nom du dossier à l'intérieur et cela le corrigera.
Intégration CloudFlare
Si vous utilisez CloudFlare comme CDN, couche de mise en cache ou fournisseur SSL, nous vous recommandons de configurer CloudFlare pour ignorer le cache de toutes les URL contenant la chaîne suivante :
/edd-sl
Ceci est le point de terminaison de l'API pour vérifier le statut de la licence et livrer les packages de mise à jour. Si ces URL de point de terminaison sont mises en cache, cela peut causer des problèmes de livraison correcte des mises à jour à vos clients.
PCLZIP_ERR_BAD_FORMAT
Cette erreur n'est pas unique à la plateforme EDD Software Licensing, mais il existe quelques solutions que vous pourriez vérifier. La première est qu'il y a suffisamment d'espace disque pour que le fichier soit téléchargé et décompressé (supposez que vous aurez besoin de 2 fois la taille du fichier .zip pour traiter la mise à jour). Si votre fichier .zip fait 1 Mo, vous aurez besoin d'un peu plus de 2 Mo disponibles pour traiter correctement une mise à jour. Ces chiffres ne sont pas exactement 2x, mais c'est une bonne mesure pour commencer.
L'autre chose à vérifier est que le fichier .zip n'est pas corrompu. Vous pouvez tester cela en transférant le fichier .zip sur un autre ordinateur (joint dans un e-mail, ou via USB) et en essayant de le décompresser là aussi. S'il ne se décompresse pas sur un autre ordinateur, il y a probablement un problème avec la création du fichier .zip sur l'ordinateur d'origine.
Cette erreur peut également être causée par un plugin ou un script qui génère une erreur. Lorsque l'API de licence logicielle tente de créer le package zip, l'erreur est ajoutée au fichier zip, brisant sa structure. Normalement, cela signifie que votre site Web a WP_DEBUG défini sur TRUE dans le fichier wp-config.php. Bien que ce soit un bon moyen de vérifier les erreurs, il est préférable de le définir sur FALSE sur un site Web en direct. Alternativement, vous pouvez le laisser activé mais enregistrer les erreurs dans un fichier sur votre serveur, dans le fichier wp-contents/debug.log. Faites-le en ajoutant les lignes suivantes au fichier wp-config.php :
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_display', false );
