Entrar
Começar

Documentação do Easy Digital Downloads

Documentação, Materiais de Referência e Tutoriais para Easy Digital Downloads 

Licenciamento de Software – Problemas Comuns e FAQs

A Extensão de Licenciamento de Software para Easy Digital Downloads requer alguma configuração e integração – e é possível que você encontre alguns problemas. Alguns deles são descritos aqui com soluções potenciais.

Perguntas Frequentes

Como você contata os clientes quando uma atualização está disponível?

Recomenda-se utilizar um serviço de e-mail marketing, como Mailchimp ou ConvertKit. O WordPress não é recomendado para o envio de e-mails em massa, portanto, o contato com os usuários deve ser feito externamente ao EDD/WordPress.

É possível vender licenças personalizadas / corporativas?

Embora não haja suporte integrado para a venda de licenças personalizadas ou corporativas que possam ser ativadas em um grande número de sites, existem soluções alternativas para fazer isso funcionar. A opção mais fácil é faturar o cliente via fatura Stripe ou PayPal. Após o pagamento, crie manualmente um pedido e atualize o limite de ativação da licença para o número de ativações que você deseja que o cliente tenha disponível.

O Licenciamento de Software funciona com o Amazon S3?

Sim, é totalmente compatível sem problemas e sem configurações especiais.

Ambientes locais / de desenvolvimento impactam a contagem de ativações?

Se você optar por limitar o número de ativações de licença que um cliente pode ter, ainda é possível permitir que ele ative uma licença em seu ambiente de desenvolvimento local sem impactar sua contagem de ativações.

Isso permite que seus usuários se mantenham atualizados em seus ambientes de teste e desenvolvimento sem obter ativações de licença gratuitas.

Para que isso funcione, duas coisas precisam acontecer:

1) Ignorar URLs de Host Local

No seu painel do WordPress, em
Downloads → Configurações → Extensões → Licenciamento de Software procure por uma caixa de seleção que diz Ignorar URLs de Host Local.  Certifique-se de que esteja marcada.

2) Educar Clientes

Veja este guia sobre como ignorar ativações para sites de desenvolvimento.

Como criar formatos de chave de licença personalizados?

As Chaves de Licença do EDD são, por padrão, um hash md5 como este:

e0c7ccc47b2613c82d1073a4214deecc

Se você deseja ter algo diferente, com o Licenciamento de Software é tão fácil quanto criar uma função para gerar chaves únicas e consistentes e conectar-se a um filtro chamado edd_sl_generate_license_key.

Os formatos de chave de licença podem ser realmente o que você quiser, desde que sejam únicos e consistentes. Se você quiser chaves neste formato:

username_timestamp_licensekey

sdavis2702_20151015120022_e0c7ccc47b2613c82d1073a4214deecc

Você pode usar esta função:

// Example shown how to base the MD5 off of the user's email and purchase date
function pw_edd_license_md5_user_and_date( $key, $license_id, $download_id, $payment_id, $cart_index ) {

    $name      = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
    $date      = get_post_field( 'post_date', $payment_id );
    $timestamp = strtotime($date);
    $nice_date = date( 'Yndhis', $timestamp );
    $license   = md5( $license_id );
    $key       = $name->user_nicename . '_' . $nice_date . '_' . $license;

    return $key;
}
add_filter( 'edd_sl_generate_license_key', 'pw_edd_license_md5_user_and_date', 10, 5 );

Uma função mais simples usa apenas nome de usuário e chave de licença:

// prepend user's username to license key
function sd_edd_license_username_md5( $key, $license_id, $download_id, $payment_id, $cart_index ) {
    $name      = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
    $license   = md5( $license_id );
    $key       = $name->user_nicename . '_' . $license;

    return $key;
}
add_filter( 'edd_sl_generate_license_key', 'sd_edd_license_username_md5', 10, 5 );

A coisa mais importante a tirar deste documento é que você pode usar qualquer código que produza strings únicas e consistentes e usar essas strings como chaves de licença.

Exibindo uma lista das chaves de licença do Cliente

O código a seguir permitirá que você recupere e exiba uma lista de chaves de licença para um Cliente específico.

Observação: O “$customer->id” deve ser substituído pelo ID real do Cliente.

$licenses = edd_software_licensing()->licenses_db->get_licenses( array(
		'number'      => -1,
		'customer_id' => $customer->id,
		'orderby'     => 'id',
		'order'       => 'ASC',
	) );

O que acontece se o domínio da minha loja sair do ar?

Encorajamos você a usar o EDD Software Licensing SDK para gerenciar o licenciamento em seu plugin ou tema do WordPress. O SDK não enviará solicitações de API repetidas ao seu site se não receber uma resposta válida.

