Iniciar sesión
Empezar

Documentación de Easy Digital Downloads

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

Licenciamiento de Software – Activación, Verificación y Desactivación de Claves de Licencia en Plugins de WordPress

Nota Importante

Esta documentación no es necesaria si se utiliza el Actualizador de la API de Licenciamiento de Software. Consulte este documento solo si no está utilizando el actualizador o si es para referencia:
Vea nuestra documentación sobre cómo integrar actualizaciones automáticas para sus plugins de WordPress.
Vea nuestra documentación sobre cómo integrar actualizaciones automáticas para sus temas de WordPress.

Activación

Con Licenciamiento de Software, para que una clave de licencia se utilice por completo, debe estar activada. Esto puede suceder de una de las siguientes maneras:

  1. Un administrador del sitio puede hacer clic manualmente en el enlace "Activar" para la licencia desde la página Descargas → Licencias
  2. El comprador puede activar la licencia de forma remota a través de un sistema en su plugin/tema/software que utiliza la API para activar la activación

Nota: el plugin de ejemplo y la implementación que se muestran en este documento son puramente ejemplos. Las mejores implementaciones de Licenciamiento de Software toman estos ejemplos y los integran sin problemas en la página de configuración existente de su plugin.

En esta documentación, le mostraremos cómo activar una licencia de forma remota a través de un sistema agregado a su plugin de WordPress. El código de ejemplo que le mostramos en este ejemplo es el mismo código exacto que se incluye con el plugin y los temas de ejemplo, disponibles para descargar después de comprar la extensión.

Hay dos componentes principales para activar una licencia de forma remota:

  1. Guardar la clave de licencia en los datos (una opción del tema o del plugin)
  2. Enviar la clave de licencia almacenada a través de la API al sitio web de la tienda para su verificación y activación

Cuando una licencia se activa de forma remota, el estado de la licencia en el panel de su sitio se actualizará de "inactiva" (el estado predeterminado) a "activa".

Primero, veamos cómo crear una página de opciones simple para almacenar nuestra licencia.

Este código configura un elemento de submenú en el menú Plugins llamado "Licencia del Plugin". Estamos usando una página de plugins en este ejemplo, pero el código es idéntico para los temas.

Hay dos líneas en la parte superior del código:

La primera es la licencia en sí y la segunda es el estado de la licencia. Una vez que hayamos activado nuestra licencia, cambiaremos el estado (en nuestro sitio local) a "activo". Esto es para que podamos mostrar un botón "Activar Licencia" si la licencia aún no se ha activado, y ocultar el botón si ya se ha activado. Vea la captura de pantalla a continuación:

La idea aquí es que primero ingresemos una clave de licencia y hagamos clic en "Guardar Cambios", lo que hace que la clave de licencia se almacene en las opciones de nuestro plugin/tema. Una vez que se almacena la opción, hacemos clic en el botón "Activar Licencia" para activar la llamada a la API.

El botón de activación es solo un campo de entrada simple con un tipo "submit" y un atributo de nombre que es diferente al de nuestro botón de guardar. Los nombres *deben* ser diferentes para que podamos saber cuándo se hizo clic en el botón de activar licencia.

Para activar la licencia, solo necesitamos "observar" cuándo se hace clic en el botón de activar. La forma en que hacemos esto es configurando una función que está enganchada al hook "admin_init", de la siguiente manera:

Si todo funciona correctamente después de hacer clic en el botón "Activar Licencia", el botón de activar será reemplazado por la palabra "activo" y el estado de la licencia reflejará el estado recién activado en el panel de control de tu tienda de EDD. Si hay un error al activar la clave de licencia, la página se recargará y se agregarán parámetros de error y mensaje a la URL. Luego podemos usar el hook admin_notices (o cualquier otro método aplicable) para mostrar el error al cliente:

Por ejemplo, si un cliente ingresa una clave de licencia no válida, se mostrará un mensaje de error:

Verificación

Con Software Licensing puedes verificar fácilmente si una clave de licencia es válida en cualquier momento. Es posible que desees hacer esto para limitar ciertas funcionalidades en el tema o plugin solo a usuarios con una clave de licencia válida.

Verificar la validez de una clave de licencia es bastante simple; todo lo que requiere es que realicemos una solicitud remota a nuestro sitio de la tienda con un par de parámetros específicos. Vea la siguiente función:

function edd_sample_theme_check_license() {
$store_url = 'https://yoursite.com';
$item_name = 'Your Item Name';
$license = '834bbb2d27c02eb1ac11f4ce6ffa20bb';
$api_params = array(
'edd_action' => 'check_license',
'license' => $license,
'item_name' => urlencode( $item_name ),
'url' => home_url(),
'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',

);
$response = wp_remote_post( $store_url, array( 'body' => $api_params, 'timeout' => 15, 'sslverify' => true ) );
if ( is_wp_error( $response ) ) {
return false;
}

$license_data = json_decode( wp_remote_retrieve_body( $response ) );

if( $license_data->license == 'valid' ) {
echo 'valid';
exit;
// this license is still valid
} else {
echo 'invalid';
exit;
// this license is no longer valid
}
}

Nota: si estás verificando constantemente la validez de una clave de licencia, quizás para bloquear el uso del plugin o tema cuando la licencia expire, DEBES almacenar en caché los resultados de la verificación para que la solicitud no se realice con cada carga de página. La Transients API es una excelente manera de almacenar en caché las respuestas de la API.

Desactivación

Con Software Licensing, después de que una licencia ha sido activada, también puede ser desactivada remotamente (desde la v1.3). Generalmente, la razón para desactivar una licencia es permitir que una licencia sea activada en un sitio adicional una vez que se ha alcanzado el límite de activación.

El proceso de desactivación es casi idéntico al proceso de activación. Realizamos una solicitud remota y enviamos los detalles de la clave de licencia que estamos desactivando. La solicitud remota se realiza de la siguiente manera:

// data to send in our API request
$api_params = array(
'edd_action' => 'deactivate_license',
'license' => '2ec66bae356be570236531ccba06a45b',
'item_name' => 'Sample Plugin', // the name of our product in EDD
'url' => home_url(),
'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',
);
// Send the remote request
$response = wp_remote_post( 'https://yoursite.com', array( 'body' => $api_params, 'timeout' => 15, 'sslverify' => true ) );

La variable $response será un objeto json que nos dice si la solicitud de desactivación fue exitosa o no. Si es exitosa, la respuesta será:

Nota: La fecha/hora es una marca de tiempo a diferencia de otras respuestas json que serán fecha y hora.

{
	"success": true,
	"license": "deactivated",
	"item_name": "Sample Plugin",
	"expires": 1556150399,
	"payment_id": 2444,
	"customer_name": "John Doe",
	"customer_email": "[email protected]"
}

Si la licencia no se desactiva correctamente, la respuesta será:

{
	"success": false,
	"license": "failed",
	"item_name": "Sample Plugin",
	"expires": 1556150399,
	"payment_id": 2444,
	"customer_name": "John Doe",
	"customer_email": "[email protected]"
}

Una vez que una licencia ha sido desactivada con éxito, la columna Site Count en Descargas → Licencias se decrementará y se registrará una entrada en el registro para que los administradores puedan ver desde dónde se desactivó una licencia.

¿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]