❓¿Cómo integraste WHMCS con WordPress usando WHMpress y además lo personalizaste con código propio?

👉 En este artículo te muestro cómo hice una integración entre WordPress y WHMCS usando el plugin WHMpress, agregando lógica personalizada en PHP para detectar la moneda según la IP del visitante, mantenerla en sesión, permitir que el usuario la cambie manualmente y mostrar una banderita al lado 👇


⚙️ ¿Qué es WHMpress?

WHMpress es un plugin premium que permite conectar WordPress con WHMCS, ideal si vendés servicios como hosting, dominios o VPS.

Con WHMpress podés mostrar productos y precios de WHMCS directamente en WordPress, usando shortcodes o widgets.


🧠 ¿Cuál era la necesidad?

Una empresa de IT necesitaba que:

🌍 Los precios se muestren en la moneda del país del visitante (por IP).
🧑‍💻 Si el usuario cambia la moneda manualmente, se respete su elección.
🏁 Agregar una banderita (o ícono) al lado del precio, según la moneda.


🧩 Solución técnica

A continuación te comparto los shortcodes y funciones personalizadas que agregué al archivo functions.php del theme:


🔍 1. Mostrar la IP del visitante

👉 Uso: [ip_cliente]
Esto permite debuggear o ver desde qué IP se está accediendo.


🌎 2. Detectar moneda por IP o por URL

👆 Este fragmento detecta automáticamente la moneda inicial según la IP o parámetro ?currency=USD.


🔄 3. Selector visual de moneda

👉 Uso: [selector_moneda]
Esto genera un pequeño dropdown para cambiar de moneda manualmente. Ideal para la cabecera del sitio.


🏁 4. Mostrar una banderita según la moneda

👉 Uso: [moneda_bandera]
Se puede usar al lado del precio o del selector para que sea más visual 🖼️


✨ Resultado final

✅ Precios dinámicos según país
✅ Cambios manuales de moneda respetados
✅ Visualización con íconos o banderas
✅ Todo usando shortcodes simples en WordPress

❓¿Qué necesidades específicas te llevaron a desarrollar una API personalizada para WHMCS?

Hoy quiero compartir una experiencia práctica que tuve desarrollando una API personalizada para WHMCS, orientada a resolver una necesidad muy específica: consultar si un cliente existe en el sistema a partir de datos como su ID, DNI o CUIT.

Este proyecto surgió a raíz de un requerimiento de integración con una central telefónica, que necesitaba acceder a esta información en tiempo real para facilitar la identificación del cliente durante las llamadas entrantes.


🧠 El problema: identificar clientes desde un sistema externo

La necesidad era simple pero concreta: validar si un cliente está registrado en WHMCS y, de ser así, devolver algunos datos clave, como nombre, apellido y correo electrónico. Esta información debía estar disponible a través de una API que pudiera ser consumida desde un script externo ejecutado por la central telefónica.

El desafío fue diseñar una solución rápida, segura y sencilla de implementar, respetando el entorno de WHMCS y asegurando la correcta exposición de los datos.


🛠️ La solución: una API de consulta de clientes

La respuesta fue desarrollar una API REST personalizada dentro de WHMCS, capaz de recibir uno de los siguientes parámetros:

  • client_id
  • dni
  • cuit

A partir de ese dato, la API realiza una búsqueda en el sistema y devuelve una respuesta en formato JSON. Un ejemplo de respuesta positiva sería:

Si no se encuentra ningún cliente que coincida con los parámetros enviados, la respuesta devuelve un estado diferente, informando que no hay resultados.


🤔 ¿Qué es una API y cómo se consume?

Una API (Interfaz de Programación de Aplicaciones) permite que distintos sistemas se comuniquen entre sí de forma estructurada. En este caso, nuestra API actúa como un puente entre WHMCS y cualquier sistema externo que necesite acceder a los datos de clientes.

Para consumir esta API podés usar herramientas como Postman o Insomnia, ideales para testear y visualizar respuestas HTTP. Los pasos básicos para probarla son:

  1. Crear una solicitud del tipo GET o POST (según cómo se haya implementado).
  2. Ingresar la URL del endpoint de la API.
  3. Agregar los parámetros de búsqueda, como el DNI, CUIT o ID.
  4. Autenticarse, si la API lo requiere (por ejemplo, mediante tokens o headers personalizados).
  5. Enviar la solicitud y observar la respuesta en formato JSON.

