Sitio WordPress con integración del widget de chat AgentSGT para desarrollo local
Características • Instalación • Configuración • Uso • Soporte
- Características
- Requisitos del Sistema
- Instalación Rápida
- Configuración
- Uso
- Estructura del Proyecto
- Desarrollo
- Troubleshooting
- Seguridad
- Contribuir
- Soporte
- Licencia
- 🚀 Instalación rápida con LocalWP o manual
- 🤖 Plugin AgentSGT Widget integrado y listo para usar
- 🎨 Widget personalizable con opciones de posición y apariencia
- 📱 Shortcode para insertar el widget en páginas específicas
- 🔧 Configuración fácil desde el panel de administración de WordPress
- 🔐 Seguro - Archivos sensibles excluidos del repositorio
- 📝 Documentación completa incluida
| Componente | Versión Mínima | Recomendada |
|---|---|---|
| PHP | 7.4 | 8.0+ |
| MySQL | 5.7 | 8.0+ |
| WordPress | 6.0 | Última versión |
| Servidor Web | Nginx 1.18+ / Apache 2.4+ | Nginx 1.20+ |
- LocalWP - Entorno de desarrollo local (Recomendado)
- Git - Control de versiones
- Composer - Gestor de dependencias (opcional)
Esta es la forma más fácil y rápida de configurar el proyecto. LocalWP creará automáticamente la base de datos, así que NO necesitas un archivo .sql.
💡 IMPORTANTE: LocalWP NO puede importar directamente desde GitHub. Debes descargar el proyecto primero y luego copiar los archivos manualmente.
Tienes dos opciones:
Opción A: Usando Git (Recomendado)
git clone https://github.com/ddrinnova/agentsgt-wp.git
cd agentsgt-wpOpción B: Descargar ZIP desde GitHub
- Ve a: https://github.com/ddrinnova/agentsgt-wp
- Haz clic en "Code" → "Download ZIP"
- Descomprime el archivo ZIP en tu carpeta de descargas
IMPORTANTE: Primero crea un sitio nuevo en LocalWP, luego copiaremos los archivos.
- Abre LocalWP
- Haz clic en "Add Site" → "Create a new site"
- Configura:
- Site name:
agentsgt-wp(o el nombre que prefieras) - Environment: Preferencias (recomendado: "Preferred")
- WordPress version: Cualquiera (se reemplazará)
- PHP version: 8.0 o superior
- Web server: Nginx (recomendado)
- Database: MySQL
- Site name:
- Haz clic en "Add Site"
- Espera a que LocalWP cree el sitio
Ahora necesitas copiar los archivos del proyecto descargado al sitio de LocalWP:
-
Abre la carpeta del sitio en LocalWP:
- Haz clic derecho en el sitio → "Reveal in Finder" (Mac) o "Open Site Shell"
- O navega manualmente a:
~/Local Sites/agentsgt-wp/app/public/
-
Copia el contenido de
wp-content:Desde terminal:
# Desde la carpeta del proyecto descargado: cp -r app/public/wp-content/* ~/Local\ Sites/agentsgt-wp/app/public/wp-content/
O manualmente:
- Abre la carpeta del proyecto descargado:
agentsgt-wp/app/public/wp-content/ - Copia TODO el contenido (plugins, themes, etc.)
- Pégalo en:
~/Local Sites/agentsgt-wp/app/public/wp-content/ - Reemplaza si te pregunta (es normal)
- Abre la carpeta del proyecto descargado:
-
Copia
wp-config-sample.phpy renómbralo:Desde terminal:
# Desde la carpeta del proyecto descargado: cp app/public/wp-config-sample.php ~/Local\ Sites/agentsgt-wp/app/public/wp-config.php
O manualmente:
- Copia
app/public/wp-config-sample.phpdel proyecto descargado - Pégalo en
~/Local Sites/agentsgt-wp/app/public/ - Renómbralo a
wp-config.php
- Copia
-
Abre
wp-config.phpen un editor de texto (puedes hacer clic derecho → "Open with" → tu editor) -
Busca las líneas de base de datos y reemplázalas con las credenciales de LocalWP:
define( 'DB_NAME', 'local' ); // Siempre 'local' en LocalWP define( 'DB_USER', 'root' ); // Siempre 'root' en LocalWP define( 'DB_PASSWORD', 'root' ); // Siempre 'root' en LocalWP define( 'DB_HOST', 'localhost' ); // Siempre 'localhost' en LocalWP
-
Genera nuevas keys de seguridad:
- Ve a: https://api.wordpress.org/secret-key/1.1/salt/
- Copia TODAS las keys generadas (8 líneas completas)
- Reemplaza las keys en
wp-config.php(líneas 52-60 aproximadamente) - Debe verse así:
define( 'AUTH_KEY', 'tu-key-aqui...' ); define( 'SECURE_AUTH_KEY', 'tu-key-aqui...' ); // ... etc
- En LocalWP, haz clic en "Start" en tu sitio
- Espera a que el sitio esté listo (ícono verde)
- Haz clic en "Open Site" en LocalWP o ve a
http://agentsgt-wp.local - WordPress detectará que necesita instalación
- Sigue el asistente de instalación:
- Idioma: Selecciona tu idioma
- Título del sitio: Elige un nombre
- Usuario administrador: Crea un usuario
- Contraseña: Crea una contraseña segura (guárdala)
- Email: Tu email de administrador
- Haz clic en "Instalar WordPress"
💡 Nota: WordPress creará automáticamente la base de datos. NO necesitas importar un archivo .sql.
- Una vez instalado WordPress, ve a WordPress Admin
- Ve a Plugins → Plugins instalados
- Busca "AgentSGT Widget"
- Haz clic en "Activar"
- Ve a AgentSGT Widget → Settings para configurar
✅ ¡Listo! Tu sitio está funcionando con el plugin AgentSGT instalado.
Solución:
- Asegúrate de copiar el contenido DENTRO de
wp-content/, no la carpeta misma - La estructura debe ser:
app/public/wp-content/plugins/... - NO debe ser:
app/public/wp-content/wp-content/plugins/...
Solución:
- NO necesitas un archivo .sql para empezar
- WordPress creará la base de datos automáticamente durante la instalación
- Si quieres datos de ejemplo, puedes importarlos después desde Tools → Import en WordPress Admin
Solución:
- LocalWP NO puede importar directamente desde GitHub
- Debes descargar el proyecto primero (Git o ZIP)
- Luego crear un sitio nuevo en LocalWP
- Finalmente copiar los archivos manualmente (como se explica arriba)
Solución:
- Verifica que copiaste la carpeta
wordpress-plugindentro dewp-content/plugins/ - La ruta debe ser:
app/public/wp-content/plugins/wordpress-plugin/agentsgt-widget.php - Recarga la página de Plugins en WordPress Admin (F5)
- Si aún no aparece, verifica los permisos de la carpeta
Si prefieres usar tu propio servidor web.
git clone https://github.com/ddrinnova/agentsgt-wp.git
cd agentsgt-wpPara Nginx:
server {
listen 80;
server_name agentsgt-wp.local;
root /ruta/al/proyecto/app/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}Para Apache:
- Configura un VirtualHost apuntando a
app/public - Asegúrate de que
mod_rewriteesté habilitado
CREATE DATABASE agentsgt_wp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';
GRANT ALL PRIVILEGES ON agentsgt_wp.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;-
Copia el archivo de configuración:
cp app/public/wp-config-sample.php app/public/wp-config.php
-
Edita
wp-config.php:define( 'DB_NAME', 'agentsgt_wp' ); define( 'DB_USER', 'wp_user' ); define( 'DB_PASSWORD', 'tu_contraseña_segura' ); define( 'DB_HOST', 'localhost' );
-
Genera keys de seguridad desde https://api.wordpress.org/secret-key/1.1/salt/
- Accede a
http://agentsgt-wp.local/wp-admin/install.php - Completa el formulario de instalación
- Activa el plugin AgentSGT Widget
Después de la instalación, configura estos aspectos básicos:
-
Permalinks:
- Ve a Settings → Permalinks
- Selecciona "Post name" (recomendado)
- Guarda cambios
-
Zona Horaria:
- Ve a Settings → General
- Configura tu zona horaria
-
Idioma:
- Ve a Settings → General
- Selecciona tu idioma preferido
-
Ve a WordPress Admin → AgentSGT Widget
-
Configura los campos requeridos:
- Runtime URL: URL de tu backend CopilotKit
Ejemplo: https://api.agentsgt.com/runtime - API Key: Tu clave API de AgentSGT
Ejemplo: sk-1234567890abcdef
- Runtime URL: URL de tu backend CopilotKit
-
Personaliza el widget (opcional):
- Título del Widget: Título que aparecerá en el widget
- Mensaje Inicial: Mensaje de bienvenida cuando se abre el chat
- Posición: Esquina inferior derecha o izquierda
-
Activa el widget:
- Marca la casilla "Habilitar widget"
- Haz clic en "Guardar cambios"
Propiedades Personalizadas (JSON):
Puedes agregar contexto personalizado usando JSON:
{
"siteInfo": {
"description": "Información del sitio",
"value": {
"name": "Mi Sitio Web",
"services": ["Servicio 1", "Servicio 2"],
"contact": "[email protected]"
}
},
"userContext": {
"description": "Contexto del usuario",
"value": {
"language": "es",
"timezone": "America/Mexico_City"
}
}
}Nota: WordPress automáticamente agrega información del sitio (nombre, URL, página actual) al contexto.
Una vez activado en la configuración, el widget aparecerá automáticamente en todas las páginas del sitio.
Características:
- ✅ Aparece en todas las páginas
- ✅ Persistente durante la navegación
- ✅ No requiere código adicional
Inserta el widget en páginas o posts específicos usando el shortcode:
[agentsgt_widget]
[agentsgt_widget title="Mi Asistente" message="¡Hola! ¿Cómo puedo ayudarte?"]
| Parámetro | Descripción | Ejemplo |
|---|---|---|
title |
Título del widget | title="Mi Asistente" |
message |
Mensaje inicial | message="Bienvenido" |
position |
Posición (left/right) | position="left" |
Ejemplo en un Post:
<!-- Contenido del post -->
<p>Este es el contenido de mi post.</p>
<!-- Widget de chat -->
[agentsgt_widget title="¿Necesitas ayuda?" message="Estoy aquí para ayudarte"]El plugin automáticamente detecta y envía información de WordPress:
- Información del sitio: Nombre, URL, descripción
- Página actual: Título, URL, tipo de contenido
- Usuario: Si está logueado, información básica
Puedes agregar propiedades adicionales desde el panel de administración.
agentsgt-wp/
│
├── 📄 README.md # Este archivo
├── 📄 SECURITY.md # Guía de seguridad
├── 📄 .gitignore # Archivos excluidos de Git
│
├── 📂 app/
│ ├── 📂 public/ # WordPress core y archivos públicos
│ │ ├── 📄 wp-config-sample.php # Template de configuración
│ │ └── 📂 wp-content/
│ │ ├── 📂 plugins/
│ │ │ └── 📂 wordpress-plugin/ # Plugin AgentSGT
│ │ │ ├── 📄 agentsgt-widget.php
│ │ │ ├── 📂 admin/
│ │ │ └── 📄 README.md
│ │ └── 📂 themes/ # Temas de WordPress
│ └── 📂 sql/ # Bases de datos (no en Git)
│
├── 📂 conf/ # Configuraciones de servidor (no en Git)
│ ├── 📂 nginx/
│ ├── 📂 mysql/
│ └── 📂 php/
│
└── 📂 logs/ # Logs del servidor (no en Git)
| Archivo | Descripción |
|---|---|
app/public/wp-config-sample.php |
Template de configuración (✅ seguro para Git) |
app/public/wp-config.php |
Configuración real (❌ NO subir a Git) |
app/public/wp-content/plugins/wordpress-plugin/ |
Plugin AgentSGT |
El plugin AgentSGT se encuentra en:
app/public/wp-content/plugins/wordpress-plugin/
Archivos principales:
agentsgt-widget.php- Archivo principal del pluginadmin/- Archivos del panel de administraciónadmin.css- Estilos del adminadmin.js- Scripts del adminwidget-styles.css- Estilos del widget
-
Habilita el modo debug:
// En wp-config.php define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
-
Revisa los logs:
- Logs de PHP:
logs/php/php-fpm.log - Logs de WordPress:
app/public/wp-content/debug.log
- Logs de PHP:
-
Desarrollo del plugin:
- Edita los archivos en
app/public/wp-content/plugins/wordpress-plugin/ - Los cambios se reflejan inmediatamente (sin necesidad de recargar)
- Edita los archivos en
El plugin expone estos hooks para desarrolladores:
// Modificar propiedades antes de renderizar
apply_filters('agentsgt_widget_properties', $properties);
// Modificar configuración del widget
apply_filters('agentsgt_widget_config', $config);Solución:
- Verifica que el servidor esté corriendo (LocalWP: botón "Start")
- Revisa que
wp-config.phptenga las credenciales correctas - Verifica los logs en
logs/nginx/error.log
Solución:
// Verifica en wp-config.php:
define( 'DB_NAME', 'nombre_correcto' );
define( 'DB_USER', 'usuario_correcto' );
define( 'DB_PASSWORD', 'contraseña_correcta' );
define( 'DB_HOST', 'localhost' );Solución:
- Verifica que el plugin esté activado
- Ve a AgentSGT Widget → Settings
- Asegúrate de que "Habilitar widget" esté marcado
- Verifica la consola del navegador (F12) para errores JavaScript
- Revisa que la Runtime URL y API Key sean correctas
Solución:
- Ve a Settings → Permalinks
- Haz clic en "Save Changes" (sin cambiar nada)
- Esto regenera las reglas de rewrite
Solución:
- Verifica que el plugin esté activado
- Asegúrate de usar la sintaxis correcta:
[agentsgt_widget] - Revisa que no haya errores de sintaxis en el editor
Por seguridad, estos archivos están excluidos del repositorio:
- ❌
app/public/wp-config.php- Contiene credenciales sensibles - ❌
app/sql/*.sql- Bases de datos con datos reales - ❌
app/public/wp-content/uploads/- Archivos subidos por usuarios - ❌
logs/- Logs del servidor - ❌
conf/**/*.hbs- Configuraciones del servidor local
- ✅
wp-config-sample.php- Template sin credenciales - ✅ Plugin personalizado
- ✅ Temas personalizados
- ✅ Archivos de documentación
- Nunca compartas credenciales en el código
- Usa diferentes credenciales en desarrollo y producción
- Regenera las keys de WordPress si se comprometen
- Mantén WordPress actualizado para seguridad
- Usa contraseñas fuertes para la base de datos
Para más información, consulta SECURITY.md.
¡Las contribuciones son bienvenidas! Sigue estos pasos:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
- Sigue las convenciones de código de WordPress
- Documenta tus cambios
- Agrega tests si es posible
- Actualiza el README si es necesario
- 📧 Email: [email protected]
- 🐛 Issues: GitHub Issues
- 💬 Discusiones: GitHub Discussions
Si encuentras un bug, por favor:
- Verifica que no esté ya reportado en Issues
- Crea un nuevo issue con:
- Descripción clara del problema
- Pasos para reproducir
- Versión de WordPress y PHP
- Logs relevantes (sin información sensible)
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Hecho con ❤️ por DDRinnova