Login
Get Started

Documentación de Easy Digital Downloads

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

Licencias de Software – Activación, Comprobació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 Licencias de Software. Consulte este documento solo si no está utilizando el actualizador o si es para referencia:
Consulte nuestra documentación sobre cómo integrar actualizaciones automáticas para sus plugins de WordPress.
Consulte nuestra documentación sobre cómo integrar actualizaciones automáticas para sus temas de WordPress.

Activación

Con Licencias de Software, para que una clave de licencia se utilice por completo, debe estar activada. Esto puede ocurrir de una de estas dos maneras:

  1. Un administrador del sitio puede hacer clic manualmente en el enlace "Activar" de 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 Licencias de Software toman estos ejemplos y los integran perfectamente 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 añadido 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 su descarga tras adquirir 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 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 control 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ú de Plugins llamado "Licencia del Plugin". Estamos utilizando 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 "activa". 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 lo ha hecho. Vea la captura de pantalla a continuación:

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

El botón de activar es solo un campo de entrada simple con un tipo de "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 "activado" y el estado de la licencia reflejará el estado recién activado en el panel de control de tu tienda 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 introduce una clave de licencia no válida, se mostrará un mensaje de error:

Comprobación

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

Comprobar la validez de una clave de licencia es bastante simple; todo lo que requiere es que realicemos una solicitud remota a nuestro sitio web 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 comprobando 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 comprobación para que la solicitud no se realice con cada carga de página. La API de Transitorios 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). Por lo general, la razón para desactivar una licencia es permitir que una licencia se active 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 tiene éxito, 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 puede desactivar, 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 *Recuento de Sitios* 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.

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]