Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/idifusal/plugin-appointment-ingrid/archive/refs/heads/main.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
Plugin de Citas para WordPress - Ingrid
Un plugin completo de WordPress para gestionar citas con interfaz tipo Calendly, panel de administración y base de datos integrada.
🚀 Características
- Plugin nativo de WordPress: Integración completa con WP
- Interfaz tipo Calendly: Selección intuitiva de fecha y hora
- Triggers globales: Cualquier botón con clase
appointment-buttonabre el modal - Panel de administración: Gestión completa de citas desde el admin de WP
- Gestión de slots con FullCalendar: Bloquea y desbloquea slots manualmente desde el admin
- Base de datos: Almacenamiento seguro en tablas de WordPress
- Shortcode:
[appointment_booking]para insertar en cualquier página - AJAX: Procesamiento asíncrono sin recargar página
- Integración de pagos: Redirección automática a SepPay
- Emails automáticos: Confirmaciones y notificaciones
- Horarios configurables: Personalización completa desde el admin
- Bootstrap Icons: Iconografía moderna y consistente
- Responsive: Funciona perfectamente en móviles y desktop
🎨 Diseño
- Color principal: Azul #001D55
- Color de acento: Amarillo #F4B008
- Tipografía: System fonts para mejor rendimiento
- Animaciones suaves: Transiciones CSS para mejor UX
📋 Campos del formulario
Información requerida:
- Nombre completo
- Teléfono
- Dirección completa (calle, ciudad, estado, código postal)
Información opcional:
- Nombre de empresa
- Mensaje adicional
🔧 Instalación
Opción 1: Instalación manual
- Descarga todos los archivos del plugin
- Sube la carpeta
plugin-appointment-ingrida/wp-content/plugins/ - Activa el plugin desde el panel de WordPress
- Ve a Citas > Configuración para personalizar horarios
Opción 2: Instalación por ZIP
- Comprime todos los archivos en un ZIP
- Ve a Plugins > Añadir nuevo > Subir plugin
- Sube el archivo ZIP y activa el plugin
💻 Uso
Mostrar el formulario de citas:
[appointment_booking]
Opciones del shortcode:
[appointment_booking button_text="Reservar mi cita"]
[appointment_booking button_class="mi-clase-css"]
Botones globales:
Cualquier botón con la clase appointment-button abrirá automáticamente el modal:
<button class="appointment-button">
<i class="bi bi-calendar-plus"></i>
Agendar Cita
</button>
<a href="#" class="appointment-button">Reservar Ahora</a>
Atajos de teclado:
- Ctrl + Shift + A: Abrir modal de citas
- Escape: Cerrar modal
Panel de administración:
- Citas > Todas las Citas: Ver y gestionar todas las citas
- Citas > Gestión de Slots: Bloquear/desbloquear slots manualmente con FullCalendar
- Citas > Configuración: Personalizar horarios y opciones
🛠️ Estructura del plugin
plugin-appointment-ingrid/
├── appointment-ingrid.php # Archivo principal del plugin
├── assets/
│ ├── css/
│ │ └── appointment-style.css # Estilos del frontend
│ └── js/
│ └── appointment-script.js # JavaScript del frontend
├── templates/
│ └── appointment-modal.php # Template del modal de citas
├── admin/
│ ├── appointments-list.php # Lista de citas en el admin
│ ├── calendar-admin.php # Gestión de slots con FullCalendar
│ └── settings.php # Página de configuración
├── example-usage.html # Ejemplo de uso del plugin
└── README.md # Documentación
⚙️ Configuración
Horarios de trabajo
Configurable desde Citas > Configuración:
- Días de la semana activos/inactivos
- Horas de inicio y fin por día
- Duración de citas (30, 45, 60, 90, 120 minutos)
- Días de anticipación mínima
Base de datos
El plugin crea automáticamente las siguientes tablas:
wp_appointment_ingrid:
- Información de la cita (fecha, hora, estado)
- Datos del cliente (nombre, email, teléfono, dirección)
- Información adicional (empresa, mensaje)
- Timestamps de creación
wp_appointment_ingrid_blocked_slots:
- Slots bloqueados manualmente por el administrador
- Fecha y hora del slot
- Timestamp de creación del bloqueo
Estados de citas
- Pendiente: Recién creada, esperando confirmación
- Confirmada: Cita confirmada por el administrador
- Completada: Cita realizada
- Cancelada: Cita cancelada
🔧 Funcionalidades del admin
Lista de citas
- Ver todas las citas en formato tabla
- Filtrar por estado y fecha
- Cambiar estado de citas
- Ver detalles completos de cada cita
- Estadísticas rápidas por estado
Gestión de Slots (FullCalendar)
- Acceso seguro: Login simple con credenciales (admin / ingrid2025#)
- Vista de calendario interactiva: Interfaz visual con FullCalendar
- Bloqueo manual de slots: Haz clic en cualquier slot para bloquearlo
- Desbloqueo fácil: Haz clic en un slot bloqueado para desbloquearlo
- Visualización de citas: Ve las citas confirmadas y pendientes en el calendario
- Códigos de color:
- 🔴 Rojo: Slots bloqueados manualmente
- 🟢 Verde: Citas confirmadas
- 🟡 Amarillo: Citas pendientes
- Lógica de disponibilidad: Los slots bloqueados no aparecen como disponibles para los usuarios
Configuración
- Horarios de trabajo personalizables
- Duración de citas configurable
- Email de administrador
- Activar/desactivar emails automáticos
📧 Sistema de emails
Email de confirmación al cliente
- Enviado automáticamente al crear la cita
- Incluye todos los detalles de la reserva
- Personalizable desde el código
Notificación al administrador
- Email enviado cuando se crea una nueva cita
- Configurable desde Citas > Configuración
💳 Sistema de Pagos
Integración con SepPay
- Redirección automática: Después de confirmar los datos, el usuario es dirigido a SepPay
- URL configurada:
https://seppay.com/s/al?a=MUs0BS9x2a27XL3%2Bs77HOQ&lang=es - Validación de pagos: Si el monto no es correcto, la cita se cancela automáticamente
- Flujo completo: Selección → Datos → Confirmación → Pago → Cita confirmada
Proceso de pago:
- Usuario completa el formulario de cita
- Confirma sus datos personales
- Ve el resumen de la cita y advertencia de pago
- Es redirigido a SepPay en nueva ventana
- Completa el pago por el monto exacto
- Cita queda confirmada en el sistema
🔮 Próximas funcionalidades
- ✅ Integración con pasarela de pagos (SepPay)
- Sincronización con Google Calendar
- Recordatorios automáticos por email/SMS
- API REST para integraciones externas
- Campos personalizables en el formulario
- Múltiples servicios y precios
- Webhook de confirmación de pagos
📱 Compatibilidad
WordPress
- ✅ WordPress 5.0+
- ✅ PHP 7.4+
- ✅ MySQL 5.6+
Navegadores
- ✅ Chrome 80+
- ✅ Firefox 75+
- ✅ Safari 13+
- ✅ Edge 80+
- ✅ Dispositivos móviles
🛡️ Seguridad
- Nonces de WordPress para AJAX
- Sanitización de todos los datos de entrada
- Verificación de permisos de usuario
- Escape de salida para prevenir XSS
- Preparación de consultas SQL
🌐 Internacionalización
- Preparado para traducciones
- Text domain:
appointment-ingrid - Archivos .pot incluidos
- Compatible con WPML y Polylang
🤝 Contribución
Este es un proyecto en desarrollo. Las mejoras y sugerencias son bienvenidas.
Para desarrolladores:
- Fork el repositorio
- Crea una rama para tu feature
- Haz commit de tus cambios
- Envía un Pull Request
Desarrollado con ❤️ para Ingrid
Versión: 1.0.0
Requiere WordPress: 5.0 o superior
Probado hasta: 6.4
Licencia: GPL v2 o superior