Plugin de WordPress para consultar una tabla externa de vuelos, mostrar tarjetas optimizadas para móvil y permitir que cada usuario conectado guarde combinaciones de llegada/salida por matrícula.
El plugin está pensado para operaciones en aeropuerto base, por ejemplo AGP, donde una misma matrícula puede hacer varios vuelos en el mismo día.
- Buscador móvil de vuelos desde la tabla
vuelos_live. - Guardado privado por usuario de pares de vuelos relacionados por matrícula, o de un vuelo suelto si la pareja aun no esta disponible.
- Marcado visual en el buscador cuando un vuelo ya está guardado en
Mis vuelos. - Tarjeta comprimida con mini-tabla de vuelo y horario para evitar confusiones.
- Logo o iniciales de compañía en las tarjetas de
Mis vuelos. - Cuenta atrás HH:MM de llegada en
Mis vuelos, con estadoLandedcuando el avion ya ha aterrizado o la hora de llegada ya ha pasado. - Cuenta atrás HH:MM hasta salida real debajo de
Landedcuando el guardado ya tiene llegada en tierra y salida vinculada. - Botón para agregar despues la llegada o salida faltante desde
Mis vuelos. - Orden operativo en
Mis vuelos:Landedpendiente primero por hora de salida, próximos por hora real de llegada después y realizados al final. - Uso de hora real cuando existe y hora programada como respaldo.
- Archivado automático una hora después de la salida real, o programada si no hay real.
- Página independiente de
Vuelos archivados, organizada por años y meses. - PDF descargable global, por año, por mes o por intervalo de meses.
- Pantalla de administración para controlar vuelos por usuario y descargar PDF por usuario o conjunto.
- Diagnóstico para comprobar permisos de lectura sobre la tabla de vuelos.
- Descarga el ZIP instalable
flights-tracker-mobile-0.3.32-wordpress.zip. - En WordPress, entra en
Plugins > Añadir nuevo > Subir plugin. - Sube
flights-tracker-mobile-0.3.32-wordpress.zip. - Activa el plugin
Flights Tracker. - Crea las páginas indicadas en la sección
Páginas Recomendadas.
Si usas Code > Download ZIP en GitHub, asegúrate de que dentro del primer nivel del ZIP esté el archivo principal del plugin:
flights-tracker/flights-tracker.php
Si el ZIP contiene carpetas extra por encima, por ejemplo repo-main/flights-tracker/..., reempaqueta la carpeta flights-tracker antes de subirlo a WordPress.
Estas URLs son sugeridas. Puedes cambiar los nombres, pero mantenerlas así ayuda a que el plugin sea fácil de entender y documentar.
| Página | Slug recomendado | URL recomendada | Shortcode |
|---|---|---|---|
| Dashboard | dashboard |
/dashboard/ |
[flights_tracker_user_greeting] |
| Buscador de vuelos | vuelos |
/vuelos/ |
[flights_tracker table="flight_data.vuelos_live"] |
| Mis vuelos | mis-vuelos |
/mis-vuelos/ |
[flights_tracker_saved table="flight_data.vuelos_live"] |
| Vuelos archivados | vuelos-archivados |
/vuelos-archivados/ |
[flights_tracker_archived table="flight_data.vuelos_live"] |
| Diagnóstico | diagnostico-vuelos |
/diagnostico-vuelos/ |
[flights_tracker_debug table="flight_data.vuelos_live"] |
La página de diagnóstico solo muestra contenido a usuarios administradores.
Los administradores pueden entrar desde el menú lateral del panel de WordPress:
Flights Tracker
Qué muestra:
- Usuarios registrados.
- Vuelos activos visibles por usuario.
- Registros obsoletos que siguen en la tabla de guardados pero ya no se pueden pintar en
Mis vuelos. - Vuelos archivados por usuario.
- Total de vuelos controlados por usuario.
- Botón para descargar PDF de un usuario concreto.
- Botón para descargar PDF conjunto con todos los vuelos archivados.
- Botón para eliminar definitivamente vuelos obsoletos por usuario o todos juntos.
Muestra un saludo para el usuario conectado.
Ejemplo recomendado para la página /dashboard/, debajo del título Dashboard:
[flights_tracker_user_greeting]
Ejemplo cambiando el texto:
[flights_tracker_user_greeting text="Hola"]
Qué hace:
- Muestra
Bienvenido Usuario. - Usa el nombre del usuario conectado.
- Si el nombre está en minúsculas, lo muestra con la primera letra en mayúscula.
- Si el usuario no está conectado, no muestra nada.
Muestra el buscador principal de vuelos.
Ejemplo recomendado:
[flights_tracker table="flight_data.vuelos_live"]
Ejemplo con todos los atributos:
[flights_tracker base="AGP" table="flight_data.vuelos_live" refresh="60" per_page="25"]
Atributos:
| Atributo | Valor por defecto | Descripción |
|---|---|---|
base |
AGP |
Código IATA del aeropuerto base. |
table |
vuelos_live |
Tabla de vuelos. Puede incluir base de datos, por ejemplo flight_data.vuelos_live. |
refresh |
60 |
Segundos entre actualizaciones automáticas. Mínimo 15. |
per_page |
25 |
Vuelos por página. Mínimo 5, máximo 50. |
Qué hace:
- Carga vuelos del rango de fechas seleccionado.
- Permite filtrar por llegada, salida o ambos.
- Permite buscar por matrícula, número de vuelo o compañía.
- Permite guardar una combinacion de vuelos relacionados por matricula o guardar solo el vuelo seleccionado.
Muestra la zona privada del usuario conectado.
Ejemplo recomendado:
[flights_tracker_saved table="flight_data.vuelos_live"]
Atributos:
| Atributo | Valor por defecto | Descripción |
|---|---|---|
table |
vuelos_live |
Tabla de vuelos usada para seguir actualizando los vuelos guardados mientras siguen vivos. |
Qué hace:
- Muestra
Mis vuelos, con los vuelos guardados que todavía se sincronizan con la tabla live. - Permite marcar un vuelo como
Realizado. - Permite agregar la llegada o salida faltante cuando ya aparece en la tabla live.
- Permite eliminar vuelos activos.
- Al marcar un vuelo como
Realizado, la ficha abierta se recoge automáticamente.
Muestra la zona privada de vuelos archivados del usuario conectado.
Ejemplo recomendado:
[flights_tracker_archived table="flight_data.vuelos_live"]
| Atributo | Valor por defecto | Descripción |
|---|---|---|
table |
vuelos_live |
Tabla de vuelos usada para mover a archivados los vuelos pendientes antes de mostrar el archivo. |
Qué hace:
- Muestra botones directos por años cerrados y meses del año en curso con el total de vuelos archivados.
- Incluye un selector de mes/año tipo fecha para abrir un mes concreto.
- Al entrar en un mes, muestra la lista de vuelos archivados lista para imprimir.
- Permite eliminar vuelos archivados.
- Permite descargar PDF global, PDF de un año, PDF de un mes o PDF de un intervalo de meses.
Muestra información técnica para comprobar que WordPress puede leer la tabla de vuelos.
Ejemplo recomendado:
[flights_tracker_debug table="flight_data.vuelos_live"]
Ejemplo con aeropuerto base:
[flights_tracker_debug base="AGP" table="flight_data.vuelos_live"]
Atributos:
| Atributo | Valor por defecto | Descripción |
|---|---|---|
base |
AGP |
Código IATA usado para contar vuelos del aeropuerto base. |
table |
vuelos_live |
Tabla que se quiere comprobar. |
Qué muestra:
- Base de datos actual de WordPress.
- Tabla consultada.
- Total de filas encontradas.
- Total de vuelos del aeropuerto base.
- Llegadas y salidas disponibles.
- Compañías detectadas y nombre exacto del PNG que debe subirse para cada logo.
- Último error SQL, si existe.
Cuando un usuario guarda un vuelo, el plugin guarda una copia interna con:
- matrícula
- compañía
- número de vuelo de llegada
- número de vuelo de salida
- hora programada de llegada
- hora real de llegada
- hora programada de salida
- hora real de salida
- estado de llegada y salida
- fecha/hora de guardado
- fecha/hora de marcado como realizado
Mientras el vuelo sigue en Mis vuelos, el plugin continúa sincronizando las horas con la tabla live.
Una hora después de la salida real, el vuelo pasa automáticamente a Vuelos archivados. Si no existe hora real de salida, usa la hora programada como respaldo.
En Vuelos archivados, el vuelo ya no se actualiza. Queda fijo hasta que el usuario decida eliminarlo.
Esto evita que los vuelos desaparezcan cuando la tabla live borra o rota datos antiguos.
Las tarjetas de Mis vuelos muestran el logo de la compañía si existe. Si no se encuentra logo, se muestran iniciales limpias.
Para saber el nombre exacto de cada archivo, abre la página de diagnóstico con [flights_tracker_debug table="flight_data.vuelos_live"]. En la tabla Logos de companias verás cada compañía detectada, el archivo esperado y si WordPress ya lo ha encontrado.
Formato recomendado para cada logo:
- Tamaño de archivo:
160x80 px. - Formato:
pngcon fondo transparente, sin marco ni cuadrado de color dentro de la propia imagen. - Peso ideal: menos de
50 KB. - Proporción: lienzo horizontal
2:1, con el logo centrado y margen interior.
Para detección automática por archivo, sube los logos a:
wp-content/uploads/
El nombre del archivo debe ser el slug de la compañía en minúsculas, por ejemplo ryanair.png o air-europa.png. Si la compañía lleva una aclaración entre paréntesis, el plugin buscará primero el nombre base sin esa aclaración.
Ejemplos:
United Airlinesusaunited-airlines.png.Etihad Airwaysusaetihad-airways.png.Etihad Airways (Abu Dhabi Grand Prix Livery)usa primeroetihad-airways.pngy, como alternativa,etihad-airways-abu-dhabi-grand-prix-livery.png.
Si WordPress guarda la imagen en una subcarpeta de Medios, como wp-content/uploads/2026/07/, el plugin también la encontrará si el nombre del archivo coincide. También se pueden conectar URLs concretas mediante los filtros flights_tracker_airline_logos o flights_tracker_airline_logo_url.
El PDF se descarga desde la página independiente Vuelos archivados.
Opciones disponibles:
- PDF global con todos los vuelos archivados hasta la fecha.
- PDF de un año concreto.
- PDF de un mes concreto.
- PDF de un intervalo de meses.
Incluye columnas limpias para impresión:
Fecha
Realizado
Matrícula
Compañía
Llegada
Llegada/real
Salida
Salida/real
Ruta
Archivado
Las columnas Llegada/real y Salida/real muestran:
hora programada / hora real
Ejemplo:
Llegada/real: 07:35/07:48
Salida/real: 09:35/09:49
Si no existe hora real, se muestra -.
Si WordPress y la tabla de vuelos están en bases de datos distintas dentro del mismo servidor MariaDB/MySQL, el usuario de WordPress necesita permiso de lectura sobre la tabla de vuelos.
Ejemplo habitual:
Base WordPress: wordpress
Usuario WordPress: wpuser
Base vuelos: flight_data
Tabla vuelos: vuelos_live
En phpMyAdmin entra como root, abre la pestaña SQL y ejecuta:
GRANT SELECT ON `flight_data`.`vuelos_live` TO 'wpuser'@'%';
FLUSH PRIVILEGES;Para comprobarlo:
SHOW GRANTS FOR 'wpuser'@'%';Debe aparecer un permiso parecido a:
GRANT SELECT ON `flight_data`.`vuelos_live` TO `wpuser`@`%`Sin este permiso, el plugin puede cargar visualmente, pero mostrará 0 vuelos o dará error SQL porque WordPress no puede leer la tabla externa.
El plugin funciona mediante shortcodes y no depende de GeneratePress Premium, GenerateBlocks ni de un tema concreto.
Está preparado para usarse con temas estándar de WordPress como Twenty Twenty-Five.
Desde la versión 0.3.13, cuando el plugin está activo también aplica una capa visual para Twenty Twenty-Five:
- Oculta la navegación del encabezado, incluido el menú hamburguesa móvil.
- Oculta el título superior del sitio en el encabezado.
- Oculta el pie completo del tema con logo, nombre del sitio, menús y créditos originales.
- Añade un pie limpio con
© año actual Antonio Marquez. - Reutiliza el logo configurado en WordPress y lo muestra encima del título de cada página.
Si al cambiar de tema el buscador carga visualmente pero aparece un aviso como:
The string did not match the expected pattern.
Revisa estos puntos:
- Instala la versión
0.3.11o superior del plugin. - Limpia cachés del navegador, caché de WordPress y caché del servidor si existe.
- Inserta el shortcode dentro de un bloque
Shortcodeo un bloque de contenido normal. - Comprueba que el shortcode mantiene la tabla correcta:
[flights_tracker table="flight_data.vuelos_live"]
- Si sigue fallando, crea una página privada con el diagnóstico:
[flights_tracker_debug table="flight_data.vuelos_live"]
El error anterior suele indicar que el navegador no pudo construir correctamente la URL de conexión interna con WordPress. Desde la versión 0.3.11, el plugin imprime esa URL directamente dentro del shortcode para evitar depender del tema activo.
El plugin lee estos campos de la tabla live:
id
base_iata
direction
numero_vuelo
aerolinea
origen
destino
hora_programada
hora_real
estado
aircraft_type
registration
last_seen_at
Valores esperados:
direction:arrivalodeparture.hora_programada: fecha/hora programada.hora_real: fecha/hora real cuando esté disponible.registration: matrícula del avión.
El plugin crea sus propias tablas internas en WordPress:
wp_flights_tracker_saved
wp_flights_tracker_archived
El prefijo wp_ cambia si tu WordPress usa otro prefijo de tablas.
Estas tablas guardan los vuelos de cada usuario y los vuelos archivados.
Por defecto, el plugin asume que las horas de vuelos_live están guardadas en UTC y las muestra en la zona horaria configurada en WordPress.
Si tu tabla guarda hora local directamente, añade este filtro en WordPress:
add_filter('flights_tracker_times_are_utc', '__return_false');Si prefieres no escribir el atributo table en cada shortcode, puedes fijar la tabla desde código:
add_filter('flights_tracker_live_table', function () {
return 'flight_data.vuelos_live';
});Con ese filtro, puedes usar:
[flights_tracker]
[flights_tracker_saved]
[flights_tracker_debug]
[flights_tracker_user_greeting]
Para una instalación limpia, crea como mínimo estas dos páginas:
/dashboard/con[flights_tracker_user_greeting]/vuelos/con[flights_tracker table="flight_data.vuelos_live"]/mis-vuelos/con[flights_tracker_saved table="flight_data.vuelos_live"]
Y crea esta página solo para administradores si necesitas comprobar la conexión:
/diagnostico-vuelos/
[flights_tracker_debug table="flight_data.vuelos_live"]