De Software Licensing Extension voor Easy Digital Downloads vereist enige configuratie en integratie – en het is mogelijk dat u enkele problemen ondervindt. Enkele daarvan worden hier met mogelijke oplossingen uiteengezet.
Veelgestelde vragen
Hoe neem je contact op met klanten als er een update beschikbaar is?
Het wordt aanbevolen om een e-mailmarketingdienst te gebruiken, zoals Mailchimp of ConvertKit. WordPress wordt niet aanbevolen voor het verzenden van massale e-mails, dus het contacteren van gebruikers moet extern aan EDD/WordPress gebeuren.
Is het mogelijk om aangepaste / enterprise licenties te verkopen?
Hoewel er geen ingebouwde ondersteuning is voor het verkopen van aangepaste of enterprise licenties die op een groter aantal sites kunnen worden geactiveerd, zijn er workarounds om dit te laten werken. De eenvoudigste optie is om de klant te factureren via een Stripe- of PayPal-factuur. Eenmaal betaald, maakt u handmatig een bestelling aan en werkt u het limiet voor licentieactivaties bij naar het aantal activaties dat u de klant wilt laten hebben.
Werkt Software Licensing met Amazon S3?
Ja, het is volledig compatibel zonder problemen en zonder speciale instellingen.
Hebben lokale / ontwikkelomgevingen invloed op het activatietotaal?
Als u ervoor kiest om het aantal licentieactivaties dat een klant mag hebben te beperken, is het nog steeds mogelijk om ze een licentie te laten activeren in hun lokale ontwikkelomgeving zonder hun activatietotaal te beïnvloeden.
Dit stelt uw gebruikers in staat om eenvoudig up-to-date te blijven in hun test- en ontwikkelomgevingen zonder gratis licentieactivaties te krijgen.
Om dit te laten werken, moeten twee dingen gebeuren:
1) Lokale host-URL's negeren
Zoek in uw WordPress-admin, onder
Downloads → Instellingen → Extensies → Software Licensing naar een selectievakje met de tekst Lokale host-URL's negeren. Zorg ervoor dat dit is aangevinkt.

