Entrar
Começar

Documentação do Easy Digital Downloads

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

Licenciamento de Software – Customizações do Desenvolvedor

Assim como o núcleo do Easy Digital Downloads, a extensão Software Licensing inclui uma variedade de ganchos de ação e filtro que você pode usar para ajustar o comportamento da extensão para melhor atender às suas necessidades. Esta documentação é escrita para usuários avançados que já estão familiarizados com a API de Plugins do WordPress.

Criação de Licença

Duração da Licença

Por padrão, cada chave de licença recebe uma data de expiração de um ano. Este período de expiração pode ser facilmente alterado usando o filtro edd_sl_license_exp_length. Existem quatro parâmetros passados para o filtro:

  • $length (string) – O período de expiração desta licença. “+1 ano” é o padrão
  • $payment_id (int) – O ID do pagamento com o qual esta licença foi gerada
  • $download_id (int) – O ID do download/produto ao qual esta licença está conectada
  • $license_id (int) O ID da licença recém-criada

Aqui está um exemplo rápido de como você pode alterar o período de expiração:

function pw_edd_sl_license_length( $length, $payment_id, $download_id, $license_id ) {
	return '+2 years'; // set length to two years from creation date
}
add_filter( 'edd_sl_license_exp_length', 'pw_edd_sl_license_length', 10, 4 );

Executar Funções Após a Criação da Licença

A ação edd_sl_store_license é disparada logo após a criação da chave de licença e todos os metadados serem anexados a ela. A ação recebe três parâmetros:

  • $license_id (int) – O ID da licença recém-criada
  • $download_id (int) – O ID do download/produto ao qual esta licença está conectada
  • $payment_id (int) – O ID do pagamento com o qual esta licença foi criada

Uma função de exemplo que você pode anexar a esta ação pode parecer algo assim:

function pw_edd_sl_custom_admin_alert( $license_id, $download_id, $payment_id ) {
	
	// send admin alert

	wp_mail( get_bloginfo( 'admin_email' ), 'License Created', 'A new license key with the ID of ' . $license_id . ' has been created.' );

}
add_action( 'edd_sl_store_license', 'pw_edd_sl_custom_function', 10, 3 );

Executar Funções Durante a Ativação da Licença

A ação edd_sl_activate_license é executada logo após uma licença ser ativada via API.

do_action( 'edd_sl_activate_license', $license_id, $download_id );

Executar Funções Durante a Verificação da Licença

A ação edd_sl_check_license é executada logo após uma licença ser verificada via API.

do_action( 'edd_sl_activate_license', $license_id, $download_id );

Outros Filtros

edd_sl_license_response – aplicado à resposta enviada ao verificar remotamente a versão de um download/produto.

edd_sl_get_license_logs – aplicado quando as entradas de log de uma licença são recuperadas.

edd_sl_encoded_package_url – aplicado quando a URL do pacote codificado para pacotes de download é recuperada.

edd_sl_download_package_url – aplicado quando o arquivo do pacote de download para atualizações automáticas é recuperado.

edd_license_labels – aplicado aos rótulos do tipo de postagem ao registrar o tipo de postagem edd_license.

Outras Ações

edd_sl_before_package_download – executa logo antes do arquivo do pacote para atualizações automáticas ser servido ao navegador.

Software Licensing versão 3.5 e posterior inclui uma classe EDD_SL_License para interagir com registros de chaves de licença. A classe EDD_SL_License permite que você interaja com dados de chaves de licença, atualize chaves de licença existentes e crie novos registros de chaves de licença.

Instanciando Objetos

Para melhorar o desempenho ao acessar um objeto de licença, você deve usar o método wrapper, que utiliza a camada de cache de objetos do núcleo do WordPress. Você pode usar o ID da Licença ou a Chave da Licença para instanciar um objeto. Se nenhuma licença existir para as informações fornecidas, o método wrapper retornará `false`:

// Instantiate a license via ID
$license = edd_software_licensing()->get_license( 2326422 );

// Instantiate a license via the license key
$license_by_key = edd_software_licensing->get_license( '9e21e9a885212f96cccb4d6186541332', true );

// If you pass in an invalid license ID or key you will get 'false' as a response.
$invalid_license = edd_software_licensing()->get_license( -1 );

EDD_SL_License pode ser instanciado com um ID de licença ou nenhum valor ao criar uma nova licença. Aqui estão alguns exemplos:

$license = new EDD_SL_License( 2326422 );

Se você deseja criar uma nova licença:

$license = new EDD_SL_License();
$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() );

Embora você possa instanciar diretamente uma licença com EDD_SL_License, é preferível usar a função wrapper por motivos de desempenho.

Os argumentos necessários para criar uma nova licença serão abordados abaixo.

