Licencias de Software 3.8 introdujo la capacidad de establecer requisitos mínimos de plataforma para los productos. Si un cliente no cumple con esos requisitos, no recibirá actualizaciones automáticas a través de la API.
Prerrequisitos de la API
Para que esta función funcione correctamente, las versiones de plataforma del cliente deben enviarse junto con la solicitud de API que verifica si hay una actualización.
Si estás usando el actualizador de plugins de nuestro sitio, eso significa que tu producto necesita incluir la versión 1.9 o superior de la clase EDD_SL_Plugin_Updater.
Si estás usando el actualizador de temas de nuestro sitio, tu producto necesita incluir la versión 1.2 o superior.
Si has creado una integración personalizada, necesitas asegurarte de incluir "php_version" y "wp_version" en tu solicitud de API. Consulta nuestra documentación de la API para más detalles.
Si el sitio de un cliente no incluye la(s) versión(es) de plataforma en la solicitud de API, entonces esos requisitos no se verificarán y el usuario aún podría recibir la actualización.
Configuración de requisitos para un producto
Para configurar los requisitos de un producto, edita el producto en Descargas > Editar. En la barra lateral derecha, busca un metabox llamado "Requisitos de Descarga". Se ve así:

Simplemente ingresa tus versiones mínimas requeridas y guarda. Las versiones que queden en blanco no se verificarán ni serán requeridas.
Añadir requisitos personalizados
Por defecto, Licencias de Software soporta versiones de PHP y WordPress, aunque tus propias dependencias pueden ser añadidas con algo de código personalizado. Se requieren dos pasos:
1. Añade tu dependencia al metabox
Añadir una nueva dependencia se hace con un filtro simple como este, que debe ser añadido a tu propio sitio:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['your-platform-id'] = 'Your Platform Display Name';
return $platforms;
} );
Reemplaza your-platform-id con una versión única y amigable de slug de tu nombre de dependencia, y reemplaza Your Platform Display Name con la versión amigable para mostrar. Aquí tienes un ejemplo de cómo añadir Easy Digital Downloads como requisito:
add_filter( 'edd_sl_platforms', function( $platforms ) {
$platforms['easy-digital-downloads'] = 'Easy Digital Downloads';
return $platforms;
} );
Una vez añadido, tu plataforma aparecerá en el metabox:

2. Incluye la versión de la dependencia en tu solicitud de API
Al verificar si hay una nueva actualización a través de la API (dentro de tu producto), necesitas enviar el número de versión actual de la dependencia en la solicitud de API. Para hacerlo, simplemente tienes que añadir un nuevo argumento: {your platform ID}_version.
Una solicitud de verificación de versión normalmente se ve así:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com
Pero con nuestro nuevo argumento, se vería así:
https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com&easy-digital-downloads_version=1.0
Nota la adición de &easy-digital-downloads_version=1.0 al final.
Si estás usando un actualizador personalizado, puedes añadir el nuevo argumento directamente a los parámetros de la API enviados con la solicitud:
$api_params = array( 'edd_action' => 'get_version', 'license' => ! empty( $data['license'] ) ? $data['license'] : '', 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, 'version' => $this->version, 'slug' => $data['slug'], 'author' => $data['author'], 'url' => home_url(), 'beta' => ! empty( $data['beta'] ), 'php_version' => phpversion(), 'wp_version' => get_bloginfo( 'version' ), 'easy-digital-downloads_version' => defined( 'EDD_VERSION' ) ? EDD_VERSION : '', // current version number );
Si estás usando nuestra clase de actualizador de plugins (versión 1.9 o superior), entonces puedes añadir este argumento a la solicitud de API usando un filtro. Este filtro debe ser parte de tu plugin, ya que se ejecuta en los sitios de tus clientes:
add_filter( 'edd_sl_plugin_updater_api_params', function( $api_params, $api_data, $plugin_file ) {
/*
* Make sure $plugin_file matches your plugin's file path. You should have a constant for this
* or can use __FILE__ if this code goes in your plugin's main file.
*/
if ( __FILE__ === $plugin_file ) {
// Dynamically retrieve the current version number.
$api_params['easy-digital-downloads_version'] = defined( 'EDD_VERSION' ) ? EDD_VERSION : '';
}
return $api_params;
}, 10, 3 );
Asegúrate de reemplazar easy-digital-downloads con el ID único que hayas elegido para tu dependencia, y defined( 'EDD_VERSION' ) ? EDD_VERSION : '' con el número de versión actual. Este valor necesita poder ser recuperado dinámicamente por el sitio del cliente.
