Login
Get Started

Documentación de Easy Digital Downloads

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

Licencias de Software – Problemas comunes y preguntas frecuentes

La Extensión de Licencias de Software para Easy Digital Downloads requiere cierta configuración e integración, y es posible que experimentes algunos problemas. Algunos de ellos se describen aquí con posibles soluciones.

Preguntas frecuentes

¿Cómo contactas a los clientes cuando hay una actualización disponible?

Se recomienda utilizar un servicio de marketing por correo electrónico, como Mailchimp o ConvertKit. No se recomienda WordPress para enviar correos masivos, por lo que el contacto con los usuarios debe realizarse externamente a EDD/WordPress.

¿Es posible vender licencias personalizadas / empresariales?

Aunque no hay soporte integrado para vender licencias personalizadas o empresariales que puedan activarse en un mayor número de sitios, existen soluciones alternativas para que esto funcione. La opción más sencilla es facturar al cliente a través de una factura de Stripe o PayPal. Una vez pagado, crea manualmente un pedido y actualiza el límite de activaciones de la licencia al número de activaciones que deseas que el cliente tenga disponibles.

¿Funciona Licencias de Software con Amazon S3?

Sí, es totalmente compatible sin problemas y sin configuraciones especiales.

¿Los entornos locales / de desarrollo afectan al recuento de activaciones?

Si eliges limitar el número de activaciones de licencia que un cliente puede tener, aún es posible permitirle activar una licencia en su entorno de desarrollo local sin afectar su recuento de activaciones.

Esto permite a tus usuarios mantenerse fácilmente actualizados en sus entornos de prueba y desarrollo sin obtener activaciones de licencia gratuitas.

Para que esto funcione, deben ocurrir dos cosas:

1) Ignorar URLs de Host Local

En tu administrador de WordPress, en
Descargas → Ajustes → Extensiones → Licencias de Software busca una casilla que diga Ignorar URLs de Host Local.  Asegúrate de que esté marcada.

2) Educar a los Clientes

Consulta esta guía sobre cómo ignorar activaciones para sitios de desarrollo.

¿Cómo crear formatos de clave de licencia personalizados?

Las claves de licencia de EDD son por defecto una suma md5 como esta:

e0c7ccc47b2613c82d1073a4214deecc

Si deseas tener algo diferente, con Licencias de Software es tan fácil como crear una función para generar claves únicas y consistentes y engancharla a un filtro llamado edd_sl_generate_license_key.

Los formatos de clave de licencia pueden ser realmente lo que desees, siempre que sean únicos y consistentes. Si quieres claves en este formato:

username_timestamp_licensekey

sdavis2702_20151015120022_e0c7ccc47b2613c82d1073a4214deecc

Puedes usar esta función:

// Example shown how to base the MD5 off of the user's email and purchase date
function pw_edd_license_md5_user_and_date( $key, $license_id, $download_id, $payment_id, $cart_index ) {

    $name      = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
    $date      = get_post_field( 'post_date', $payment_id );
    $timestamp = strtotime($date);
    $nice_date = date( 'Yndhis', $timestamp );
    $license   = md5( $license_id );
    $key       = $name->user_nicename . '_' . $nice_date . '_' . $license;

    return $key;
}
add_filter( 'edd_sl_generate_license_key', 'pw_edd_license_md5_user_and_date', 10, 5 );

Una función más simple usa solo el nombre de usuario y la clave de licencia:

// prepend user's username to license key
function sd_edd_license_username_md5( $key, $license_id, $download_id, $payment_id, $cart_index ) {
    $name      = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
    $license   = md5( $license_id );
    $key       = $name->user_nicename . '_' . $license;

    return $key;
}
add_filter( 'edd_sl_generate_license_key', 'sd_edd_license_username_md5', 10, 5 );

Lo más importante que debes sacar de este documento es que puedes usar cualquier código que produzca cadenas únicas y consistentes y usar esas cadenas como claves de licencia.

Mostrar una lista de las claves de licencia de los clientes

El siguiente código te permitirá recuperar y mostrar una lista de claves de licencia para un cliente específico.

Nota: El “$customer->id” debe ser reemplazado con el ID de cliente real.

$licenses = edd_software_licensing()->licenses_db->get_licenses( array(
		'number'      => -1,
		'customer_id' => $customer->id,
		'orderby'     => 'id',
		'order'       => 'ASC',
	) );

¿Qué sucede si el dominio de mi tienda deja de funcionar?

Te animamos a usar el EDD Software Licensing SDK para gestionar las licencias en tu plugin o tema de WordPress. El SDK no enviará solicitudes de API repetidas a tu sitio si no recibe una respuesta válida.

