Tabla de Contenidos
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.
