Software Licensing 3.8 führte die Möglichkeit ein, minimale Plattformanforderungen für Produkte festzulegen. Wenn ein Kunde diese Anforderungen nicht erfüllt, erhält er keine automatischen Updates über die API.
API-Voraussetzungen
Damit diese Funktion ordnungsgemäß funktioniert, müssen die Plattformversionen des Kunden zusammen mit der API-Anfrage, die auf ein Update prüft, gesendet werden.
Wenn Sie unseren Plugin-Updater verwenden, bedeutet dies, dass Ihr Produkt die Version 1.9 oder höher der Klasse EDD_SL_Plugin_Updater bündeln muss.
Wenn Sie unseren Theme-Updater verwenden, muss Ihr Produkt die Version 1.2 oder höher bündeln.
Wenn Sie eine benutzerdefinierte Integration erstellt haben, müssen Sie sicherstellen, dass „php_version“ und „wp_version“ in Ihrer API-Anfrage enthalten sind. Weitere Details finden Sie in unserer API-Dokumentation.
Wenn die Website eines Kunden die Plattformversion(en) nicht in die API-Anfrage aufnimmt, werden diese Anforderungen nicht geprüft und der Benutzer erhält möglicherweise trotzdem das Update.
Anforderungen für ein Produkt konfigurieren
Um Anforderungen für ein Produkt zu konfigurieren, bearbeiten Sie das Produkt unter Downloads > Bearbeiten. Suchen Sie in der rechten Seitenleiste nach einem Metabox namens „Download-Anforderungen“. Es sieht so aus:

Geben Sie einfach Ihre minimal erforderlichen Versionen ein und speichern Sie. Alle leeren Versionen werden nicht geprüft oder sind nicht erforderlich.
Benutzerdefinierte Anforderungen hinzufügen
Standardmäßig unterstützt Software Licensing PHP- und WordPress-Versionen, obwohl Ihre eigenen Abhängigkeiten mit etwas benutzerdefiniertem Code hinzugefügt werden können. Zwei Schritte sind erforderlich:
1. Fügen Sie Ihre Abhängigkeit zum Metabox hinzu
Das Hinzufügen einer neuen Abhängigkeit erfolgt mit einem einfachen Filter wie diesem, der zu Ihrer eigenen Website hinzugefügt werden muss:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['your-platform-id'] = 'Your Platform Display Name';
return $platforms;
} );
Ersetzen Sie your-platform-id durch eine eindeutige, slug-freundliche Version Ihres Abhängigkeitsnamens und ersetzen Sie Your Platform Display Name durch die anzeigenfreundliche Version. Hier ist ein Beispiel für das Hinzufügen von Easy Digital Downloads als Anforderung:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['easy-digital-downloads'] = 'Easy Digital Downloads';
return $platforms;
} );
Nach dem Hinzufügen erscheint Ihre Plattform im Metabox:

2. Fügen Sie die Abhängigkeitsversion in Ihre API-Anfrage ein
Wenn Sie über die API auf ein neues Update prüfen (innerhalb Ihres Produkts), müssen Sie die aktuelle Versionsnummer der Abhängigkeit in die API-Anfrage senden. Dazu müssen Sie lediglich ein neues Argument anhängen: {your platform ID}_version.
Eine Versionsprüfungsanfrage sieht normalerweise so aus:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com
Aber mit unserem neuen Argument würde es so aussehen:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com&easy-digital-downloads_version=1.0
Beachten Sie die Hinzufügung von &easy-digital-downloads_version=1.0 am Ende.
Wenn Sie einen benutzerdefinierten Updater verwenden, können Sie das neue Argument direkt zu den API-Parametern hinzufügen, die mit der Anfrage gesendet werden:
$api_params = array( 'edd_action' => 'get_version', 'license' => ! empty( $data['license'] ) ? $data['license'] : '', 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, 'version' => $this->version, 'slug' => $data['slug'], 'author' => $data['author'], 'url' => home_url(), 'beta' => ! empty( $data['beta'] ), 'php_version' => phpversion(), 'wp_version' => get_bloginfo( 'version' ), 'easy-digital-downloads_version' => defined( 'EDD_VERSION' ) ? EDD_VERSION : '', // current version number );
Wenn Sie unsere Plugin-Updater-Klasse (Version 1.9 oder höher) verwenden, können Sie dieses Argument mithilfe eines Filters zur API-Anfrage hinzufügen. Dieser Filter muss Teil Ihres Plugins sein, da er auf den Websites Ihrer Kunden ausgeführt wird:
add_filter( 'edd_sl_plugin_updater_api_params', function( $api_params, $api_data, $plugin_file ) {
/*
* Make sure $plugin_file matches your plugin's file path. You should have a constant for this
* or can use __FILE__ if this code goes in your plugin's main file.
*/
if ( __FILE__ === $plugin_file ) {
// Dynamically retrieve the current version number.
$api_params['easy-digital-downloads_version'] = defined( 'EDD_VERSION' ) ? EDD_VERSION : '';
}
return $api_params;
}, 10, 3 );
Stellen Sie sicher, dass Sie easy-digital-downloads durch die eindeutige ID ersetzen, die Sie für Ihre Abhängigkeit gewählt haben, und defined( 'EDD_VERSION' ) ? EDD_VERSION : '' durch die aktuelle Versionsnummer. Dieser Wert muss vom Kundenserver dynamisch abgerufen werden können.
