Inhaltsverzeichnis
Genau wie der Easy Digital Downloads-Kern enthält die Software Licensing-Erweiterung eine Vielzahl von Aktions- und Filter-Hooks, mit denen Sie das Verhalten der Erweiterung an Ihre Bedürfnisse anpassen können. Diese Dokumentation richtet sich an fortgeschrittene Benutzer, die bereits mit der WordPress Plugins API vertraut sind.
Lizenz Erstellung
Lizenzdauer
Standardmäßig hat jeder Lizenzschlüssel ein Ablaufdatum von einem Jahr. Diese Ablaufdauer kann einfach mit dem edd_sl_license_exp_length Filter geändert werden. Vier Parameter werden an den Filter übergeben:
- $length (string) – Die Ablaufdauer für diese Lizenz. „+1 Jahr“ ist Standard
- $payment_id (int) – Die Zahlungs-ID des Kaufs, mit dem diese Lizenz generiert wurde
- $download_id (int) – Die Download-/Produkt-ID, mit der diese Lizenz verknüpft ist
- $license_id (int) Die ID der neu erstellten Lizenz
Hier ist ein kurzes Beispiel, wie Sie die Ablaufdauer ändern könnten:
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 );
Funktionen nach Lizenz Erstellung ausführen
Die Aktion edd_sl_store_license wird unmittelbar nach der Erstellung des Lizenzschlüssels und der Zuordnung aller Metadaten ausgelöst. Die Aktion nimmt drei Parameter entgegen:
- $license_id (int) – Die ID der neu erstellten Lizenz
- $download_id (int) – Die ID des Downloads/Produkts, mit dem diese Lizenz verknüpft ist
- $payment_id (int) – Die ID des Kaufs, mit dem diese Lizenz erstellt wurde
Eine Beispiel-Funktion, die Sie dieser Aktion zuordnen könnten, könnte etwa so aussehen:
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 );
Funktionen während der Lizenzaktivierung ausführen
Die Aktion edd_sl_activate_license läuft unmittelbar nach der Aktivierung einer Lizenz über die API.
do_action( 'edd_sl_activate_license', $license_id, $download_id );
Funktionen während der Lizenzprüfung ausführen
Die Aktion edd_sl_check_license läuft unmittelbar nach der Prüfung einer Lizenz über die API.
do_action( 'edd_sl_activate_license', $license_id, $download_id );
Andere Filter
edd_sl_license_response – angewendet auf die Antwort, die beim Remote-Check der Version eines Downloads/Produkts gesendet wird.
edd_sl_get_license_logs – angewendet, wenn die Protokolleinträge für eine Lizenz abgerufen werden.
edd_sl_encoded_package_url – angewendet, wenn die kodierte Paket-URL für Download-Pakete abgerufen wird.
edd_sl_download_package_url – angewendet, wenn die Download-Paketdatei für automatische Updates abgerufen wird.
edd_license_labels – angewendet auf die Post-Typ-Labels bei der Registrierung des edd_license Post-Typs.
Andere Aktionen
edd_sl_before_package_download – wird ausgeführt, kurz bevor die Download-Datei für automatische Upgrades an den Browser ausgeliefert wird.
Die Software Licensing Version 3.5 und neuer enthält eine EDD_SL_License-Klasse zur Interaktion mit Lizenzschlüssel-Datensätzen. Die EDD_SL_License-Klasse ermöglicht Ihnen die Interaktion mit Lizenzschlüsseldaten, das Aktualisieren vorhandener Lizenzschlüssel und das Erstellen neuer Lizenzschlüssel-Datensätze.
Objekte instanziieren
Um die Leistung beim Zugriff auf ein Lizenzobjekt zu verbessern, sollten Sie die Wrapper-Methode verwenden, die die Objekt-Caching-Schicht des WordPress-Kerns nutzt. Sie können entweder die Lizenz-ID oder den Lizenzschlüssel verwenden, um ein Objekt zu instanziieren. Wenn für die bereitgestellten Informationen keine Lizenz existiert, gibt die Wrapper-Methode `false` zurück:
// 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 kann mit einer Lizenz-ID oder ohne Wert beim Erstellen einer neuen Lizenz instanziiert werden. Hier sind einige Beispiele:
$license = new EDD_SL_License( 2326422 );
Wenn Sie eine neue Lizenz erstellen möchten:
$license = new EDD_SL_License(); $license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() );
Obwohl Sie eine Lizenz direkt mit EDD_SL_License instanziieren können, ist es aus Leistungsgründen vorzuziehen, die Wrapper-Funktion zu verwenden.
Die Argumente, die zum Erstellen einer neuen Lizenz erforderlich sind, werden unten behandelt.
Verfügbare Eigenschaften
Die EDD_SL_License-Klasse enthält zahlreiche zugängliche Eigenschaften, die Informationen im Zusammenhang mit dem Lizenzschlüssel-Datensatz enthalten.
- ID – Die ID-Nummer des Lizenzdatensatzes. Dies entspricht der ID des WP_Post-Objekts.
- parent – Die Post-ID der übergeordneten Lizenz, falls vorhanden.
- name – Der Name der Lizenz. Dies ist eine Verkettung der E-Mail-Adresse des Kunden und des Namens des Produkts, mit dem der Lizenzschlüssel verknüpft ist.
- key – Der Lizenzschlüssel selbst. Dies ist normalerweise eine Zeichenkette mit 32 Zeichen, kann aber alles sein.
- user_id – Die ID des WP_User, zu dem der Lizenzschlüssel gehört, falls vorhanden.
- customer_id – Die ID des EDD_Customer, zu dem die Lizenz gehört.
- payment_id – Die ID der EDD_Payment, für die die Lizenz erstellt wurde.
- payment_ids – Ein Array von Zahlungs-IDs, die sich auf die Lizenz beziehen. Beinhaltet Verlängerungen und Upgrades.
- cart_index – Der numerische Index im Warenkorb-Artikel-Array des Produkts, mit dem der Lizenzschlüssel verknüpft ist.
- download – Eine EDD_SL_Download-Instanz des Download-Produkts, mit dem der Lizenzschlüssel verknüpft ist.
- download_id – Die Post-ID des Download-Produkts, mit dem der Lizenzschlüssel verknüpft ist.
- price_id – Die ID der Preisoption des Download-Produkts, die dem Lizenzschlüssel zugewiesen ist.
- activation_limit – Die Anzahl der eindeutigen URLs / Maschinen, auf denen der Lizenzschlüssel aktiviert werden kann.
- sites – Ein Array der Website-URLs (oder Maschinen-IDs), auf denen der Lizenzschlüssel aktiviert ist.
- activation_count – Die Anzahl der eindeutigen URLs / Maschinen, auf denen der Lizenzschlüssel derzeit aktiviert ist.
- expiration – Das Ablaufdatum des Lizenzschlüssels.
- is_lifetime – Boolesches Flag, das angibt, ob die Lizenz eine lebenslange (niemals ablaufende) Lizenz ist.
- status – Der aktuelle Status der Lizenz (aktiv, inaktiv, abgelaufen).
- post_status – Der post_status des WP_Post-Objekts für die Lizenz.
- child_licenses – Ein Array von untergeordneten Lizenzschlüsseln, falls vorhanden.
Jede Eigenschaft kann direkt abgerufen werden, wie hier:
// Access the price ID of the license $price_id = $license->price_id;
Jede Eigenschaft kann auch durch Zuweisen eines Wertes zur Eigenschaft aktualisiert werden, wie hier:
// Set the license activation limit $license->activation_limit = 100;
Änderungen an den Objekteigenschaften werden sofort gespeichert, ohne dass eine save- oder update-Methode aufgerufen werden muss.
Verfügbare Methoden
Die EDD_SL_License-Klasse enthält öffentliche Methoden zum Abrufen der Objekteigenschaften und mehrere andere Hilfsmethoden, die zum Abrufen und Interagieren mit den Lizenzdaten verwendet werden können.
$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() )
Diese Methode ermöglicht es Ihnen, einen neuen Lizenzdatensatz für ein vorhandenes Downloadprodukt und eine vorhandene Zahlungsaufzeichnung zu erstellen.
- $download_id – Dies muss die ID eines vorhandenen Downloadprodukts sein
- $payment_id – Dies muss die ID einer vorhandenen Zahlungsaufzeichnung sein, die einen Kauf von $download_id enthielt
- $price_id – Dies ist eine optionale Preis-ID für $download_id, wenn variable Preise aktiviert sind
- $cart_index – Dies ist ein optionaler Warenkorbartikelindex, der genau angibt, welchem Warenkorbartikel diese Lizenz entspricht
- $options – An array of options for the license. Can include the following keys
- parent_license_id
- activation_limit
- license_length
- expiration_date
- is_lifetime
Die create()-Methode kann verwendet werden, um einen neuen Lizenzschlüssel zu erstellen, wird aber normalerweise nicht manuell verwendet, außer in sehr benutzerdefinierten Implementierungen.
$license->update( $data = array() )
Diese Methode ermöglicht es Ihnen, Metadaten für eine Lizenz in großen Mengen zu aktualisieren. Das $data-Array sollte ein Schlüssel/Wert-Paar aus meta_key/meta_value sein.
$license->renew()
Diese Methode löst eine Verlängerung eines Lizenzschlüssels aus, verlängert das Ablaufdatum um eine Periode und setzt den Lizenzstatus entweder auf inaktiv oder aktiv.
$license->enable()
Diese Methode reaktiviert einen deaktivierten Lizenzschlüssel.
$license->disable()
Diese Methode deaktiviert einen Lizenzschlüssel.
$license->get_meta( $meta_key = ”, $single = true )
Diese Methode ruft Metadaten für eine Lizenz ab.
$license->update_meta( $meta_key = ”, $value = ”, $old_value = ” )
Diese Methode aktualisiert Metadaten für eine Lizenz.
$license->get_renewal_url()
Diese Methode ruft die Verlängerungs-URL für eine Lizenz ab.
$license->is_site_active( $url )
Diese Methode bestimmt, ob die angegebene URL auf der Lizenz registriert ist.
$license->is_at_limit()
Diese Methode prüft, ob die Lizenz ihr Aktivierungslimit erreicht hat.
$license->license_length()
Diese Methode gibt die Länge eines einzelnen Zeitraums für die Lizenz zurück, z. B. lebenslang oder +1 Jahr.
$license->add_site( $url )
Diese Methode kann verwendet werden, um eine neue Website-URL für eine Lizenz zu registrieren.
$license->remove_site( $url )
Diese Methode kann verwendet werden, um eine Website-URL von einer Lizenz zu entfernen.
$license->reset_activation_limit()
Diese Methode kann verwendet werden, um das Aktivierungslimit einer Lizenz gemäß den Einstellungen des Download-Produkts zurückzusetzen.
