O Licenciamento de Software 3.8 introduziu a capacidade de definir requisitos mínimos de plataforma para produtos. Se um cliente não atender a esses requisitos, ele não receberá atualizações automáticas pela API.
Pré-requisitos da API
Para que este recurso funcione corretamente, as versões da plataforma do cliente precisam ser enviadas junto com a solicitação da API que verifica atualizações.
Se você estiver usando o atualizador de plugin, isso significa que seu produto precisa incluir a versão 1.9 ou superior do arquivo de classe EDD_SL_Plugin_Updater.
Se você estiver usando o atualizador de tema, seu produto precisa incluir a versão 1.2 ou superior.
Se você criou uma integração personalizada, precisa garantir que "php_version" e "wp_version" sejam incluídos em sua solicitação de API. Consulte nossa documentação da API para mais detalhes.
Se o site de um cliente não incluir a(s) versão(ões) da plataforma na solicitação da API, esses requisitos não serão verificados e o usuário ainda poderá receber a atualização.
Configurando requisitos para um produto
Para configurar requisitos para um produto, edite o produto em Downloads > Editar. Na barra lateral direita, procure por uma caixa de metadados chamada "Requisitos de Download". Ela se parece com isto:

Simplesmente insira suas versões mínimas exigidas e salve. Quaisquer versões deixadas em branco não serão verificadas ou exigidas.
Adicionando requisitos personalizados
Por padrão, o Licenciamento de Software suporta versões PHP e WordPress, embora suas próprias dependências possam ser adicionadas com algum código personalizado. Duas etapas são necessárias:
1. Adicione sua dependência à caixa de metadados
A adição de uma nova dependência é feita com um filtro simples como este, que precisa ser adicionado ao seu próprio site:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['your-platform-id'] = 'Your Platform Display Name';
return $platforms;
} );
Substitua seu-id-de-plataforma por uma versão única e amigável de slug do nome da sua dependência, e substitua Nome de Exibição da Sua Plataforma pela versão amigável para exibição. Aqui está um exemplo de adição do Easy Digital Downloads como um requisito:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['easy-digital-downloads'] = 'Easy Digital Downloads';
return $platforms;
} );
Uma vez adicionada, sua plataforma aparecerá na caixa de metadados:

2. Inclua a versão da dependência em sua solicitação de API
Ao verificar uma nova atualização pela API (dentro do seu produto), você precisa enviar o número da versão atual da dependência na solicitação da API. Para fazer isso, basta adicionar um novo argumento: {seu-id-de-plataforma}_version.
Uma solicitação de verificação de versão normalmente se parece com isto:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com
Mas com nosso novo argumento, ficaria assim:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com&easy-digital-downloads_version=1.0
Observe a adição de &easy-digital-downloads_version=1.0 no final.
Se você estiver usando um atualizador personalizado, pode adicionar o novo argumento diretamente aos parâmetros da API enviados com a solicitação:
$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 );
Se você estiver usando nossa classe de atualizador de plugin (versão 1.9 ou superior), pode adicionar este argumento à solicitação da API usando um filtro. Este filtro precisa fazer parte do seu plugin, pois é executado nos sites de seus clientes:
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 );
Certifique-se de substituir easy-digital-downloads pelo ID exclusivo que você escolheu para sua dependência e defined( 'EDD_VERSION' ) ? EDD_VERSION : '' pelo número da versão atual. Esse valor precisa ser recuperável dinamicamente pelo site do cliente.