Se você pretende alterar domínios ou desativar um nome de domínio, o ideal seria lançar uma atualização que use o novo domínio ou remova completamente as chamadas para a API.

Problemas Comuns

Personalizar Código de Exemplo

O código de exemplo que acompanha o Software Licensing pode usar prefixos de função como edd_ e edd_sl_. Estes devem ser alterados para corresponder ao seu próprio plugin, e a pesquisa e substituição é uma excelente maneira de fazer isso, mas você precisa ter cuidado com sua string de pesquisa.

Existem funções com prefixos como edd_action_ que não devem ser alteradas. Certifique-se de que você está alterando apenas os prefixos de nome de suas próprias funções e não os prefixos principais do EDD.

Solução de Problemas de Atualização

Se você estiver vendo erros ao tentar atualizar plugins e temas de sua loja de Software Licensing, aqui estão algumas coisas que você pode verificar, dependendo do erro que está sendo relatado.

Personalize seu Atualizador

Se você estiver usando a classe de atualização de plugin legada fornecida em versões anteriores do Software Licensing, você provavelmente está usando a classe EDD_SL_Plugin_Updater para gerenciar o licenciamento e as verificações de atualização. Há um risco de "conflito" se outro plugin incluir uma versão diferente da classe EDD_SL_Plugin_Updater do que você está empacotando com seu plugin. Você pode renomear esta classe para algo exclusivo do seu plugin, de modo que evite conflitos. Por exemplo, se o nome do meu plugin for "Meus Anúncios Personalizados", eu poderia renomear EDD_SL_Plugin_Updater para MCA_Plugin_Updater e alterar todas as referências a ela. Alternativamente, usar o EDD Software Licensing SDK simplificará muito como você pode gerenciar atualizações de plugins/temas.

Erros SSL

Existem muitos erros que podem ser causados por problemas de conectividade SSL; os seguintes são comumente vistos com o Software Licensing.

SSL: o nome do assunto do certificado não corresponde

Este erro significa que o certificado SSL instalado em seu site não corresponde ao seu nome de domínio principal. Isso pode acontecer tipicamente em ambientes de hospedagem compartilhada e a solução mais comum é solicitar um endereço IP dedicado ao seu provedor de hospedagem. Se o seu provedor de hospedagem não suportar endereços IP dedicados, então você precisará trabalhar com seu provedor de hospedagem para configurar uma cadeia SSL adequada que corresponda ao seu domínio principal, em vez de um certificado SSL wildcard compartilhado.

SSL23_GET_SERVER_HELLO: falha no handshake de alerta sslv3

Este erro de Handshake SSL ocorre quando a versão do OpenSSL no servidor do site que solicita a atualização está desatualizada e não suporta os Protocolos SSL que a loja que entrega a atualização exige. Existem duas maneiras de resolver este problema. A solução ideal é fazer com que o site que solicita a atualização verifique se o seu software OpenSSL está atualizado para a sua plataforma. OpenSSL é um software de servidor que facilita a comunicação através do protocolo HTTPS. Se esta não for uma solução possível, você pode trabalhar com seu provedor de hospedagem ou administrador de servidor para configurar seu servidor web para aceitar essas versões SSL desatualizadas, mas isso não é o ideal, pois permite conexões menos seguras ao seu servidor.

Erro cURL 35: Erro de conexão SSL

Este erro específico com o Software Licensing entregando atualizações é geralmente visto ao usar a opção SSL Flexível da Cloudflare. Esta opção causa um problema de cadeia com algumas versões do cURL existentes no servidor do cliente que solicita a atualização. Existem algumas maneiras de corrigir isso do lado do servidor (sem ter que solicitar ao cliente que atualize sua versão do cURL). A primeira é fazer um upgrade para um SSL pago da Cloudflare. Os certificados SSL de nível pago da Cloudflare normalmente não apresentam esse problema. A outra solução é comprar um certificado SSL de um terceiro e instalá-lo diretamente em seu servidor.

Falha no download. SSL: nenhum nome de assunto de certificado alternativo corresponde ao nome do host de destino
An error occurred while updating Resurrect: Download failed. SSL: certificate subject name '*.example.com' does not match target host name 'anotherexample.com'

Isso ocorre quando o site do cliente tem uma versão antiga do OpenSSL ou cURL. Os dois sites, então, não conseguem se comunicar de forma segura e a atualização falha.

A única correção é que o site com a versão mais antiga do software em seu servidor atualize para as versões mais recentes.

Falha no download. Certificado SSL do par ou chave remota SSH não estava OK

Se seus clientes estiverem vendo este erro ao atualizar seus produtos, você precisará entrar em contato com sua hospedagem para informá-los de que seu certificado SSL está configurado incorretamente:

Falha no download. Serviço Indisponível

