ソフトウェアライセンス 3.8 では、製品の最小プラットフォーム要件を設定する機能が導入されました。顧客がそれらの要件を満たさない場合、API を介して自動更新を受け取ることはできません。
API の前提条件
この機能が正しく動作するためには、顧客のプラットフォームバージョンを、更新を確認する API リクエストと共に送信する必要があります。
当社のプラグインアップデーターを使用している場合、製品には EDD_SL_Plugin_Updater クラスファイルのバージョン 1.9 以降をバンドルする必要があります。
当社のテーマアップデーターを使用している場合、製品にはバージョン 1.2 以降をバンドルする必要があります。
カスタム統合を構築した場合は、「php_version」と「wp_version」を API リクエストに含める必要があります。詳細については、API ドキュメントを参照してください。
顧客のサイトが API リクエストにプラットフォームバージョンを含んでいない場合、それらの要件はチェックされず、ユーザーは引き続き更新を受け取る可能性があります。
製品の要件を設定する
製品の要件を設定するには、[ダウンロード] > [編集] で製品を編集します。右側のサイドバーで、「ダウンロード要件」というメタボックスを探します。次のようになります:

最小要件バージョンを入力して保存するだけです。空白のままのバージョンはチェックまたは要求されません。
カスタム要件を追加する
デフォルトでは、ソフトウェアライセンスは PHP および WordPress のバージョンをサポートしていますが、独自の依存関係はカスタムコードで追加できます。2 つの手順が必要です:
1. メタボックスに依存関係を追加する
新しい依存関係の追加は、次のような簡単なフィルターで行われます。これは独自のサイトに追加する必要があります:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['your-platform-id'] = 'Your Platform Display Name';
return $platforms;
} );
your-platform-id を依存関係名のユニークでスラッグフレンドリーなバージョンに置き換え、Your Platform Display Name を表示フレンドリーなバージョンに置き換えます。Easy Digital Downloads を要件として追加する例を次に示します:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['easy-digital-downloads'] = 'Easy Digital Downloads';
return $platforms;
} );
追加されると、プラットフォームがメタボックスに表示されます:

2. API リクエストに依存関係バージョンを含める
API を介して新しい更新を確認する際(製品内)、API リクエストに依存関係の現在のバージョン番号を送信する必要があります。これを行うには、新しい引数を追加するだけです:{your platform ID}_version。
バージョンチェックリクエストは通常次のようになります:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com
しかし、新しい引数を使用すると、次のようになります:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com&easy-digital-downloads_version=1.0
末尾に &easy-digital-downloads_version=1.0 が追加されていることに注意してください。
カスタムアップデーターを使用している場合は、リクエストと共に送信される API パラメータに新しい引数を直接追加できます:
$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 );
当社のプラグインアップデータークラス(バージョン 1.9 以降)を使用している場合は、フィルターを使用してこの引数を API リクエストに追加できます。このフィルターは、顧客のサイトで実行されるため、プラグインの一部である必要があります:
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 );
easy-digital-downloads を依存関係に選択した一意のIDに、defined( 'EDD_VERSION' ) ? EDD_VERSION : '' を現在のバージョン番号に置き換えてください。この値は、顧客サイトで動的に取得できる必要があります。
