Anmelden
Loslegen

Easy Digital Downloads Dokumentation

Dokumentation, Referenzmaterialien und Tutorials für Easy Digital Downloads 

Software Licensing – Aktivieren, Überprüfen und Deaktivieren von Lizenzschlüsseln in WordPress-Plugins

Wichtiger Hinweis

Diese Dokumentation wird nicht benötigt, wenn der Software Licensing API Updater verwendet wird. Beziehen Sie sich nur auf dieses Dokument, wenn Sie den Updater nicht verwenden oder wenn es als Referenz dient:
Sehen Sie sich unsere Dokumentation an, wie automatische Upgrades für Ihre WordPress Plugins integriert werden.
Sehen Sie sich unsere Dokumentation an, wie automatische Upgrades für Ihre WordPress-Themes integriert werden.

Inhaltsverzeichnis

Aktivieren

Mit Software Licensing muss ein Lizenzschlüssel aktiviert sein, damit er vollständig genutzt werden kann. Dies kann auf eine von zwei Arten geschehen:

  1. Ein Website-Administrator kann auf der Seite Downloads → Lizenzen manuell auf den Link „Aktivieren“ für die Lizenz klicken
  2. Der Käufer kann die Lizenz remote über ein System in Ihrem Plugin/Theme/Software aktivieren, das die API zur Auslösung der Aktivierung verwendet

Hinweis: Das Beispiel-Plugin und die in diesem Dokument gezeigte Implementierung sind reine Beispiele. Die besten Implementierungen von Software Licensing nehmen diese Beispiele und integrieren sie nahtlos in die vorhandene Einstellungsseite Ihres Plugins.

In dieser Dokumentation zeigen wir Ihnen, wie Sie eine Lizenz remote über ein System aktivieren, das zu Ihrem WordPress-Plugin hinzugefügt wurde. Der Beispielcode, den wir in diesem Beispiel zeigen, ist exakt derselbe Code, der im Beispiel-Plugin und den Themes enthalten ist, die nach dem Kauf der Erweiterung heruntergeladen werden können.

Es gibt zwei Hauptkomponenten für die Remote-Aktivierung einer Lizenz:

  1. Speichern des Lizenzschlüssels in den Daten (einer Theme- oder Plugin-Option)
  2. Senden des gespeicherten Lizenzschlüssels über die API an die Store-Website zur Verifizierung und Aktivierung

Wenn eine Lizenz remote aktiviert wird, wird der Status der Lizenz im Dashboard Ihrer Website von „inaktiv“ (dem Standardzustand) auf „aktiv“ aktualisiert.

Betrachten wir zunächst die Erstellung einer einfachen Optionsseite zum Speichern unserer Lizenz.

Dieser Code richtet einen Untermenüpunkt im Menü „Plugins“ namens „Plugin-Lizenz“ ein. Wir verwenden in diesem Beispiel eine Plugin-Seite, aber der Code ist für Themes identisch.

Es gibt zwei Zeilen am Anfang des Codes:

Die erste ist die Lizenz selbst und die zweite ist der Status der Lizenz. Sobald wir unsere Lizenz aktiviert haben, ändern wir den Status (auf unserer lokalen Website) in „aktiv“. Dies geschieht, damit wir eine Schaltfläche „Lizenz aktivieren“ anzeigen können, wenn die Lizenz noch nicht aktiviert wurde, und die Schaltfläche ausblenden, wenn sie aktiviert wurde. Sehen Sie sich den Screenshot unten an:

Die Idee ist, dass wir zuerst einen Lizenzschlüssel eingeben und auf „Änderungen speichern“ klicken, wodurch der Lizenzschlüssel in unseren Plugin/Theme-Optionen gespeichert wird. Sobald die Option gespeichert ist, klicken wir auf die Schaltfläche „Lizenz aktivieren“, um den API-Aufruf auszulösen.

Der Aktivieren-Button ist nur ein einfaches Eingabefeld mit dem Typ „submit“ und einem Namensattribut, das sich von unserem Speicher-Button unterscheidet. Die Namen müssen unterschiedlich sein, damit wir wissen, wann der Aktivieren-Lizenz-Button geklickt wurde.

Um die Lizenz zu aktivieren, müssen wir nur „beobachten“, wann der Aktivieren-Button geklickt wird. Dies geschieht durch das Einrichten einer Funktion, die an den „admin_init“-Hook gebunden ist, wie folgt:

Wenn nach dem Klicken auf den „Lizenz aktivieren“-Button alles in Ordnung ist, wird der Aktivieren-Button durch das Wort „aktiv“ ersetzt und der Lizenzstatus spiegelt den neu aktivierten Zustand im Dashboard Ihres EDD-Stores wider. Wenn beim Aktivieren des Lizenzschlüssels ein Fehler auftritt, wird die Seite neu geladen und ein Fehler- und Nachrichtenparameter wird zur URL hinzugefügt. Wir können dann den admin_notices-Hook (oder eine andere geeignete Methode) verwenden, um den Fehler dem Kunden anzuzeigen:

