Login
Get Started

Documentación de Easy Digital Downloads

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

Licencias de Software – Personalizaciones de Desarrollador

Al igual que el núcleo de Easy Digital Downloads, la extensión Software Licensing incluye una variedad de ganchos de acción y filtro que puedes usar para ajustar el comportamiento de la extensión y adaptarla 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 caducidad de un año. Esta duración de caducidad 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 caducidad 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 de la descarga/producto 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 de la caducidad:

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 de la descarga/producto al que está conectada esta licencia
  • $payment_id (int) – El ID del pago con el que se creó esta licencia

Una función de ejemplo que podrías adjuntar a esta acción podría parecerse a esto:

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 Comprobación de la Licencia

La acción edd_sl_check_license se ejecuta justo después de que una licencia se comprueba 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 comprobar remotamente la versión de una descarga/producto.

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 del paquete para las actualizaciones automáticas se sirva al navegador.

Licenciamiento de Software, 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 le 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, debe usar el método envolvente, que utiliza la capa de caché de objetos principal de WordPress. Puede 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 envolvente 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í hay algunos ejemplos:

$license = new EDD_SL_License( 2326422 );

Si desea 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 puede instanciar directamente una licencia con EDD_SL_License, se prefiere usar la función envolvente 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 ID 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 de 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 asignada a la clave de licencia.
  • activation_limit – El número de URL / máquinas únicas en las que se puede activar la clave de licencia.
  • sites – Una matriz de las URL del sitio (o ID de máquina) en las que está activada la clave de licencia.
  • activation_count – El número de URL / 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, caducada).
  • post_status – El post_status del objeto WP_Post para la licencia.
  • child_licenses – Una matriz de claves de licencia secundarias, si las hay.

Se puede acceder a cada propiedad 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 guardado o actualización.

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 se pueden utilizar 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 le permite crear un nuevo registro de licencia para un producto de descarga y un registro de pago existentes.

  • $download_id – Debe ser el ID de un producto de descarga existente
  • $payment_id – 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 de carrito opcional que identifica exactamente a qué artículo del carrito corresponde esta licencia
  • $options – An array of options for the license. Can include the following keys
    • 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 normalmente no se usará manualmente, excepto en implementaciones muy personalizadas.

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

Este método le permite actualizar metadatos de una licencia en bloque. La matriz $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 vencimiento 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á metadatos para 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 único período para la licencia, como de por vida o +1 año.

$license->add_site( $url )

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

$license->remove_site( $url )

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

$license->reset_activation_limit()

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

Was this article helpful?

¡Empieza a vender hoy mismo!

Únete a más de 50.000 propietarios 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]