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.
