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

  1. Una tienda WooCommerce funcionando.
  2. Un espacio de trabajo en Slack.
  3. Un token de autenticación de Slack para utilizar la API moderna.
  4. 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:

  1. Ve a Slack API y crea una nueva aplicación.
  2. En la configuración de OAuth & Permissions, añade el permiso chat:write (esto permite usar chat.postMessage). Autoriza la aplicación en tu espacio de trabajo.
  3. 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:

  1. Abre Slack en el navegador o la aplicación de escritorio.
  2. Ve al canal donde deseas recibir las notificaciones.
  3. Haz clic en el nombre del canal en la parte superior.
  4. 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

  1. Obtenemos el token de autenticación generado en Slack.
  2. Obtenemos el ID del canal donde se enviarán las notificaciones.
  3. Capturamos la orden con  wc_get_order( $order_id ).
  4. Construimos el mensaje con los detalles de la compra.
  5. Enviamos la notificación a Slack utilizando la API moderna  chat.postMessage.
  6. Conectamos la función al hook  woocommerce_payment_complete.

 

Probar la integración

  1. Realiza una compra de prueba en tu tienda WooCommerce.
  2. Verifica que el mensaje llegue correctamente al canal de Slack configurado.
  3. 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!

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x