Si tienes la intención de cambiar de dominio o cerrar un nombre de dominio, lo mejor sería lanzar una actualización que use el nuevo dominio o elimine por completo las llamadas a la API.

Problemas comunes

Personalizar código de ejemplo

El código de ejemplo que viene con Software Licensing puede usar prefijos de función como edd_ y edd_sl_. Estos deben cambiarse para que coincidan con tu propio plugin, y la búsqueda y reemplazo es una excelente manera de hacerlo, pero debes tener cuidado con tu cadena de búsqueda.

Hay funciones con prefijos como edd_action_ que no deben cambiarse. Asegúrate de que solo estás cambiando los prefijos de nombre de tus propias funciones y no los prefijos principales de EDD.

Solución de problemas de actualización

Si estás viendo errores al intentar actualizar plugins y temas desde tu tienda de Software Licensing, aquí tienes algunas cosas que puedes comprobar, dependiendo del error que se esté informando.

Personaliza tu actualizador

Si estás utilizando la clase de actualizador de plugins heredada proporcionada en versiones anteriores de Software Licensing, es probable que estés utilizando la clase EDD_SL_Plugin_Updater para gestionar las licencias y las comprobaciones de actualización. Existe el riesgo de un "conflicto" si otro plugin incluye una versión diferente de la clase EDD_SL_Plugin_Updater de la que estás empaquetando con tu plugin. Puedes renombrar esta clase a algo único para tu plugin, de modo que evite conflictos. Por ejemplo, si el nombre de mi plugin es "My Custom Ads", podría renombrar EDD_SL_Plugin_Updater a MCA_Plugin_Updater y cambiar todas las referencias a ella. Alternativamente, usar el EDD Software Licensing SDK simplificará enormemente la forma en que puedes gestionar las actualizaciones de plugins/temas.

Errores SSL

Hay muchos errores que pueden ser causados por problemas de conectividad SSL; los siguientes se ven comúnmente con Software Licensing.

SSL: el nombre del sujeto del certificado no coincide

Este error significa que el certificado SSL instalado en tu sitio no coincide con tu nombre de dominio principal. Esto puede ocurrir típicamente en entornos de alojamiento compartido y la solución más común es solicitar una dirección IP dedicada a tu proveedor de alojamiento. Si tu proveedor de alojamiento no admite direcciones IP dedicadas, deberás trabajar con tu proveedor de alojamiento para configurar una cadena SSL adecuada que coincida con tu dominio principal, en lugar de un certificado SSL comodín compartido.

SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Este error de Handshake SSL ocurre cuando la versión de OpenSSL en el servidor del sitio que solicita la actualización está obsoleta y no admite los Protocolos SSL que requiere la tienda que entrega la actualización. Hay dos maneras de resolver este problema. La solución ideal es que el sitio que solicita la actualización verifique que su software OpenSSL esté actualizado para su plataforma. OpenSSL es un software de servidor que facilita la comunicación a través del protocolo HTTPS. Si esta no es una solución posible, puede trabajar con su proveedor de hosting o administrador de servidor para configurar su servidor web para que acepte estas versiones SSL obsoletas, pero esto no es ideal ya que permite conexiones menos seguras a su servidor.

Error de cURL 35: Error de conexión SSL

Este error específico con la entrega de actualizaciones de Software Licensing se observa generalmente cuando se utiliza la opción SSL Flexible de Cloudflare. Esta opción causa un problema en cadena con algunas versiones de cURL que existen en el servidor cliente que solicita la actualización. Hay un par de maneras de solucionar esto desde el lado del servidor (sin tener que solicitar al cliente que actualice su versión de cURL). La primera es actualizar a un SSL de pago de Cloudflare. Los certificados SSL de nivel de pago de Cloudflare normalmente no presentan este problema. La otra solución es comprar un certificado SSL de un tercero e instalarlo directamente en su servidor.

Descarga fallida. SSL: ningún nombre de asunto de certificado alternativo coincide con el nombre del host de destino
An error occurred while updating Resurrect: Download failed. SSL: certificate subject name '*.example.com' does not match target host name 'anotherexample.com'

Esto ocurre cuando el sitio del cliente tiene una versión antigua de OpenSSL o cURL. Los dos sitios entonces no pueden comunicarse de forma segura y la actualización falla.

La única solución es que el sitio con la versión antigua del software en su servidor se actualice a las últimas versiones.

Descarga fallida. Certificado de par SSL o clave remota SSH no fue OK

Si sus clientes ven este error al actualizar sus productos, deberá ponerse en contacto con su proveedor de hosting web para informarle que su certificado SSL está mal configurado:

Descarga fallida. Servicio no disponible