2) Klanten informeren
Zie deze gids over hoe activaties voor ontwikkelingssites te negeren.
Hoe maak je aangepaste licentiesleutelformaten?
EDD-licentiesleutels zijn standaard een md5-som zoals deze:
e0c7ccc47b2613c82d1073a4214deecc
Als u iets anders wilt, is het met Software Licensing net zo eenvoudig als het maken van een functie om consistente unieke sleutels te maken en te haken op een filter genaamd edd_sl_generate_license_key.
Licentiesleutelformaten kunnen werkelijk alles zijn wat u wilt, zolang ze uniek en consistent zijn. Als u sleutels in dit formaat wilt:
username_timestamp_licensekey sdavis2702_20151015120022_e0c7ccc47b2613c82d1073a4214deecc
U kunt deze functie gebruiken:
// 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 );
Een eenvoudigere functie gebruikt alleen gebruikersnaam en licentiesleutel:
// 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 );
Het belangrijkste om uit dit document te halen is dat u elke code kunt gebruiken die consistente unieke strings produceert en die strings als licentiesleutels kunt gebruiken.
Een lijst met licentiesleutels van klanten weergeven
De volgende code stelt u in staat om een lijst met licentiesleutels voor een specifieke klant op te halen en weer te geven.
Opmerking: De "$customer->id" moet worden vervangen door de daadwerkelijke klant-ID.
$licenses = edd_software_licensing()->licenses_db->get_licenses( array( 'number' => -1, 'customer_id' => $customer->id, 'orderby' => 'id', 'order' => 'ASC', ) );
Wat gebeurt er als het domein van mijn winkel offline gaat?
We moedigen u aan om de EDD Software Licensing SDK te gebruiken om licenties in uw WordPress-plugin of -thema te beheren. De SDK zal geen herhaalde API-verzoeken naar uw site sturen als deze geen geldige reactie ontvangt.
Als u van domein wilt veranderen of een domeinnaam wilt stopzetten, kunt u het beste een update uitbrengen die het nieuwe domein gebruikt of de aanroepen naar de API volledig verwijdert.
Veelvoorkomende problemen
Voorbeeldcode aanpassen
De voorbeeldcode die bij Software Licensing wordt geleverd, kan functies met voorvoegsels zoals edd_ en edd_sl_ gebruiken. Deze moeten worden gewijzigd om overeen te komen met uw eigen plugin, en zoeken en vervangen is een uitstekende manier om dit te doen, maar u moet voorzichtig zijn met uw zoekreeks.
Er zijn functies met voorvoegsels zoals edd_action_ die niet mogen worden gewijzigd. Zorg ervoor dat u alleen uw eigen functienaamvoorvoegsels wijzigt en niet de EDD-kernvoorvoegsels.
Problemen met updates oplossen
Als u fouten ziet bij het proberen bij te werken van plugins en thema's uit uw Software Licensing-winkel, zijn hier een paar dingen die u kunt controleren, afhankelijk van de gerapporteerde fout.
Pas uw Updater aan
Als u de verouderde plugin-updaterklasse gebruikt die in eerdere versies van Software Licensing is geleverd, gebruikt u waarschijnlijk de klasse EDD_SL_Plugin_Updater om licenties en updatecontroles te beheren. Er is een risico op een "conflict" als een andere plugin een andere versie van de klasse EDD_SL_Plugin_Updater bevat dan u met uw plugin verpakt. U kunt deze klasse hernoemen naar iets unieks voor uw plugin, zodat conflicten worden vermeden. Als mijn plugin bijvoorbeeld "My Custom Ads" heet, zou ik EDD_SL_Plugin_Updater hernoemen naar MCA_Plugin_Updater en alle verwijzingen ernaar wijzigen. Als alternatief zal het gebruik van de EDD Software Licensing SDK aanzienlijk vereenvoudigen hoe u plugin/thema-updates kunt beheren.
SSL-fouten
Er zijn veel fouten die kunnen worden veroorzaakt door SSL-connectiviteitsproblemen; de volgende worden vaak gezien met Software Licensing.
SSL: de naam van het certificaatonderwerp komt niet overeen
Deze fout betekent dat het SSL-certificaat dat op uw site is geïnstalleerd, niet overeenkomt met uw primaire domeinnaam. Dit kan typisch gebeuren in gedeelde hostingomgevingen en de meest voorkomende oplossing is om een toegewijd IP-adres aan te vragen bij uw hostingprovider. Als uw hostingprovider geen toegewijde IP-adressen ondersteunt, moet u met uw hostingprovider samenwerken om een juiste SSL-keten te configureren die overeenkomt met uw primaire domein, in plaats van een gedeeld wildcard SSL-certificaat.
SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Deze SSL Handshake-fout treedt op wanneer de OpenSSL-versie op de server van de site die de update aanvraagt verouderd is en de SSL-protocollen die de winkel die de update levert vereist niet ondersteunt. Er zijn twee manieren om dit probleem op te lossen. De ideale oplossing is om de site die de update aanvraagt te laten verifiëren dat hun OpenSSL-software up-to-date is voor hun platform. OpenSSL is serversoftware die de communicatie via het HTTPS-protocol faciliteert. Als dit geen mogelijke oplossing is, kunt u met uw hostingprovider of serverbeheerder samenwerken om uw webserver te configureren om deze verouderde SSL-versies te accepteren, maar dit is niet ideaal omdat het minder veilige verbindingen met uw server toestaat.
cURL-fout 35: SSL-verbindingsfout
Deze specifieke fout bij Software Licensing die updates levert, wordt meestal gezien bij gebruik van Cloudflare's Flexible SSL-optie. Deze optie veroorzaakt een ketenprobleem met sommige cURL-versies die aanwezig zijn op de servers van de client die de update aanvraagt. Er zijn een paar manieren om dit aan de serverzijde op te lossen (zonder dat de client zijn cURL-versie hoeft bij te werken). De eerste is om te upgraden naar een betaalde Cloudflare SSL. De betaalde SSL-certificaten van Cloudflare vormen doorgaans geen probleem. De andere oplossing is om een SSL-certificaat van een derde partij aan te schaffen en dit rechtstreeks op uw server te installeren.
Download mislukt. SSL: geen alternatieve certificaatonderwerpsnaam komt overeen met doelhostnaam
An error occurred while updating Resurrect: Download failed. SSL: certificate subject name '*.example.com' does not match target host name 'anotherexample.com'
Dit gebeurt wanneer de site van de klant een oude versie van OpenSSL of cURL heeft. De twee sites kunnen dan niet veilig communiceren en de update mislukt.
De enige oplossing is dat de site met de oudere softwareversie op hun server bijwerkt naar de nieuwste versies.
Download mislukt. SSL-peercertificaat of SSH-sleutel op afstand was niet OK
Als uw klanten deze fout zien bij het updaten van hun producten, moet u contact opnemen met uw webhost om hen te laten weten dat uw SSL-certificaat onjuist is geconfigureerd:
Download mislukt. Service niet beschikbaar
U ziet deze fout wanneer u probeert een plugin of thema bij te werken op een site die deze plugin of dit thema ook host. Vanwege de manier waarop Software Licensing integreert met de WordPress Update API, is het momenteel niet mogelijk om uw eigen thema's of plugins bij te werken vanaf de site die ze verkoopt. Wanneer WordPress een update installeert, zet het uw site tijdelijk in onderhoudsmodus, en tijdens dat proces kan uw site zijn eigen update niet installeren. Om een plugin of thema bij te werken vanaf een site die het ook verkoopt, moet u de update handmatig installeren.
Download mislukt. Ongeautoriseerd / Te veel omleidingen
Deze fout treedt op bij het bijwerken van uw plugin of thema naar een nieuwe versie. Bij het uploaden van uw nieuwe versie, als u een nieuw bestand toevoegt met uw nieuwe versie en vervolgens de vorige bestandsrij verwijdert, in plaats van de huidige versie te vervangen, is het mogelijk dat deze fout optreedt. Momenteel zijn we ons bewust van deze bug en werken we eraan om deze op te lossen, echter de eenvoudige oplossing ondertussen is om de 'Update'-knop een 2e keer te klikken, om de bestands-sleutels opnieuw te schrijven, of altijd het huidige bestand te vervangen in plaats van uw nieuwe bestanden op een tweede bestandsrij toe te voegen.
Updatepakket niet beschikbaar
Wanneer deze fout optreedt, betekent dit doorgaans:
- Er is een probleem met de licentie-activering op de site van de klant. Er zijn een paar dingen te controleren als een klant deze fout meldt. Het eerste is dat het domein dat ze proberen bij te werken, is geactiveerd voor de licentie. U kunt dit bepalen door naar Downloads → Licenties te gaan. U kunt vervolgens zoeken naar de licentiesleutel die de gebruiker probeert bij te werken en op 'Sites beheren' klikken om er zeker van te zijn dat het domein waarop ze zich bevinden in de lijst staat. Zo niet, dan kunt u het zelf vanuit de admin toevoegen, of de klant hun licentiebeheerpagina laten bezoeken en het zelf laten activeren.
- Het andere resultaat is dat een licentie verlopen of uitgeschakeld is. Als dit het geval is, moet de klant hun licentie vernieuwen, of een sitebeheerder heeft deze handmatig uitgeschakeld.
Vreemde, lange mapnaam na updater
Dit gebeurt wanneer het .zip-bestand onjuist is aangemaakt. Bij het maken van het uiteindelijke .zip-archief is het belangrijk om de map en de inhoud ervan te zippen in plaats van alleen de inhoud van de map.
De zip-bestandsstructuur zou er ongeveer zo uit moeten zien:
bestandsnaam.zip
– product-naam/
— bestand hier
— ander bestand hier
Met andere woorden, de bestanden moeten zich in een map bevinden en niet bovenaan het zip-bestand. Herverpak uw bestand om de mapnaam erin op te nemen en dat zal het oplossen.
CloudFlare Integratie
Als u CloudFlare gebruikt als CDN, Caching Layer of SSL-provider, raden we u aan CloudFlare te configureren om de cache te omzeilen voor alle URL's die de volgende tekenreeks bevatten:
/edd-sl
Dit is het API-eindpunt voor het controleren van de licentiestatus en het leveren van updatepakketten. Als deze eindpunt-URL's worden gecached, kan dit problemen veroorzaken bij het correct leveren van updates aan uw klanten.
PCLZIP_ERR_BAD_FORMAT
Deze fout is niet uniek voor het EDD Software Licensing-platform, maar er zijn een paar oplossingen die u kunt controleren. De eerste is dat er voldoende schijfruimte is om het bestand te downloaden en uit te pakken (ga ervan uit dat u 2x de grootte van het .zip-bestand nodig heeft om de update te verwerken). Als uw .zip-bestand 1 MB is, heeft u iets meer dan 2 MB nodig om een update correct te verwerken. Deze getallen zijn niet precies 2x, maar het is een goede maatstaf om mee te beginnen.
Het andere dat u moet controleren, is dat het .zip-bestand niet beschadigd is. U kunt dit testen door het .zip-bestand over te zetten naar een andere computer (bijgevoegd in een e-mail of via USB) en te proberen het daar ook uit te pakken. Als het niet uitpakt op een andere computer, is er waarschijnlijk een probleem met het aanmaken van het .zip-bestand op de oorspronkelijke computer.
Deze fout kan ook worden veroorzaakt door een plugin of een script dat een fout genereert. Wanneer de Software Licensing API probeert het zip-pakket te maken, wordt de fout toegevoegd aan het zip-bestand, waardoor de structuur wordt verbroken. Normaal gesproken betekent dit dat uw website WP_DEBUG ingesteld heeft op TRUE in het wp-config.php-bestand. Hoewel het een goede manier is om op fouten te controleren, is het het beste om het ingesteld te hebben op FALSE op een live website. U kunt het ook ingeschakeld laten, maar de fouten loggen naar een bestand op uw server, in het bestand wp-contents/debug.log. Doe dit door de volgende regels toe te voegen aan het wp-config.php-bestand:
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_display', false );