📄 Documentación

Toda la API fue documentada: se detallan los parámetros requeridos, los métodos disponibles, ejemplos de uso y consideraciones de autenticación. Si te interesa consultarla, podés encontrarla en mi repositorio de GitHub:

👉 Mi cuenta en GitHub


✅ Conclusiones

Desarrollar esta API fue una gran oportunidad para afianzar conceptos como:

  • La estructura y seguridad en el diseño de APIs.
  • Cómo integrar WHMCS con sistemas externos.
  • La importancia de la documentación técnica clara para facilitar el uso de tus desarrollos.

Aunque se trató de una funcionalidad puntual, este tipo de soluciones muestran cómo pequeñas integraciones pueden mejorar significativamente los procesos en entornos reales.

❓¿Qué desafíos enfrentaste al trabajar con WHMCS por primera vez?

En esta publicación quiero compartirles mi primera experiencia trabajando con WHMCS y el uso del ORM Eloquent en PHP. Fue un proyecto desafiante pero a la vez muy enriquecedor, ya que me permitió aprender nuevas tecnologías y poner en práctica mis habilidades de desarrollo.

¿Qué es WHMCS?

WHMCS (Web Host Manager Complete Solution) es una plataforma de automatización de facturación y gestión para empresas de hosting. Permite a las empresas gestionar clientes, servicios, facturación, soporte técnico, y más, en un solo lugar. Una de sus principales ventajas es la flexibilidad para personalizar funcionalidades mediante la creación de módulos y extensiones, lo que facilita la integración con otros sistemas o la implementación de características específicas.

¿Qué es el ORM Eloquent?

El ORM (Object-Relational Mapping) Eloquent es una herramienta que forma parte del framework Laravel para trabajar con bases de datos. Facilita la interacción con la base de datos al permitir manipular datos utilizando clases y objetos en lugar de consultas SQL tradicionales. Esto simplifica muchas tareas de desarrollo y hace que el código sea más legible y fácil de mantener.

El Desafío: Desarrollar un Módulo de Retención de Clientes

Mi primera tarea con WHMCS consistió en desarrollar un módulo para la retención de clientes. La idea principal del módulo era ayudar a los operadores a contactar a los clientes que solicitaban la baja de un servicio y ofrecerles un descuento o incentivos para que reconsideraran su decisión.

Características del Módulo:

  1. Detección de Solicitudes de Baja: El módulo debía detectar cuando un cliente solicitaba la cancelación de un servicio.
  2. Asignación de Operador: Se asignaba un operador para contactar al cliente de forma proactiva.
  3. Ofertas de Retención: Se presentaban distintas opciones, como descuentos o mejoras en el servicio, para motivar al cliente a quedarse.
  4. Registro de Seguimiento: El módulo registraba las acciones del operador, incluyendo las ofertas realizadas y la respuesta del cliente.

Desarrollo del Módulo con PHP y Eloquent

Al trabajar en este proyecto, utilicé el ORM Eloquent para interactuar con la base de datos de WHMCS. La principal ventaja fue la capacidad de definir modelos y relaciones que facilitaban el acceso a la información de los clientes y sus servicios de manera intuitiva. Fue una experiencia interesante, ya que fue la primera vez que implementaba un ORM en un entorno real, y me permitió ver la potencia de usar Eloquent para escribir código limpio y estructurado.

Retos y Aprendizajes

El principal reto fue familiarizarme con el ecosistema de WHMCS y su estructura de datos. Al ser una plataforma bastante específica para empresas de hosting, su curva de aprendizaje puede ser pronunciada. Sin embargo, trabajar con Eloquent ayudó a simplificar el manejo de la base de datos, lo que hizo que el proceso de desarrollo fuera más fluido.

Resultado Final

El módulo de retención de clientes quedó funcional y permitió mejorar el proceso de atención al cliente, brindando a los operadores una herramienta útil para mantener la relación con los clientes y reducir la tasa de cancelaciones.

Conclusión

Desarrollar mi primer módulo para WHMCS fue una experiencia muy valiosa. Me permitió no solo aprender a trabajar con esta plataforma, sino también mejorar mis habilidades en PHP y en el uso de Eloquent como ORM. Si estás comenzando con WHMCS, te animo a explorar las posibilidades que ofrece la creación de módulos personalizados. Es una excelente manera de aprender y a la vez aportar valor a tu equipo o clientes.