Wenn ein Kunde beispielsweise einen ungültigen Lizenzschlüssel eingibt, wird eine Fehlermeldung angezeigt:

Überprüfen

Mit Software Licensing können Sie jederzeit einfach überprüfen, ob ein Lizenzschlüssel gültig ist. Möglicherweise möchten Sie dies tun, um bestimmte Funktionalitäten im Theme oder Plugin nur Benutzern mit einem gültigen Lizenzschlüssel vorzubehalten.

Die Überprüfung der Gültigkeit eines Lizenzschlüssels ist recht einfach; alles, was wir tun müssen, ist eine Remote-Anfrage an unsere Store-Website mit einigen spezifischen Parametern durchzuführen. Sehen Sie sich die folgende Funktion an:

function edd_sample_theme_check_license() {
$store_url = 'https://yoursite.com';
$item_name = 'Your Item Name';
$license = '834bbb2d27c02eb1ac11f4ce6ffa20bb';
$api_params = array(
'edd_action' => 'check_license',
'license' => $license,
'item_name' => urlencode( $item_name ),
'url' => home_url(),
'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',

);
$response = wp_remote_post( $store_url, array( 'body' => $api_params, 'timeout' => 15, 'sslverify' => true ) );
if ( is_wp_error( $response ) ) {
return false;
}

$license_data = json_decode( wp_remote_retrieve_body( $response ) );

if( $license_data->license == 'valid' ) {
echo 'valid';
exit;
// this license is still valid
} else {
echo 'invalid';
exit;
// this license is no longer valid
}
}

Hinweis: Wenn Sie die Gültigkeit eines Lizenzschlüssels durchgehend überprüfen, vielleicht um die Nutzung des Plugins oder Themes zu blockieren, wenn die Lizenz abläuft, MÜSSEN Sie die Ergebnisse der Überprüfung zwischenspeichern, damit die Anfrage nicht bei jedem Seitenaufruf durchgeführt wird. Die Transients API ist eine großartige Möglichkeit, API-Antworten zwischenzuspeichern.

Deaktivieren

Mit Software Licensing kann nach der Aktivierung einer Lizenz diese auch remote deaktiviert werden (seit v1.3). Normalerweise ist der Grund für die Deaktivierung einer Lizenz, einer Lizenz zu erlauben, auf einer zusätzlichen Website aktiviert zu werden, sobald das Aktivierungslimit erreicht ist.

Der Deaktivierungsprozess ist fast identisch mit dem Aktivierungsprozess. Wir führen eine Remote-Anfrage durch und senden die Details des Lizenzschlüssels, den wir deaktivieren. Die Remote-Anfrage wird wie folgt durchgeführt:

// data to send in our API request
$api_params = array(
'edd_action' => 'deactivate_license',
'license' => '2ec66bae356be570236531ccba06a45b',
'item_name' => 'Sample Plugin', // the name of our product in EDD
'url' => home_url(),
'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',
);
// Send the remote request
$response = wp_remote_post( 'https://yoursite.com', array( 'body' => $api_params, 'timeout' => 15, 'sslverify' => true ) );

Die $response-Variable ist ein JSON-Objekt, das uns mitteilt, ob die Deaktivierungsanfrage erfolgreich war oder nicht. Wenn sie erfolgreich ist, lautet die Antwort:

Hinweis: Das Datum/die Uhrzeit ist ein Zeitstempel, im Gegensatz zu anderen JSON-Antworten, die Datum und Uhrzeit sind.

{
	"success": true,
	"license": "deactivated",
	"item_name": "Sample Plugin",
	"expires": 1556150399,
	"payment_id": 2444,
	"customer_name": "John Doe",
	"customer_email": "[email protected]"
}

Wenn die Lizenz nicht deaktiviert werden kann, lautet die Antwort:

{
	"success": false,
	"license": "failed",
	"item_name": "Sample Plugin",
	"expires": 1556150399,
	"payment_id": 2444,
	"customer_name": "John Doe",
	"customer_email": "[email protected]"
}

Sobald eine Lizenz erfolgreich deaktiviert wurde, wird die Spalte Site Count in Downloads → Lizenzen dekrementiert und ein Eintrag wird im Protokoll aufgezeichnet, damit Administratoren sehen können, von wo eine Lizenz deaktiviert wurde.

Was this article helpful?

Verkaufen Sie noch heute!

Schließen Sie sich über 50.000 klugen Shop-Besitzern an und nutzen Sie die einfachste Methode, um digitale Produkte mit WordPress zu verkaufen.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]