Inloggen
Aan de slag

Easy Digital Downloads Documentatie

Documentatie, Referentiemateriaal en Tutorials voor Easy Digital Downloads 

Softwarelicenties – Aangepaste ontwikkelaarsfuncties

Net als de kern van Easy Digital Downloads, bevat de Software Licensing-extensie een verscheidenheid aan actie- en filterhaken die u kunt gebruiken om het gedrag van de extensie aan te passen aan uw behoeften. Deze documentatie is geschreven voor gevorderde gebruikers die al bekend zijn met de WordPress Plugins API.

Licentie Creatie

Licentie Lengte

Standaard krijgt elke licentiesleutel een vervaldatum van één jaar. Deze vervaltermijn kan eenvoudig worden gewijzigd met behulp van het edd_sl_license_exp_length filter. Er zijn vier parameters die aan het filter worden doorgegeven:

  • $length (string) – De vervaltermijn voor deze licentie. “+1 jaar” is de standaard
  • $payment_id (int) – De betaal-ID van de aankoop waarmee deze licentie is gegenereerd
  • $download_id (int) – De download-/product-ID waaraan deze licentie is gekoppeld
  • $license_id (int) De ID van de nieuw aangemaakte licentie

Hier is een snel voorbeeld van hoe u de vervaltermijn zou kunnen wijzigen:

function pw_edd_sl_license_length( $length, $payment_id, $download_id, $license_id ) {
	return '+2 years'; // set length to two years from creation date
}
add_filter( 'edd_sl_license_exp_length', 'pw_edd_sl_license_length', 10, 4 );

Functies Uitvoeren Na Licentie Creatie

De edd_sl_store_license actie wordt uitgevoerd vlak nadat de licentiesleutel is aangemaakt en alle metagegevens eraan zijn gekoppeld. De actie neemt drie parameters:

  • $license_id (int) – De ID van de nieuw aangemaakte licentie
  • $download_id (int) – De ID van de download/het product waaraan deze licentie is gekoppeld
  • $payment_id (int) – De betaal-ID van de aankoop waarmee deze licentie is aangemaakt

Een voorbeeld van een functie die u aan deze actie zou kunnen koppelen, zou er als volgt uit kunnen zien:

function pw_edd_sl_custom_admin_alert( $license_id, $download_id, $payment_id ) {
	
	// send admin alert

	wp_mail( get_bloginfo( 'admin_email' ), 'License Created', 'A new license key with the ID of ' . $license_id . ' has been created.' );

}
add_action( 'edd_sl_store_license', 'pw_edd_sl_custom_function', 10, 3 );

Functies Uitvoeren Tijdens Licentie Activering

De edd_sl_activate_license actie wordt uitgevoerd vlak nadat een licentie is geactiveerd via de API.

do_action( 'edd_sl_activate_license', $license_id, $download_id );

Functies Uitvoeren Tijdens Licentie Controle

De edd_sl_check_license actie wordt uitgevoerd vlak nadat een licentie is gecontroleerd via de API.

do_action( 'edd_sl_activate_license', $license_id, $download_id );

Andere Filters

edd_sl_license_response – toegepast op de reactie die wordt verzonden bij het op afstand controleren van de versie van een download/product.

edd_sl_get_license_logs – toegepast wanneer de logboekvermeldingen voor een licentie worden opgehaald.

edd_sl_encoded_package_url – toegepast wanneer de gecodeerde pakket-URL voor downloadpakketten wordt opgehaald.

edd_sl_download_package_url – toegepast wanneer het downloadpakketbestand voor automatische updates wordt opgehaald.

edd_license_labels – toegepast op de labels van het berichttype bij het registreren van het edd_license berichttype.

Andere Acties

edd_sl_before_package_download – wordt uitgevoerd vlak voordat het downloadbestand voor automatische upgrades naar de browser wordt verzonden.

Software Licensing versie 3.5 en hoger bevat een EDD_SL_License klasse voor interactie met licentiesleutelrecords. De EDD_SL_License klasse stelt u in staat om te interageren met licentiesleutelgegevens, bestaande licentiesleutels bij te werken en nieuwe licentiesleutelrecords aan te maken.

Objecten Instantiëren

Om de prestaties te verbeteren bij het benaderen van een licentieobject, dient u de wrapper-methode te gebruiken, die gebruikmaakt van de objectcachinglaag van de WordPress-kern. U kunt zowel de licentie-ID als de licentiesleutel gebruiken om een object te instantiëren. Als er geen licentie bestaat voor de verstrekte informatie, retourneert de wrapper-methode `false`:

// Instantiate a license via ID
$license = edd_software_licensing()->get_license( 2326422 );

// Instantiate a license via the license key
$license_by_key = edd_software_licensing->get_license( '9e21e9a885212f96cccb4d6186541332', true );

// If you pass in an invalid license ID or key you will get 'false' as a response.
$invalid_license = edd_software_licensing()->get_license( -1 );

EDD_SL_License kan worden geïnstantieerd met een licentie-ID of zonder waarde bij het aanmaken van een nieuwe licentie. Hier zijn enkele voorbeelden:

$license = new EDD_SL_License( 2326422 );

Als u een nieuwe licentie wilt aanmaken:

$license = new EDD_SL_License();
$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() );

Hoewel u een licentie rechtstreeks kunt instantiëren met EDD_SL_License, heeft het de voorkeur om de wrapper-functie te gebruiken vanwege prestatieredenen.

De argumenten die nodig zijn om een nieuwe licentie aan te maken, worden hieronder behandeld.

Beschikbare Eigenschappen

