Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Flights Tracker

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.

Funciones Principales

  • 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 estado Landed cuando el avion ya ha aterrizado o la hora de llegada ya ha pasado.
  • Cuenta atrás HH:MM hasta salida real debajo de Landed cuando 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: Landed pendiente 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.

Instalación En WordPress Limpio

Opción Recomendada

  1. Descarga el ZIP instalable flights-tracker-mobile-0.3.32-wordpress.zip.
  2. En WordPress, entra en Plugins > Añadir nuevo > Subir plugin.
  3. Sube flights-tracker-mobile-0.3.32-wordpress.zip.
  4. Activa el plugin Flights Tracker.
  5. Crea las páginas indicadas en la sección Páginas Recomendadas.

Si Descargas Desde GitHub

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.

Páginas Recomendadas

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.

Panel De Administración

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.

Shortcodes

[flights_tracker_user_greeting]

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.

[flights_tracker]

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.

[flights_tracker_saved]

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.

[flights_tracker_archived]

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.

[flights_tracker_debug]

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.

Funcionamiento De Mis Vuelos Y Archivados

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.

Logos De Compañías

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: png con 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 Airlines usa united-airlines.png.
  • Etihad Airways usa etihad-airways.png.
  • Etihad Airways (Abu Dhabi Grand Prix Livery) usa primero etihad-airways.png y, 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.

PDF De Vuelos Archivados

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 -.

Permisos MySQL

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.

Compatibilidad Con Temas

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:

  1. Instala la versión 0.3.11 o superior del plugin.
  2. Limpia cachés del navegador, caché de WordPress y caché del servidor si existe.
  3. Inserta el shortcode dentro de un bloque Shortcode o un bloque de contenido normal.
  4. Comprueba que el shortcode mantiene la tabla correcta:
[flights_tracker table="flight_data.vuelos_live"]
  1. 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.

Tabla De Vuelos Leída

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: arrival o departure.
  • hora_programada: fecha/hora programada.
  • hora_real: fecha/hora real cuando esté disponible.
  • registration: matrícula del avión.

Tablas Internas Creadas

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.

Horas Y Zona Horaria

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');

Fijar La Tabla Desde Código

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]

Recomendación Final

Para una instalación limpia, crea como mínimo estas dos páginas:

  1. /dashboard/ con [flights_tracker_user_greeting]
  2. /vuelos/ con [flights_tracker table="flight_data.vuelos_live"]
  3. /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"]

Releases

Packages

Contributors

Languages