Iniciar sesión
Empezar

Documentación de Easy Digital Downloads

Documentación, Materiales de Referencia y Tutoriales para Easy Digital Downloads 

Licenciamiento de Software – Personalizaciones del Desarrollador

Al igual que el núcleo de Easy Digital Downloads, la extensión de Licenciamiento de Software incluye una variedad de ganchos de acción y filtro que puedes usar para ajustar el comportamiento de la extensión y que se adapte mejor a tus necesidades. Esta documentación está escrita para usuarios avanzados que ya están familiarizados con la API de Plugins de WordPress.

Creación de Licencia

Duración de la Licencia

Por defecto, a cada clave de licencia se le da una fecha de vencimiento de un año. Esta duración de vencimiento se puede cambiar fácilmente usando el filtro edd_sl_license_exp_length. Hay cuatro parámetros que se pasan al filtro:

  • $length (string) – La duración de vencimiento de esta licencia. “+1 year” es el valor predeterminado
  • $payment_id (int) – El ID del pago de la compra con la que se generó esta licencia
  • $download_id (int) – El ID del producto/descarga al que está conectada esta licencia
  • $license_id (int) El ID de la licencia recién creada

Aquí tienes un ejemplo rápido de cómo podrías cambiar la duración del vencimiento:

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 );

Ejecutar Funciones Después de la Creación de la Licencia

La acción edd_sl_store_license se dispara justo después de que se crea la clave de licencia y se adjuntan todos sus metadatos. La acción toma tres parámetros:

  • $license_id (int) – El ID de la licencia recién creada
  • $download_id (int) – El ID del producto/descarga al que está conectada esta licencia
  • $payment_id (int) – El ID de la compra con la que se creó esta licencia

Una función de ejemplo que podrías adjuntar a esta acción podría verse algo así:

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 );

Ejecutar Funciones Durante la Activación de la Licencia

La acción edd_sl_activate_license se ejecuta justo después de que una licencia se activa a través de la API.

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

Ejecutar Funciones Durante la Verificación de la Licencia

La acción edd_sl_check_license se ejecuta justo después de que una licencia se verifica a través de la API.

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

Otros Filtros

edd_sl_license_response – se aplica a la respuesta enviada al verificar remotamente la versión de un producto/descarga.

edd_sl_get_license_logs – se aplica cuando se recuperan las entradas de registro de una licencia.

edd_sl_encoded_package_url – se aplica cuando se recupera la URL codificada del paquete para los paquetes de descarga.

edd_sl_download_package_url – se aplica cuando se recupera el archivo del paquete de descarga para las actualizaciones automáticas.

edd_license_labels – se aplica a las etiquetas del tipo de publicación al registrar el tipo de publicación edd_license.

Otras Acciones

edd_sl_before_package_download – se ejecuta justo antes de que el archivo de descarga para las actualizaciones automáticas se sirva al navegador.

Software Licensing versión 3.5 y posteriores incluye una clase EDD_SL_License para interactuar con los registros de claves de licencia. La clase EDD_SL_License te permite interactuar con los datos de las claves de licencia, actualizar claves de licencia existentes y crear nuevos registros de claves de licencia.

Instanciación de Objetos