Você verá este erro ao tentar atualizar um plugin ou tema em um site que também hospeda este plugin ou tema. Devido à forma como o Software Licensing se integra à API de Atualização do WordPress, atualmente não é possível atualizar seus próprios temas ou plugins do site que os vende. Quando o WordPress instala uma atualização, ele coloca temporariamente seu site em modo de manutenção e, durante esse processo, seu site não pode instalar sua própria atualização. Para atualizar um plugin ou tema de um site que também o vende, você precisará instalar a atualização manualmente.

Falha no download. Não autorizado / Muitos redirecionamentos

Este erro ocorre ao atualizar seu plugin ou tema para uma nova versão. Ao enviar sua nova versão, se você adicionar um novo arquivo com sua nova versão e, em seguida, excluir a linha do arquivo anterior, em vez de substituir a versão atual, é possível que este erro ocorra. Atualmente, estamos cientes desse bug e estamos trabalhando para resolvê-lo, no entanto, a solução simples no meantime é clicar no botão ‘Atualizar’ uma 2ª vez, para reescrever as chaves do arquivo, ou sempre substituir o arquivo atual em vez de adicionar seus novos arquivos em uma segunda linha de arquivo.

Pacote de Atualização Indisponível

Quando este erro aparece, geralmente significa:

  1. Há um problema com a ativação da licença no site do cliente. Há poucas coisas para verificar se um cliente relata este erro. A primeira é que o domínio que eles estão tentando atualizar foi ativado para a licença. Você pode determinar isso indo em Downloads → Licenças. Você pode então pesquisar a chave de licença que o usuário está tentando atualizar e clicar em ‘Gerenciar Sites’ para ter certeza de que o domínio em que eles estão está na lista. Se não estiver, você pode adicioná-lo você mesmo pelo admin, ou fazer com que o cliente visite sua página de gerenciamento de Licença e ative-o eles mesmos.
  2. O outro resultado é que uma licença está expirada ou desativada. Se este for o caso, o cliente precisa renovar sua licença, ou um administrador do site a desativou manualmente.

Nome de pasta longo e estranho após o atualizador

Isso acontece quando o arquivo .zip é criado incorretamente. Ao criar o arquivo .zip final, é importante compactar a pasta *e* seu conteúdo em vez de apenas o conteúdo da pasta.

A estrutura do arquivo zip deve ser algo como isto:

nome_do_arquivo.zip

– nome_do_produto/

— arquivo aqui

— outro arquivo aqui

Em outras palavras, os arquivos devem estar em uma pasta e não no topo do arquivo zip. Reempacote seu arquivo para incluir o nome da pasta dentro e isso o corrigirá.

Integração CloudFlare

Se você estiver usando o CloudFlare como um CDN, Camada de Cache ou provedor de SSL, recomendamos que você configure o CloudFlare para ignorar o cache para todos os URLs que contenham a seguinte string:

/edd-sl

Este é o endpoint da API para verificar o status da licença e entregar pacotes de atualização. Se esses URLs de endpoint forem cacheados, isso pode causar problemas na entrega adequada de atualizações aos seus clientes.

PCLZIP_ERR_BAD_FORMAT

Este erro não é exclusivo da plataforma EDD Software Licensing, mas tem algumas soluções que você pode verificar. A primeira é que há espaço em disco suficiente para que o arquivo seja baixado e descompactado (assuma que você precisará de 2x o tamanho do arquivo .zip para processar a atualização). Se o seu arquivo .zip for de 1MB, você precisará de pouco mais de 2MB disponíveis para processar uma atualização corretamente. Esses números não são exatamente 2x, mas é uma boa medida para começar.

A outra coisa a verificar é que o arquivo .zip não está corrompido. Você pode testar isso transferindo o arquivo .zip para outro computador (anexado em um e-mail ou via USB) e tentando descompactá-lo lá também. Se ele não descompactar em um computador diferente, provavelmente há um problema com a criação do arquivo .zip no computador original.

Este erro também pode ser causado por um plugin ou um script que está gerando um erro. Quando a API de Licenciamento de Software tenta criar o pacote zip, o erro é adicionado ao arquivo zip, quebrando sua estrutura. Normalmente, isso significa que seu site tem WP_DEBUG definido como TRUE no arquivo wp-config.php. Embora seja uma boa maneira de verificar quaisquer erros, é melhor defini-lo como FALSE em um site ativo. Alternativamente, você pode mantê-lo habilitado, mas registrar os erros em um arquivo no seu servidor, no arquivo wp-contents/debug.log. Faça isso adicionando as seguintes linhas ao arquivo wp-config.php:

define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_display', false );
Este artigo foi útil?

Comece a vender hoje mesmo!

Junte-se a mais de 50.000 proprietários de lojas inteligentes e comece a usar a maneira mais fácil de vender produtos digitais com o WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]