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/josramirez972-debug/gestor-inmobiliario/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.
🏢 Gestor Inmobiliario - Plugin para WordPress
Plugin profesional y modular para WordPress desarrollado en PHP 8.1+ con arquitectura orientada a objetos (OOP), diseñado para gestionar inventarios de propiedades inmobiliarias (venta y arriendo), filtrado asíncrono con AJAX, integración nativa de widgets para Elementor, mapas interactivos con Leaflet / OpenStreetMap y captura de leads con protección antispam.
🌟 Características Principales
1. Gestión de Propiedades (Custom Post Type)
- CPT
gip_property: Registro desacoplado y optimizado con soporte para títulos, editor Gutenberg/clásico, imagen destacada y extractos. - Taxonomías Jerárquicas y Personalizadas:
gip_city: Ciudades.gip_neighborhood: Barrios y sectores.gip_property_type: Tipos de inmueble (Apartamento, Casa, etc.).
- Taxonomías Planas y Estados Comerciales:
gip_operation: Modalidad de negocio (Venta, Arriendo).gip_status: Control de inventario en tiempo real (Disponible, Reservada, Vendida, Arrendada, Inactiva).gip_amenity: Amenidades (Piscina, Ascensor, Vigilancia, etc.).
2. Meta Boxes & WordPress Media API
- Detalles técnicos: Habitaciones, baños, parqueaderos, área construida ($m^2$), área de lote ($m^2$), precio configurable en múltiples divisas (COP / USD) y switch de propiedad destacada.
- Galería Multi-Imagen Nativa: Integración directa con
wp.mediade WordPress para subir y ordenar múltiples imágenes sin recarga y guardadas como metadatos serializados/indexados. - Geolocalización & Multimedia: Campos de latitud y longitud georreferenciadas y URL para tour virtual 360°.
- Ficha de Agente Inmobiliario: Asignación de agente con foto de perfil (
wp.media), cargo, contacto directo vía WhatsApp y correo electrónico.
3. Frontend & Experiencia de Usuario (UX)
- Buscador & Filtros Reactivos (AJAX): Filtrado asíncrono en tiempo real por ciudad, tipo, habitaciones y baños con
fetch()sin dependencias de librerías pesadas en el frontend (Vanilla JavaScript puro). - Mapas con Leaflet & OpenStreetMap: Visualización interactiva y responsive sin costo ni dependencia de API Keys comerciales (Google Maps API), con enlace directo a indicaciones de ruta (Cómo llegar).
- Slider / Galería Interactiva: Galería responsiva con selector de miniaturas, contador de imágenes y navegación táctil/click.
- Formulario de Captura de Prospectos (Leads):
- Procesamiento seguro a través de
admin-post.php. - Notificaciones por correo electrónico al administrador con enlace de retorno.
- Botón directo de contacto a WhatsApp con mensaje preconfigurado y contextualizado al inmueble.
- Validación de políticas de privacidad / RGPD / Habeas Data.
- Procesamiento seguro a través de
4. Integración con Elementor
- Categoría dedicada: Gestor Inmobiliario en el panel de Elementor.
- 3 Widgets nativos:
GIP_Elementor_Listing: Parrilla de propiedades configurable por operación y límite.GIP_Elementor_Search: Formulario de búsqueda avanzada.GIP_Elementor_Featured: Módulo de inmuebles destacados.
- Shortcodes disponibles para cualquier constructor o editor:
[gestor_inmobiliario_busqueda] [gestor_inmobiliario_listado] [gestor_inmobiliario_listado featured="1" limit="3"]
🔒 Arquitectura y Buenas Prácticas de Seguridad
- Patrón Singleton: Instancia única
GIP_Plugin::instance()que evita conflictos en el ciclo de vida de WordPress y doble inicialización mediante la guardaGIP_BOOTSTRAPPED. - Protección CSRF: Uso estricto de Nonces criptográficos en formularios de administración (
gip_save_property), peticiones AJAX (gip_filter) y formularios de contacto (gip_contact). - Control de Capacidades y Permisos: Verificación explícita de
current_user_can('edit_post', $post_id)previa a la persistencia de datos. - Sanitización y Escapado:
- Entrada:
sanitize_text_field,sanitize_email,sanitize_textarea_field,absint,esc_url_raw. - Salida:
esc_html,esc_attr,esc_url,number_format_i18n.
- Entrada:
- Antispam Honeypot: Campo señuelo trampa (
website) indetectable para humanos que bloquea bots automáticos sin necesidad de captchas invasivos. - Template Fallback Pattern: Detección automática en
template_includepara inyectarsingle-gip_property.phpyarchive-gip_property.phpgarantizando compatibilidad con cualquier tema activo.
📂 Estructura del Proyecto
gestor-inmobiliario/
├── assets/
│ ├── css/
│ │ └── public.css # Estilos modulares, CSS Grid, Flexbox y temas responsive
│ └── js/
│ ├── admin.js # Integración con wp.media para galería y avatar de agente
│ └── public.js # Lógica AJAX (fetch), galería interactiva y mapa Leaflet
├── includes/
│ ├── class-gip-plugin.php # Core del plugin (Singleton, CPT, Taxonomías, Meta, AJAX, Mail)
│ └── class-gip-elementor.php # Widgets y controles para Elementor Widget API
├── templates/
│ ├── archive-gip_property.php # Plantilla de listado general de inmuebles
│ └── single-gip_property.php # Ficha detallada de la propiedad y sidebar de contacto
├── gestor-inmobiliario.php # Archivo bootstrap y cabeceras de WordPress
├── .gitignore # Exclusiones de archivos del sistema y temporales
└── README.md # Documentación técnica
🚀 Instalación y Despliegue
Opción 1: Vía Git (Recomendada para desarrolladores)
- Clona el repositorio dentro de tu directorio de plugins de WordPress:
cd wp-content/plugins/ git clone https://github.com/josramirez972-debug/gestor-inmobiliario.git - Activa el plugin desde el panel de administración de WordPress o mediante WP-CLI:
wp plugin activate gestor-inmobiliario - Guarda los enlaces permanentes en Ajustes > Enlaces permanentes para refrescar las reglas de reescritura (Rewrite Rules).
Opción 2: Archivo ZIP
- Descarga o comprime la carpeta
gestor-inmobiliarioen un archivo.zip. - Dirígete a Plugins > Añadir nuevo > Subir plugin.
- Selecciona el archivo
.zip, instálalo y actívalo.
⚙️ Requisitos del Entorno
- WordPress: 6.4 o superior.
- PHP: 8.1 o superior (tipado estricto, unión de tipos y match syntax).
- Elementor (Opcional): Requerido únicamente para utilizar los widgets visuales de arrastrar y soltar.
👨💻 Autor
Desarrollado por José Ramírez. Repositorio publicado bajo licencia GPL-2.0-or-later.