Para mejorar el rendimiento al acceder a un objeto de licencia, debes usar el método envoltorio, que utiliza la capa de caché de objetos principal de WordPress. Puedes usar el ID de licencia o la Clave de licencia para instanciar un objeto. Si no existe ninguna licencia para la información proporcionada, el método envoltorio devolverá `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 se puede instanciar con un ID de licencia o sin valor al crear una nueva licencia. Aquí tienes algunos ejemplos:

$license = new EDD_SL_License( 2326422 );

Si deseas crear una nueva licencia:

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

Aunque puedes instanciar directamente una licencia con EDD_SL_License, se prefiere usar la función envoltorio por razones de rendimiento.

Los argumentos necesarios para crear una nueva licencia se cubrirán a continuación.

Propiedades Disponibles

La clase EDD_SL_License incluye numerosas propiedades accesibles que contienen información relacionada con el registro de la clave de licencia.

  • ID – El número de ID del registro de licencia. Esto corresponde al ID del objeto WP_Post.
  • parent – El ID de publicación de la licencia principal, si la hay.
  • name – El nombre de la licencia. Esta es una concatenación de la dirección de correo electrónico del cliente y el nombre del producto con el que está asociada la clave de licencia.
  • key – La clave de licencia en sí. Normalmente es una cadena de 32 caracteres, pero puede ser cualquier cosa.
  • user_id – El ID del WP_User al que pertenece la clave de licencia, si lo hay.
  • customer_id – El ID del EDD_Customer al que pertenece la licencia.
  • payment_id – El ID del EDD_Payment para el que se creó la licencia.
  • payment_ids – Una matriz de IDs de pago relacionados con la licencia. Incluye renovaciones y actualizaciones.
  • cart_index – El índice numérico en la matriz de artículos del carrito del producto con el que está asociada la clave de licencia.
  • download – Una instancia EDD_SL_Download del producto de descarga con el que está asociada la clave de licencia.
  • download_id – El ID de publicación del producto de descarga con el que está asociada la clave de licencia.
  • price_id – El ID de la opción de precio del producto de descarga asignado a la clave de licencia.
  • activation_limit – El número de URLs / máquinas únicas en las que se puede activar la clave de licencia.
  • sites – Una matriz de las URLs del sitio (o IDs de máquina) en las que está activada la clave de licencia.
  • activation_count – El número de URLs / máquinas únicas en las que está activada actualmente la clave de licencia.
  • expiration – La fecha de caducidad de la clave de licencia.
  • is_lifetime – Indicador booleano que indica si la licencia es una licencia de por vida (nunca caduca).
  • status – El estado actual de la licencia (activa, inactiva, expirada).
  • post_status – El post_status del objeto WP_Post para la licencia.
  • child_licenses – Un array de claves de licencia secundarias, si las hay.

Cada propiedad se puede acceder directamente, de esta manera:

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

Cada propiedad también se puede actualizar estableciendo el valor de la propiedad, de esta manera:

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

Los cambios en las propiedades del objeto se guardarán inmediatamente sin necesidad de llamar a un método de guardar o actualizar.

Métodos Disponibles

La clase EDD_SL_License incluye métodos públicos para acceder a las propiedades del objeto y varios otros métodos de ayuda que pueden usarse para acceder e interactuar con los datos de la licencia.

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

Este método te permite crear un nuevo registro de licencia para un producto de descarga y registro de pago existentes.

  • $download_id – Este debe ser el ID de un producto de descarga existente
  • $payment_id – Este debe ser el ID de un registro de pago existente que incluyó una compra de $download_id
  • $price_id – Este es un ID de precio opcional para $download_id si los precios variables están habilitados
  • $cart_index – Este es un índice de artículo del carrito opcional que identifica exactamente a qué artículo del carrito corresponde esta licencia
  • $options – Un array de opciones para la licencia. Puede incluir las siguientes claves
    • parent_license_id
    • activation_limit
    • license_length
    • expiration_date
    • is_lifetime

El método create() se puede usar para crear una nueva clave de licencia, pero típicamente no se usará manualmente, excepto en implementaciones muy personalizadas.

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

Este método te permite actualizar metadatos para una licencia en bloque. El array $data debe ser un par clave/valor de meta_key/meta_value.

$license->renew()

Este método activará una renovación de una clave de licencia, extendiendo la fecha de expiración por un período y restableciendo el estado de la licencia a inactiva o activa.

$license->enable()

Este método volverá a habilitar una clave de licencia deshabilitada.

$license->disable()

Este método deshabilitará una clave de licencia.

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

Este método recuperará metadatos para una licencia.

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

Este método actualizará los metadatos de una licencia.

$license->get_renewal_url()

Este método recuperará la URL de renovación de una licencia.

$license->is_site_active( $url )

Este método determinará si la URL proporcionada está registrada en la licencia.

$license->is_at_limit()

Este método comprobará si la licencia ha alcanzado su límite de activación.

$license->license_length()

Este método devolverá la duración de un solo período para la licencia, como de por vida o +1 año.

$license->add_site( $url )

Este método se puede usar para registrar una nueva URL de sitio en una licencia.

$license->remove_site( $url )

Este método se puede usar para eliminar una URL de sitio de una licencia.

$license->reset_activation_limit()

Este método se puede usar para restablecer el límite de activación en una licencia según la configuración del producto de descarga.

¿Fue útil este artículo?

¡Empieza a vender hoy mismo!

Únete a más de 50.000 dueños de tiendas inteligentes y empieza a usar la forma más fácil de vender productos digitales con WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]