Documentación: Implementación de Actualizaciones Automáticas de Plugins

Esta guía explica cómo integrar tus plugins de WordPress con el sistema de actualizaciones alojado en https://descargas.smsenlinea.com.


1. Concepto General

WordPress busca periódicamente actualizaciones para los plugins instalados. Añadiremos un código a tu plugin que le indicará a WordPress que debe consultar nuestra API personalizada (https://descargas.smsenlinea.com/api/update.php) para buscar nuevas versiones. La API verificará si hay una versión más reciente y si la licencia del usuario (si aplica) es válida, y responderá a WordPress para que muestre (o no) el aviso de actualización en el panel de administración.


2. Preparación del Lado del Servidor

Asegúrate de que la base de datos y la API en descargas.smsenlinea.com estén correctamente configuradas.

2.1. Requisitos en la Base de Datos (Tabla plugins)

Cada plugin debe tener la siguiente información correctamente configurada en la tabla plugins:

Si faltan estas columnas, usa el siguiente código SQL en phpMyAdmin (pestaña SQL):

ALTER TABLE `plugins` ADD COLUMN `update_identifier` VARCHAR(100) NULL DEFAULT NULL UNIQUE AFTER `status`, ADD COLUMN `requires_license` TINYINT(1) NOT NULL DEFAULT 0 AFTER `update_identifier`, ADD COLUMN `changelog` TEXT NULL DEFAULT NULL AFTER `requires_license`, ADD COLUMN `author` VARCHAR(100) NULL DEFAULT NULL AFTER `changelog`, ADD COLUMN `requires` VARCHAR(20) NULL DEFAULT NULL AFTER `author`, ADD COLUMN `tested` VARCHAR(20) NULL DEFAULT NULL AFTER `requires`;

2.2. Endpoint de la API de Actualizaciones

El archivo api/update.php ya está configurado para manejar esto, siempre que la base de datos tenga las columnas correctas.


3. Código a Añadir Dentro de Cada Plugin de WordPress

Este es el código PHP que debe añadirse al **archivo principal** de cada plugin.

3.1. Localizar el Archivo Principal

Busca el archivo PHP principal dentro de la carpeta del plugin. Generalmente tiene el mismo nombre que la carpeta y contiene comentarios como /* Plugin Name: ... */ al principio.

3.2. Añadir el Código

Copia el siguiente bloque de código completo y pégalo al **final** del archivo principal del plugin, justo antes de la etiqueta de cierre ?> (si existe).

<?php // --- INICIO: CÓDIGO PARA ACTUALIZACIONES AUTOMÁTICAS --- // Define la URL de tu API de actualizaciones (NO CAMBIAR si la API está en esa URL) define('MI_PLUGIN_UPDATE_API_URL', 'https://descargas.smsenlinea.com/api/update.php'); // ========================================================================= // == ¡¡¡ PERSONALIZAR AQUÍ !!! == // ========================================================================= // 1. Define el identificador único de ESTE plugin. // Debe coincidir EXACTAMENTE con 'update_identifier' en la base de datos. define('MI_PLUGIN_UNIQUE_IDENTIFIER', 'pon_aqui_el_identificador_unico'); // 2. Define la ruta relativa al archivo principal del plugin desde la carpeta 'plugins'. // Ejemplo: 'mi-plugin-whatsapp/mi-plugin-whatsapp.php' define('MI_PLUGIN_FILE_PATH', 'pon_aqui_la_ruta/al_archivo_principal.php'); // 3. Define el nombre de la opción donde se guarda la clave de licencia en WordPress. // (SOLO si el plugin requiere licencia). Si no requiere, puedes dejarlo así. define('MI_PLUGIN_LICENSE_OPTION_NAME', 'mi_plugin_opcion_licencia'); // ========================================================================= // == NO CAMBIAR NADA DEBAJO DE ESTA LÍNEA == // ========================================================================= // (El resto del código PHP proporcionado en la respuesta anterior va aquí...) // (...) ¡Asegúrate de incluir las funciones mi_plugin_check_for_update y mi_plugin_api_details completas! (...) // --- FIN: CÓDIGO PARA ACTUALIZACIONES AUTOMÁTICAS --- ?>

Importante: Reemplaza el bloque (...) de arriba con las funciones completas `mi_plugin_check_for_update` y `mi_plugin_api_details` que te proporcioné anteriormente.

3.3. Personalización Obligatoria

Dentro del código que pegaste, debes modificar **obligatoriamente** las siguientes líneas marcadas con resaltado:

  1. define('MI_PLUGIN_UNIQUE_IDENTIFIER', '...');
    Reemplaza 'pon_aqui_el_identificador_unico' por el valor exacto que está en la columna update_identifier de la base de datos para este plugin específico. (Ejemplo: 'plugin-whatsapp-wordpress-woocoomerce-gratis').
  2. define('MI_PLUGIN_FILE_PATH', '...');
    Reemplaza 'pon_aqui_la_ruta/al_archivo_principal.php' por la ruta correcta desde wp-content/plugins/ hasta el archivo principal.
    • Ejemplo 1: Si el archivo es wp-content/plugins/mi-plugin/mi-plugin.php, usa 'mi-plugin/mi-plugin.php'.
    • Ejemplo 2: Si el archivo es wp-content/plugins/mi-plugin.php, usa 'mi-plugin.php'.
  3. define('MI_PLUGIN_LICENSE_OPTION_NAME', '...');
    (Solo si requires_license es 1 en la base de datos). Reemplaza 'mi_plugin_opcion_licencia' por el nombre real de la opción que usa tu plugin para guardar la clave de licencia en la base de datos de WordPress (usando get_option() y update_option()). Si el plugin no maneja licencias, puedes ignorar esta línea o dejarla como está (el código enviará una clave vacía).

3.4. Guardar y Comprimir

  1. Guarda los cambios en el archivo PHP principal del plugin.
  2. Vuelve a comprimir todos los archivos del plugin en un nuevo archivo .zip. Asegúrate de que los archivos queden en la raíz del .zip.

4. Subir la Nueva Versión del Plugin al Servidor

  1. Ve al panel de administración de descargas.smsenlinea.com.
  2. Edita el plugin correspondiente.
  3. Sube el nuevo archivo .zip (el que contiene el código de actualización).
  4. ¡Muy Importante! Actualiza el número de version en la base de datos para que sea mayor que la versión anterior (ej: "1.5.0" -> "1.5.1").
  5. Actualiza el campo changelog en la base de datos con los cambios de esta nueva versión.
  6. Guarda los cambios en el panel de administración.

5. Manejo de Claves de Licencia (Si Aplica)

Si un plugin tiene requires_license = 1:


6. Pruebas

  1. En un sitio de WordPress de prueba, instala una versión anterior del plugin (sin el código de actualización).
  2. Activa el plugin.
  3. (Si usa licencia) Guarda una clave de licencia válida en su configuración.
  4. Ahora, actualiza manualmente el plugin subiendo la versión nueva (con el código de actualización incluido) a través de "Plugins" -> "Añadir nuevo" -> "Subir plugin". Reemplaza la versión anterior.
  5. Ve a "Escritorio" -> "Actualizaciones" y haz clic en "Comprobar de nuevo". Espera un momento. El plugin no debería aparecer como actualizable.
  6. Simula una futura actualización: En descargas.smsenlinea.com, edita el plugin en la base de datos: incrementa el número de version (ej: "1.5.1" -> "1.5.2") y actualiza el changelog.
  7. Vuelve al sitio de WordPress de prueba, ve a "Escritorio" -> "Actualizaciones" y haz clic en "Comprobar de nuevo".
  8. ¡Ahora el plugin **debería aparecer** en la lista de actualizaciones! Verifica la versión y el changelog.
  9. Haz clic en "Actualizar ahora" y confirma que se instale correctamente.

Fin de la documentación.