Integrar WooCommerce con Telegram puede ser una excelente forma de recibir actualizaciones instantáneas sobre nuevos pedidos en tu tienda en línea. En este artículo, te mostramos cómo configurar un sistema automatizado para enviar notificaciones de pedidos directamente a tu cuenta de Telegram.
Requisitos previos
Antes de comenzar, asegúrate de cumplir con estos requisitos:
- Una tienda en línea basada en WordPress y WooCommerce.
- Acceso al tema hijo de tu sitio (child theme).
- Una cuenta de Telegram con un bot configurado. Puedes crear uno fácilmente con el BotFather en Telegram siguiendo su guía oficial.
Guía para Implementar Notificaciones de Pedidos de WooCommerce en Telegram
Para recibir notificaciones automáticas de WooCommerce en Telegram, sigue estos pasos. Este tutorial detalla cómo configurar un bot de Telegram, obtener los datos necesarios y personalizar el código.
Crear un bot en Telegram
- Habla con @BotFather:
- Abre Telegram y busca
@BotFather
. - Inicia un chat y usa el comando
/start
/newbot
- Abre Telegram y busca
- Configura tu bot:
- Ingresa un nombre para tu bot (por ejemplo,
MiBotWooCommerce
). - Asigna un nombre de usuario único que termine en
bot
(por ejemplo,MiBotWoo_bot
).
- Ingresa un nombre para tu bot (por ejemplo,
- Guarda el token:
- BotFather te dará un token de API, algo como:
7907194569:A3AFXzDHSg9M9XEZWv8ozDHah5X8ThIOEU-Q23
. - ¿No te acuerdas del token? Habla con @BotFather
/mybots
Selecciona el bot y haz clic en «API Token»
- BotFather te dará un token de API, algo como:
Obtener tu Chat ID
- Envía un mensaje a tu bot:
- Busca tu bot recién creado en Telegram y envíale un mensaje (por ejemplo, «Hola»).
- Usa la API para obtener tu Chat ID:
- Abre esta URL en tu navegador, reemplazando
TU_TOKEN
con el token del bot:
- Abre esta URL en tu navegador, reemplazando
https://api.telegram.org/botTU_TOKEN/getUpdates
3. Configurar el código PHP
- Reemplaza los valores en el código:
- Sustituye:
'TU_BOT_TOKEN'
con el token de tu bot.'TU_CHAT_ID'
con el Chat ID obtenido.
- Sustituye:
- Guarda el archivo en tu tema hijo:
- Crea un archivo
telegram-notifications.php
dentro de la carpetaincludes
de tu tema hijo. - Copia y pega el código proporcionado anteriormente.
- Crea un archivo
- Registra el archivo en el tema hijo:
- Abre el archivo
functions.php
de tu tema hijo y añade este fragmento:
- Abre el archivo
function send_telegram_order_notification($order_id) { // Verifica si el pedido existe $order = wc_get_order($order_id); if (!$order) return; // Configuración del bot $bot_token = '7907194569:A3AFXzDHSg9M9XEZWv8ozDHah5X8ThIOEU-Q23'; $chat_id = '15337997823'; // Obtiene los detalles del pedido $order_total = $order->get_total(); $order_status = $order->get_status(); $customer_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(); // Obtiene los detalles de envío $shipping_address = $order->get_shipping_address_1(); $shipping_city = $order->get_shipping_city(); $shipping_postcode = $order->get_shipping_postcode(); // Obtiene el método de pago $payment_method = $order->get_payment_method_title(); // Prepara el mensaje de los productos $items_message = "\n📝 PRODUCTOS:\n"; foreach ($order->get_items() as $item) { $product = $item->get_product(); $items_message .= "• " . $item->get_name(); if ($item->get_quantity() > 1) { $items_message .= " (x" . $item->get_quantity() . ")"; } $items_message .= " - €" . number_format($item->get_total(), 2) . "\n"; } // Prepara el mensaje principal $message = "🛍️ ¡Nuevo pedido #" . $order_id . "!\n\n"; $message .= "📊 Estado: " . ucfirst($order_status) . "\n"; $message .= "👤 Cliente: " . $customer_name . "\n"; $message .= "📞 Teléfono: " . $order->get_billing_phone() . "\n"; $message .= "📧 Email: " . $order->get_billing_email() . "\n\n"; // Añade dirección de envío si existe if ($shipping_address) { $message .= "📦 DIRECCIÓN DE ENVÍO:\n"; $message .= $shipping_address . "\n"; $message .= $shipping_postcode . " " . $shipping_city . "\n\n"; } // Añade los productos $message .= $items_message . "\n"; // Añade los totales $message .= "💰 TOTALES:\n"; $message .= "Subtotal: €" . number_format($order->get_subtotal(), 2) . "\n"; if ($order->get_shipping_total() > 0) { $message .= "Envío: €" . number_format($order->get_shipping_total(), 2) . "\n"; } if ($order->get_total_discount() > 0) { $message .= "Descuento: -€" . number_format($order->get_total_discount(), 2) . "\n"; } $message .= "TOTAL: €" . number_format($order_total, 2) . "\n\n"; // Añade método de pago $message .= "💳 Método de pago: " . $payment_method; // URL de la API de Telegram $telegram_api_url = "https://api.telegram.org/bot{$bot_token}/sendMessage"; // Prepara los datos para la API de Telegram $data = array( 'chat_id' => $chat_id, 'text' => $message, 'parse_mode' => 'HTML' ); // Realiza la petición a la API de Telegram $response = wp_remote_post($telegram_api_url, array( 'body' => $data, 'timeout' => 30 )); // Registra errores si los hay if (is_wp_error($response)) { error_log('Error enviando notificación Telegram: ' . $response->get_error_message()); } } // Solo hook para pedidos en processing add_action('woocommerce_order_status_processing', 'send_telegram_order_notification', 10, 1); // Función para registrar los hooks en el child theme function register_telegram_notification_hooks() { if (!function_exists('send_telegram_order_notification')) { require_once get_stylesheet_directory() . '/includes/telegram-notifications.php'; } } add_action('after_setup_theme', 'register_telegram_notification_hooks'); // --------------------------------------