Esta guía explica cómo integrar tus plugins de WordPress con el sistema de actualizaciones alojado en https://descargas.smsenlinea.com.
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.
Asegúrate de que la base de datos y la API en descargas.smsenlinea.com estén correctamente configuradas.
plugins)Cada plugin debe tener la siguiente información correctamente configurada en la tabla plugins:
version: La versión más reciente disponible (ej: "1.6.0").update_identifier: Un identificador único para este plugin (se recomienda usar el mismo valor que el slug). Este valor se usará en el código del plugin.requires_license: 1 si el plugin necesita una licencia válida para actualizarse, 0 si no.changelog: Texto (puede ser HTML simple como <p>, <ul>, <li>) describiendo los cambios de la última versión. Se mostrará en los detalles de la actualización.author: Nombre del autor del plugin (ej: "SmsEnLinea").requires: Versión mínima de WordPress requerida (ej: "5.0").tested: Versión de WordPress hasta la cual ha sido probado (ej: "6.4").file_path: La ruta relativa dentro de la carpeta uploads/files/ al archivo .zip de la versión más reciente (ej: plugin-68c5e75bb1ada3.23353911-wc-smsenlinea-notifier-1.5.0.zip).Si faltan estas columnas, usa el siguiente código SQL en phpMyAdmin (pestaña SQL):
https://descargas.smsenlinea.com/api/update.phpPOSTaction: Siempre será 'plugin_information'.update_identifier: El identificador único del plugin (debe coincidir con la base de datos).version: La versión actual instalada en el sitio del usuario.license_key: (Opcional) La clave de licencia ingresada por el usuario.slug, new_version, url, package, sections, etc.).package vacío y un mensaje en sections->changelog o upgrade_notice.El archivo api/update.php ya está configurado para manejar esto, siempre que la base de datos tenga las columnas correctas.
Este es el código PHP que debe añadirse al **archivo principal** de cada plugin.
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.
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).
Importante: Reemplaza el bloque (...) de arriba con las funciones completas `mi_plugin_check_for_update` y `mi_plugin_api_details` que te proporcioné anteriormente.
Dentro del código que pegaste, debes modificar **obligatoriamente** las siguientes líneas marcadas con resaltado:
define('MI_PLUGIN_UNIQUE_IDENTIFIER', '...');'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').
define('MI_PLUGIN_FILE_PATH', '...');'pon_aqui_la_ruta/al_archivo_principal.php' por la ruta correcta desde wp-content/plugins/ hasta el archivo principal.
wp-content/plugins/mi-plugin/mi-plugin.php, usa 'mi-plugin/mi-plugin.php'.wp-content/plugins/mi-plugin.php, usa 'mi-plugin.php'.define('MI_PLUGIN_LICENSE_OPTION_NAME', '...');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).
.zip. Asegúrate de que los archivos queden en la raíz del .zip.descargas.smsenlinea.com..zip (el que contiene el código de actualización).version en la base de datos para que sea mayor que la versión anterior (ej: "1.5.0" -> "1.5.1").changelog en la base de datos con los cambios de esta nueva versión.Si un plugin tiene requires_license = 1:
update_option('nombre_opcion', $clave_ingresada); para guardar la clave.'nombre_opcion' debe coincidir exactamente con lo definido en MI_PLUGIN_LICENSE_OPTION_NAME.get_option('nombre_opcion', ''); para recuperar y enviar la clave a la API.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.Fin de la documentación.