Propriedades Disponíveis

A classe EDD_SL_License inclui inúmeras propriedades acessíveis que contêm informações relacionadas ao registro da chave de licença.

  • ID – O número de ID do registro da licença. Isso corresponde ao ID do objeto WP_Post.
  • parent – O ID da postagem da licença pai, se houver.
  • name – O nome da licença. Esta é uma concatenação do endereço de e-mail do cliente e do nome do produto ao qual a chave de licença está associada.
  • key – A própria chave de licença. Geralmente é uma string de 32 caracteres, mas pode ser qualquer coisa.
  • user_id – O ID do WP_User ao qual a chave de licença pertence, se houver.
  • customer_id – O ID do EDD_Customer ao qual a licença pertence.
  • payment_id – O ID do EDD_Payment para o qual a licença foi criada.
  • payment_ids – Uma matriz de IDs de pagamento relacionados à licença. Inclui renovações e atualizações.
  • cart_index – O índice numérico na matriz de itens do carrinho do produto ao qual a chave de licença está associada.
  • download – Uma instância EDD_SL_Download do produto de download ao qual a chave de licença está associada.
  • download_id – O ID da postagem do produto de download ao qual a chave de licença está associada.
  • price_id – O ID da opção de preço do produto de download atribuída à chave de licença.
  • activation_limit – O número de URLs / máquinas exclusivas nas quais a chave de licença pode ser ativada.
  • sites – Uma matriz de URLs de sites (ou IDs de máquina) nas quais a chave de licença está ativada.
  • activation_count – O número de URLs / máquinas exclusivas nas quais a chave de licença está atualmente ativada.
  • expiration – A data de expiração da chave de licença.
  • is_lifetime – Sinalizador booleano indicando se a licença é uma licença vitalícia (nunca expira).
  • status – O status atual da licença (ativa, inativa, expirada).
  • post_status – O post_status do objeto WP_Post para a licença.
  • child_licenses – Uma matriz de chaves de licença filhas, se houver.

Cada propriedade pode ser acessada diretamente, assim:

// Access the price ID of the license
$price_id = $license->price_id;

Cada propriedade também pode ser atualizada definindo o valor da propriedade, assim:

// Set the license activation limit
$license->activation_limit = 100;

As alterações nas propriedades do objeto serão salvas imediatamente, sem a necessidade de chamar um método de salvar ou atualizar.

Métodos Disponíveis

A classe EDD_SL_License inclui métodos públicos para acessar as propriedades do objeto e vários outros métodos auxiliares que podem ser usados para acessar e interagir com os dados da licença.

$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() )

Este método permite criar um novo registro de licença para um produto de download e registro de pagamento existentes.

  • $download_id – Deve ser o ID de um produto de download existente
  • $payment_id – Deve ser o ID de um registro de pagamento existente que incluiu uma compra de $download_id
  • $price_id – Este é um ID de preço opcional para $download_id se preços variáveis estiverem habilitados
  • $cart_index – Este é um índice de item de carrinho opcional que identifica exatamente a qual item do carrinho esta licença corresponde
  • $options – Uma matriz de opções para a licença. Pode incluir as seguintes chaves
    • parent_license_id
    • activation_limit
    • license_length
    • expiration_date
    • is_lifetime

O método create() pode ser usado para criar uma nova chave de licença, mas normalmente não será usado manualmente, exceto em implementações muito personalizadas.

$license->update( $data = array() )

Este método permite atualizar metadados de uma licença em massa. A matriz $data deve ser um par chave/valor de meta_key/meta_value.

$license->renew()

Este método acionará a renovação de uma chave de licença, estendendo a data de expiração por um período e redefinindo o status da licença para inativo ou ativo.

$license->enable()

Este método reativará uma chave de licença desativada.

$license->disable()

Este método desativará uma chave de licença.

$license->get_meta( $meta_key = ”, $single = true )

Este método recuperará metadados de uma licença.

$license->update_meta($meta_key = ”, $value = ”, $old_value = ” )

Este método atualizará metadados para uma licença.

$license->get_renewal_url()

Este método recuperará a URL de renovação de uma licença.

$license->is_site_active( $url )

Este método determinará se a URL fornecida está registrada na licença.

$license->is_at_limit()

Este método verificará se a licença atingiu seu limite de ativação.

$license->license_length()

Este método retornará o comprimento de um único período para a licença, como vitalícia ou +1 ano.

$license->add_site( $url )

Este método pode ser usado para registrar uma nova URL de site em uma licença.

$license->remove_site( $url )

Este método pode ser usado para remover uma URL de site de uma licença.

$license->reset_activation_limit()

Este método pode ser usado para redefinir o limite de ativação em uma licença de acordo com as configurações do produto de download.

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]