❓¿Cómo lograste que los precios del WHMCS se actualicen solos en WordPress y además mostrar descuentos personalizados?

En este post te muestro cómo trabajé con WHMpress, el plugin que conecta WHMCS con WordPress, para lograr dos cosas:

✅ Automatizar la sincronización diaria de precios desde WHMCS.
✅ Personalizar los templates para aplicar descuentos visuales desde WordPress.


🔁 Sincronización automática con WHMCS vía Cron

WHMpress tiene una función de sincronización manual desde el panel de WordPress. Pero para automatizarla todos los días, podés crear un archivo cron.php y ejecutarlo con un cron job.

📄 Código del archivo cron.php

📌 Ejemplo de línea en el crontab

Este comando ejecuta la sincronización todos los días a las 3 AM desde el servidor.


🧱 Agregar descuento personalizado en los templates de WHMpress

Al usar Elementor podés insertar widgets como whmpress_pricing_table. WHMpress permite configurar:

  • Producto o servicio
  • Template visual
  • Moneda
  • Ciclo de facturación

Además, podés agregar descuentos personalizados desde WordPress, sin tocar WHMCS.


🔧 Cómo se agrega el descuento en el widget y el shortcode

Primero agregamos el parámetro discount en el extract() del shortcode:

Después lo agregamos al array $vars:


📦 Configuración en Elementor (archivo pricing-table.php)

📂 Ruta: /wp-content/plugins/whmpress/widgets/pricing-table.php

🛠 Agregar el campo de descuento

📤 Usar el valor en el render

Y pasarlo al shortcode:


🎨 Cómo mostrar el descuento en el template .tpl

📂 Ruta: /wp-content/plugins/whmpress/templates/whmpress_pricing_table/default

Usamos condicionales de Smarty para mostrar el monto con y sin descuento:

Esto permite mostrar visualmente el ahorro con un formato atractivo.


💰 Moneda dinámica según la sesión o cookie

Relacionado con el post anterior, también podés detectar la moneda activa con este fragmento:

Esto se integra perfecto con los shortcodes de detección de IP y selección de moneda que documenté acá 👇

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


✅ Resultado final

🎯 Precios actualizados automáticamente desde WHMCS
🎯 Descuentos configurables visualmente desde WordPress
🎯 Integración fluida con Elementor y WHMpress
🎯 Templates visuales adaptados con lógica PHP y Smarty

❓¿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é te motivó a desarrollar tu propio generador de códigos de barras en lugar de usar una librería externa?

Hace unas semanas, me encontré con un problema recurrente: una API externa que generaba códigos de barras para facturas en un sistema de cobros causaba fallos tras cada actualización. Esto afectaba directamente el funcionamiento del sistema y complicaba los procesos de facturación.

Cansado de estos imprevistos y de depender de servicios de terceros, decidí buscar una solución más robusta y bajo mi control: desarrollar mi propio generador de códigos de barras que funcione directamente en mi servidor.

La solución: generar códigos de barras con PHP y PICQER

Investigando opciones, encontré una excelente biblioteca en PHP llamada PICQER. Esta librería permite generar códigos de barras en distintos formatos de manera simple, rápida y completamente local.

¿Qué es PICQER?

PICQER es una biblioteca PHP liviana y eficiente para generar códigos de barras sin necesidad de servicios externos. Soporta formatos como Code 128, EAN-13, EAN-8, entre otros, y permite integrarla fácilmente en cualquier proyecto PHP.

Ventajas de usar PICQER

  • Evita dependencias externas: al alojar el generador en tu propio servidor, no dependés de terceros que puedan cambiar políticas, precios o servicios.
  • Control total: podés personalizar la generación y visualización de los códigos según las necesidades del proyecto.
  • Alto rendimiento: los escáneres detectan rápidamente los códigos generados, lo cual es fundamental en entornos donde la velocidad es clave.
  • Fácil implementación: la librería tiene una curva de aprendizaje baja y viene con ejemplos útiles.

Ejemplo de implementación básica

🔗 Podés ver este ejemplo funcionando en mi sitio:
👉 Generador de Código de Barras


¿Cómo integrarlo en tu proyecto?

  1. Instalá la librería con Composer:

2. Configurá el generador: adaptá el código de ejemplo a tu necesidad. Podés generar el código como HTML, PNG o SVG, dependiendo del formato que necesites.

3. Personalizá el tipo de código: la biblioteca soporta múltiples tipos de códigos como TYPE_CODE_128, TYPE_EAN_13, etc.


Conclusión

Desarrollar tu propio generador de códigos de barras usando una herramienta como PICQER es una excelente forma de independizarte de servicios externos poco confiables. Es una solución sencilla, eficiente y altamente adaptable a cualquier entorno PHP.

Si estás en una situación similar o simplemente querés mejorar el control sobre tu sistema, te recomiendo darle una oportunidad a esta librería.

❓¿Cuáles fueron los pasos principales que seguiste para integrar la API de WordPress y mostrar las últimas publicaciones?

En esta publicación, quiero compartir una funcionalidad que recientemente me tocó agregar en el sitio web a una empresa, y que también he implementado en mi propia web. La idea es integrar la API de WordPress en tu sitio web o portafolio para mostrar las últimas publicaciones de tu blog. Es una funcionalidad interesante que puede añadir valor a tu perfil profesional al mantenerlo actualizado con tu contenido más reciente.

Voy a explicar cómo lo hice utilizando Laravel, un framework de PHP que facilita mucho el desarrollo web. A continuación, les muestro el código que usé para obtener las publicaciones de un blog de WordPress y mostrarlas en la web.

Paso 1: Obtener las Publicaciones del Blog

Primero, creamos una función en Laravel para obtener las publicaciones. La API de WordPress ofrece un endpoint para obtener los posts, que es: https://[URL DE TU BLOG]/wp-json/wp/v2/posts. Vamos a solicitar las últimas 3 publicaciones, pero este número puede ajustarse según tus necesidades.

Paso 2: Configurar la Función makeCurlRequest

Para realizar las solicitudes a la API de WordPress, utilizamos una función llamada makeCurlRequest, que se encarga de hacer la solicitud cURL y devolver los datos obtenidos. Asegúrate de tenerla implementada en tu código:

Paso 3: Actualizar la Vista para Mostrar las Publicaciones

Finalmente, debes actualizar la vista para mostrar las publicaciones con los títulos, extractos y, si es posible, las imágenes destacadas. El siguiente código es un ejemplo básico de cómo hacerlo en Blade, la plantilla de Laravel:

Consideraciones Adicionales

  • Reemplaza [URL DE TU BLOG] por la URL real de tu blog.
  • Si las publicaciones no tienen imágenes destacadas, la propiedad featured_media será 0. Puedes manejar este caso mostrando una imagen predeterminada o simplemente omitiendo la imagen.
  • Puedes personalizar la cantidad de publicaciones a mostrar cambiando el parámetro per_page en la URL.

Espero que esta guía te sea de utilidad si alguna vez necesitas integrar publicaciones de un blog de WordPress en tu sitio web. ¡No dudes en experimentar con la API de WordPress y adaptarla a tus necesidades!