De EDD_SL_License klasse bevat talrijke toegankelijke eigenschappen die informatie bevatten met betrekking tot het licentiesleutelrecord.

  • ID – Het ID-nummer van het licentierecord. Dit komt overeen met de ID van het WP_Post-object.
  • parent – De post-ID van de bovenliggende licentie, indien aanwezig.
  • name – De naam van de licentie. Dit is een samenvoeging van het e-mailadres van de klant en de naam van het product waaraan de licentiesleutel is gekoppeld.
  • key – De licentiesleutel zelf. Dit is doorgaans een tekenreeks van 32 tekens, maar kan alles zijn.
  • user_id – De ID van de WP_User waartoe de licentiesleutel behoort, indien aanwezig.
  • customer_id – De ID van de EDD_Customer waartoe de licentie behoort.
  • payment_id – De ID van de EDD_Payment waarvoor de licentie is aangemaakt.
  • payment_ids – Een array van betalings-ID's met betrekking tot de licentie. Inclusief vernieuwingen en upgrades.
  • cart_index – De numerieke index in de winkelwagenitems-array van het product waaraan de licentiesleutel is gekoppeld.
  • download – Een EDD_SL_Download-instantie van het downloadproduct waaraan de licentiesleutel is gekoppeld.
  • download_id – De post-ID van het downloadproduct waaraan de licentiesleutel is gekoppeld.
  • price_id – De ID van de prijsoptie van het downloadproduct dat is toegewezen aan de licentiesleutel.
  • activation_limit – Het aantal unieke URL's / machines waarop de licentiesleutel kan worden geactiveerd.
  • sites – Een array van de site-URL's (of machine-ID's) waarop de licentiesleutel is geactiveerd.
  • activation_count – Het aantal unieke URL's / machines waarop de licentiesleutel momenteel is geactiveerd.
  • expiration – De vervaldatum van de licentiesleutel.
  • is_lifetime – Boolean vlag die aangeeft of de licentie een levenslange (nooit verlopende) licentie is.
  • status – De huidige status van de licentie (actief, inactief, verlopen).
  • post_status – De post_status van het WP_Post-object voor de licentie.
  • child_licenses – Een array van child licentiesleutels, indien aanwezig.

Elke eigenschap kan direct worden benaderd, zoals dit:

// Access the price ID of the license
$price_id = $license->price_id;

Elke eigenschap kan ook worden bijgewerkt door de waarde van de eigenschap in te stellen, zoals hier:

// Set the license activation limit
$license->activation_limit = 100;

Wijzigingen aan objecteigenschappen worden onmiddellijk opgeslagen zonder dat er een save- of update-methode hoeft te worden aangeroepen.

Beschikbare Methoden

De EDD_SL_License klasse bevat publieke methoden voor het benaderen van de objecteigenschappen en verschillende andere hulpmethoden die kunnen worden gebruikt om toegang te krijgen tot en te interageren met de licentiegegevens.

$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() )

Met deze methode kunt u een nieuw licentierecord aanmaken voor een bestaand downloadproduct en betalingsrecord.

  • $download_id – Dit moet de ID zijn van een bestaand downloadproduct
  • $payment_id – Dit moet de ID zijn van een bestaand betalingsrecord dat een aankoop van $download_id bevatte
  • $price_id – Dit is een optionele prijs-ID voor $download_id als variabele prijzen zijn ingeschakeld
  • $cart_index – Dit is de optionele winkelwagen-itemindex die precies identificeert aan welk winkelwagen-item deze licentie correspondeert
  • $options – Een array van opties voor de licentie. Kan de volgende sleutels bevatten
    • parent_license_id
    • activation_limit
    • license_length
    • expiration_date
    • is_lifetime

De create()-methode kan worden gebruikt om een nieuwe licentiesleutel aan te maken, maar zal doorgaans niet handmatig worden gebruikt, behalve in zeer aangepaste implementaties.

$license->update( $data = array() )

Met deze methode kunt u metagegevens voor een licentie in bulk bijwerken. De $data-array moet een sleutel/waarde-paar van meta_key/meta_value zijn.

$license->renew()

Deze methode triggert een vernieuwing van een licentiesleutel, verlengt de vervaldatum met één periode en reset de licentiestatus naar inactief of actief.

$license->enable()

Deze methode zal een uitgeschakelde licentiesleutel opnieuw inschakelen.

$license->disable()

Deze methode zal een licentiesleutel uitschakelen.

$license->get_meta( $meta_key = ”, $single = true )

Deze methode haalt metagegevens voor een licentie op.

$license->update_meta($meta_key = ”, $value = ”, $old_value = ” )

Deze methode werkt metadata voor een licentie bij.

$license->get_renewal_url()

Deze methode haalt de verlengings-URL voor een licentie op.

$license->is_site_active( $url )

Deze methode bepaalt of de opgegeven URL op de licentie is geregistreerd.

$license->is_at_limit()

Deze methode controleert of de licentie de activeringslimiet heeft bereikt.

$license->license_length()

Deze methode retourneert de lengte van een enkele periode voor de licentie, zoals lifetime of +1 jaar.

$license->add_site( $url )

Deze methode kan worden gebruikt om een nieuwe site-URL op een licentie te registreren.

$license->remove_site( $url )

Deze methode kan worden gebruikt om een site-URL van een licentie te verwijderen.

$license->reset_activation_limit()

Deze methode kan worden gebruikt om de activeringslimiet op een licentie te resetten volgens de instellingen van het downloadproduct.

Was dit artikel nuttig?

Begin vandaag nog met verkopen!

Sluit u aan bij meer dan 50.000 slimme winkel eigenaren, en begin met de eenvoudigste manier om digitale producten te verkopen met WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]