
Integrar WooCommerce con Slack para notificaciones de compra
Si deseas recibir notificaciones en Slack cada vez que se realice una compra en tu tienda WooCommerce, puedes lograrlo fácilmente utilizando el hook woocommerce_payment_complete
. En este artículo, te mostraré cómo integrar WooCommerce con Slack para que recibas alertas en un canal específico cuando se complete un pago.
Requisitos
- Una tienda WooCommerce funcionando.
- Un espacio de trabajo en Slack.
- Un token de autenticación de Slack para utilizar la API moderna.
- El ID del canal de Slack donde se enviarán los mensajes.
Crear un token de API en Slack
Para enviar mensajes a Slack, necesitamos generar un token de acceso:
- Ve a Slack API y crea una nueva aplicación.
- En la configuración de OAuth & Permissions, añade el permiso
chat:write
(esto permite usarchat.postMessage
). Autoriza la aplicación en tu espacio de trabajo. - Copia el token de autenticación generado, lo necesitaremos en el código.
Obtener el ID del canal de Slack
Para enviar mensajes a un canal en Slack, necesitas su ID. Sigue estos pasos para obtenerlo:
- Abre Slack en el navegador o la aplicación de escritorio.
- Ve al canal donde deseas recibir las notificaciones.
- Haz clic en el nombre del canal en la parte superior.
- Desplázate hacia abajo hasta la sección Información del canal y copia el ID del canal (parecerá algo como
C0123456789
).
Agregar el código a WooCommerce
Añade el siguiente código en el archivo functions.php
de tu tema o en un plugin personalizado:
<?php function send_slack_notification( $order_id ) { $slack_token = 'xoxb-TU-TOKEN-DE-ACCESO'; // Reemplaza con tu token de Slack $channel_id = 'C0123456789'; // Reemplaza con el ID de tu canal de Slack $order = wc_get_order( $order_id ); $message = "📢 *Nueva compra realizada*\n"; $message .= "🛒 Orden #$order_id\n"; $message .= "👤 Cliente: " . $order->get_billing_first_name() . " " . $order->get_billing_last_name() . "\n"; $message .= "💰 Total: " . wc_price( $order->get_total() ) . "\n"; $payload = json_encode([ "channel" => $channel_id, "text" => $message ]); $args = [ 'body' => $payload, 'headers' => [ 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . $slack_token ], 'timeout' => 10 ]; wp_remote_post( 'https://slack.com/api/chat.postMessage', $args ); } add_action( 'woocommerce_payment_complete', 'send_slack_notification' );
Explicación del código
- Obtenemos el token de autenticación generado en Slack.
- Obtenemos el ID del canal donde se enviarán las notificaciones.
- Capturamos la orden con
wc_get_order( $order_id )
. - Construimos el mensaje con los detalles de la compra.
- Enviamos la notificación a Slack utilizando la API moderna
chat.postMessage
. - Conectamos la función al hook
woocommerce_payment_complete
.
Probar la integración
- Realiza una compra de prueba en tu tienda WooCommerce.
- Verifica que el mensaje llegue correctamente al canal de Slack configurado.
- Si no ves la notificación, revisa el log de errores de WordPress con
error_log()
.
Esta integración es una forma efectiva de recibir alertas en tiempo real sobre nuevas ventas en tu tienda WooCommerce. Si deseas personalizar aún más la notificación, puedes incluir información adicional como productos comprados o método de pago.
¡Prueba esta solución y mantente informado sobre las ventas en tu tienda sin salir de Slack!