Verá este error cuando intente actualizar un plugin o tema en un sitio que también aloja este plugin o tema. Debido a la forma en que Software Licensing se integra con la API de Actualización de WordPress, actualmente no es posible actualizar sus propios temas o plugins desde el sitio que los vende. Cuando WordPress instala una actualización, pone temporalmente su sitio en modo de mantenimiento y, durante ese proceso, su sitio no puede instalar su propia actualización. Para actualizar un plugin o tema desde un sitio que también lo vende, deberá instalar la actualización manualmente.

Descarga fallida. No autorizado / Demasiados redireccionamientos

Este error ocurre al actualizar tu plugin o tema a una nueva versión. Al subir tu nueva versión, si añades un nuevo archivo con tu nueva versión y luego eliminas la fila del archivo anterior, en lugar de reemplazar la versión actual, es posible que ocurra este error. Actualmente somos conscientes de este error y estamos trabajando para resolverlo, sin embargo, la solución simple mientras tanto es hacer clic en el botón 'Actualizar' una segunda vez, para reescribir las claves del archivo, o reemplazar siempre el archivo actual en lugar de añadir tus nuevos archivos en una segunda fila de archivos.

Paquete de actualización no disponible

Cuando aparece este error, normalmente significa:

  1. Hay un problema con la activación de la licencia en el sitio del cliente. Hay pocas cosas que comprobar si un cliente informa de este error. La primera es que el dominio que intentan actualizar ha sido activado para la licencia. Puedes determinar esto yendo a Descargas → Licencias. Luego puedes buscar la clave de licencia que el usuario intenta actualizar y hacer clic en 'Gestionar sitios' para asegurarte de que el dominio en el que se encuentran está en la lista. Si no lo está, puedes añadirlo tú mismo desde el administrador, o hacer que el cliente visite su página de gestión de licencias y lo active él mismo.
  2. El otro resultado es que una licencia está caducada o deshabilitada. Si este es el caso, el cliente necesita renovar su licencia, o un administrador del sitio la ha deshabilitado manualmente.

Carpeta con nombre largo y extraño después del actualizador

Esto sucede cuando el archivo .zip se crea de forma incorrecta. Al crear el archivo .zip final, es importante comprimir la carpeta *y* su contenido en lugar de solo el contenido de la carpeta.

La estructura del archivo zip debería parecerse a esto:

nombre_archivo.zip

– nombre-producto/

— archivo aquí

— otro archivo aquí

En otras palabras, los archivos deben estar en una carpeta y no en la parte superior del archivo zip. Vuelve a empaquetar tu archivo para incluir el nombre de la carpeta dentro y eso lo solucionará.

Integración con CloudFlare

Si estás utilizando CloudFlare como proveedor de CDN, Capa de Caché o SSL, te recomendamos configurar CloudFlare para que omita la caché de todas las URL que contengan la siguiente cadena:

/edd-sl

Este es el punto final de la API para comprobar el estado de la licencia y entregar paquetes de actualización. Si estas URL de punto final se almacenan en caché, puede causar problemas al entregar correctamente las actualizaciones a tus clientes.

PCLZIP_ERR_BAD_FORMAT

Este error no es exclusivo de la plataforma EDD Software Licensing, pero tiene un par de soluciones que puedes comprobar. La primera es que haya suficiente espacio en disco para que el archivo se descargue y descomprima (asume que necesitarás 2 veces el tamaño del archivo .zip para procesar la actualización). Si tu archivo .zip es de 1 MB, necesitarás poco más de 2 MB disponibles para procesar correctamente una actualización. Estos números no son exactamente 2x, pero es una buena medida para empezar.

La otra cosa a verificar es que el archivo .zip no esté corrupto. Puedes probarlo transfiriendo el archivo .zip a otro ordenador (adjunto en un correo electrónico o a través de USB) y tratando de descomprimirlo allí también. Si no se descomprime en un ordenador diferente, es probable que haya un problema con la creación del archivo .zip en el ordenador original.

Este error también puede ser causado por un plugin o un script que está lanzando un error. Cuando la API de licencias de software intenta crear el paquete zip, el error se añade al archivo zip, rompiendo su estructura. Normalmente, esto significa que tu sitio web tiene WP_DEBUG configurado como TRUE en el archivo wp-config.php. Aunque es una buena manera de comprobar si hay errores, es mejor tenerlo configurado como FALSE en un sitio web en producción. Alternativamente, puedes mantenerlo habilitado pero registrar los errores en un archivo en tu servidor, en el archivo wp-contents/debug.log. Haz esto añadiendo las siguientes líneas al archivo wp-config.php:

define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_display', false );
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]