Notifications WooCommerce avec l’extension Honk Me
WooCommerce vous prévient des nouvelles commandes par e-mail, et ces e-mails se noient dans le reste de votre boîte. Sur leur téléphone, la plupart des e-commerçants veulent plutôt deux choses : une courte note pour chaque commande payée, et une alerte bien audible quand les paiements se mettent à échouer, avant que les clients ne renoncent.
L’extension Honk Me pour WordPress envoie les deux, sans code. Elle couvre aussi les remboursements, les alertes de stock, les nouveaux clients, les avis, les formulaires, les connexions et la santé du site, et un seul écran de réglages vous permet de choisir ce que dit chaque notification.
Avant de commencer
- Un compte Honk. Honk est pour l’instant sur invitation : demandez un accès.
- Un projet pour la boutique, par exemple « Boutique ».
- WordPress 6.4 ou plus récent, avec PHP 7.4 ou plus récent. WooCommerce est facultatif : sans lui, vous recevez quand même les connexions, la santé du site, les commentaires et les formulaires.
1. Installer l’extension
L’extension arrive bientôt dans le répertoire des extensions WordPress, où elle est en cours de validation. Une fois qu’elle y figure, ouvrez Extensions ▸ Ajouter une extension dans WordPress, cherchez Honk Me, puis cliquez sur Installer maintenant et sur Activer. D’ici là, utilisez l’une des méthodes de la partie « Sans l’extension », à la fin de ce guide.
Rien n’est envoyé tant que vous n’avez pas ajouté de clé : vous pouvez donc l’installer sans risque sur une boutique en activité.
2. La connecter à Honk
Dans l’app web Honk, ouvrez le projet de la boutique, puis Clés, et créez une clé. Copiez-la tout de suite : Honk ne l’affiche qu’une fois.
Dans WordPress, ouvrez Réglages ▸ Honk et collez la clé dans Clé API. Laissez l’URL du serveur telle quelle, sauf si vous hébergez votre propre serveur Honk, et cliquez sur Enregistrer les modifications.
3. Choisir ce que vous voulez suivre
Sous Événements, chaque événement a sa propre case d’activation, un niveau sur l’échelle Honk et une priorité. Les réglages par défaut sont un bon début : une commande payée est un Bip-bip, un paiement échoué un Coup de klaxon appuyé, et un produit en rupture un Long coup de klaxon.

Honk regroupe les répétitions : 30 paiements échoués en une heure forment un seul épisode avec un compteur, pas 30 push. Pour ce qui a un début et une fin, comme un stock faible ou une série d’échecs de connexion, vous recevez aussi un message quand tout rentre dans l’ordre.
4. Choisir ce que dit chaque notification
Cliquez sur Détails sous un événement pour voir ce que sa notification peut contenir. La notification d’une nouvelle commande indique toujours son numéro et un lien vers la commande dans WordPress. Le reste se coche : le total, le nombre d’articles, l’état, le moyen de paiement et le mode d’expédition, les trois premiers produits, ainsi que le nom, l’e-mail, le téléphone, la ville de facturation et la note du client. L’aperçu, à côté, montre comment la notification s’affichera dans Honk, et se met à jour à chaque case cochée.

Les informations du client sont des données personnelles : elles ne sont envoyées que si Inclure les noms et e-mails des clients est activé, dans Confidentialité et langue. Tant que ce réglage est désactivé, elles apparaissent en grisé et rien de personnel n’est envoyé, quelles que soient les cases cochées. Avec Contact Form 7, WPForms et Gravity Forms, vous pouvez aussi écarter certains champs de chaque formulaire.
Cliquez sur Enregistrer les modifications une fois terminé.
5. Envoyer un test
En haut de Réglages ▸ Honk, cliquez sur Envoyer une notification de test. Le test utilise la clé saisie dans le champ, même si vous ne l’avez pas encore enregistrée, et affiche juste en dessous la réponse de Honk. Il arrive dans votre boîte de réception Honk en quelques secondes.

Pour voir une vraie commande, passez-en une avec un moyen de paiement comme le paiement à la livraison. Réglages ▸ Honk ▸ Journal d’envoi liste chaque notification envoyée par le site, avec son état.
Des nuits calmes pour la boutique
Une commande à 3 h du matin est une bonne nouvelle qui peut attendre. Dans l’app web Honk, ouvrez le projet de la boutique ▸ Mes notifications et définissez des heures calmes : vous recevrez un seul résumé le matin. Vous pouvez aussi régler votre seuil de push sur Haute : les commandes payées attendent alors le récapitulatif, mais un produit en rupture déclenche toujours un push immédiat, car un Long coup de klaxon est au moins en priorité Haute. Pour que les paiements échoués déclenchent aussi un push, réglez leur priorité sur Haute dans Événements.
À propos des données clients
Avec les réglages par défaut de l’extension, les notifications ne contiennent aucune donnée personnelle : une commande apparaît sous la forme « Commande n°1234 · 84,00 € · 2 articles ». Les noms, les e-mails et le reste ne sont envoyés que si vous les activez, et seulement ceux que vous cochez. Honk ne conserve les messages que le temps prévu par votre forfait (3, 14 ou 30 jours), et uniquement pour vous les afficher. L’extension propose aussi un paragraphe pour votre politique de confidentialité, dans Réglages ▸ Confidentialité de WordPress.
Sans l’extension
Pendant la validation de l’extension, ou si vous préférez ne pas en installer, deux autres méthodes fonctionnent aussi.
Un outil d’automatisation. WooCommerce sait envoyer chaque commande à un webhook, dans son propre format. Placez n8n, Make ou Zapier entre les deux pour garder les champs utiles et les transmettre à Honk. Avec n8n et le nœud Honk :
WooCommerce ▸ Settings ▸ Advanced ▸ Webhooks ▸ Add webhook
Status: Active
Topic: Order updated
Delivery URL: https://your-n8n.example.com/webhook/woocommerce
n8n workflow
1. Webhook (POST /webhook/woocommerce)
2. If: {{ $json.body.status }} is "processing"
3. Honk → Send message
Message: {{ $json.body.billing.first_name }} {{ $json.body.billing.last_name }}: {{ $json.body.line_items.map(i => i.quantity + ' × ' + i.name).join(', ') }}
Title: New order #{{ $json.body.number }} · {{ $json.body.total }} {{ $json.body.currency }}
Severity: Beep-Beep (Success)
Additional Fields
Category: Sales
Group Key: orders/{{ $json.body.id }}
Options
Idempotency Key: wc-{{ $json.body.id }}-paidDans Make ou Zapier, utilisez leur module HTTP avec les mêmes champs ; le guide des formulaires montre ce module une fois rempli.
Quelques lignes de code. Placez la clé dans wp-config.php, pour qu’elle reste hors des exports et des sauvegardes de votre contenu :
// wp-config.php, above the line "That's all, stop editing!"
define('HONK_KEY', 'honk_…');Créez ensuite wp-content/mu-plugins/honk.php avec une petite fonction d’envoi. WordPress charge tout seul les extensions indispensables (must-use), et avec 'blocking' => false, la validation de la commande n’attend jamais Honk :
<?php
/*
* Plugin Name: Honk notifications
* Description: Sends store and form events to Honk (honk-me.app). Not an official Honk plugin: a starting point to adapt.
*/
// Sends one event to Honk without slowing the page down. The key comes from wp-config.php.
function honk_send(array $event, string $idempotency_key): void
{
if (!defined('HONK_KEY')) {
return;
}
// Honk accepts https links only; drop the link on an http:// development site
if (isset($event['url']) && !str_starts_with($event['url'], 'https://')) {
unset($event['url']);
}
$event['message'] = mb_strcut($event['message'], 0, 8000); // a message holds up to 8192 bytes
wp_remote_post('https://honk-me.app/v1/messages', [
'timeout' => 5,
'blocking' => false, // fire and forget: checkout never waits for Honk
'headers' => [
'Authorization' => 'Bearer ' . HONK_KEY,
'Content-Type' => 'application/json',
'Idempotency-Key' => $idempotency_key,
],
'body' => wp_json_encode($event),
]);
}Ajoutez les événements de commande au même fichier. Chacun a une clé d’idempotence construite à partir de la commande : un hook relancé ne notifie jamais deux fois.
// A paid order: a Beep-beep with what was bought.
add_action('woocommerce_payment_complete', function ($order_id) {
$order = wc_get_order($order_id);
if (!$order) {
return;
}
$items = [];
foreach ($order->get_items() as $item) {
$items[] = $item->get_quantity() . ' × ' . $item->get_name();
}
honk_send([
'title' => sprintf('New order #%s · %s %s', $order->get_order_number(), $order->get_total(), $order->get_currency()),
'message' => $order->get_formatted_billing_full_name() . "\n" . implode("\n", $items),
'severity' => 'beep',
'category' => 'sales',
'source' => 'woocommerce',
'group_key' => 'orders/' . $order->get_id(),
'url' => $order->get_edit_order_url(),
], 'wc-' . $order->get_id() . '-paid');
// the gateway works again after a failure: close that incident
$gateway = $order->get_payment_method();
if (get_transient('honk_failed_' . $gateway)) {
delete_transient('honk_failed_' . $gateway);
honk_send([
'title' => sprintf('Payments via %s work again', $order->get_payment_method_title()),
'message' => sprintf('Order #%s was paid.', $order->get_order_number()),
'event_type' => 'recovery',
'category' => 'payments',
'source' => 'woocommerce',
'group_key' => 'payments/' . $gateway,
], 'wc-' . $order->get_id() . '-gateway-ok');
}
});
// A failed payment: one group per payment method, so a broken gateway is one incident, not 30 pushes.
add_action('woocommerce_order_status_failed', function ($order_id, $order) {
$gateway = $order->get_payment_method();
set_transient('honk_failed_' . $gateway, 1, DAY_IN_SECONDS);
honk_send([
'title' => sprintf('Payment failed: order #%s', $order->get_order_number()),
'message' => sprintf('%s, %s %s via %s', $order->get_formatted_billing_full_name(), $order->get_total(), $order->get_currency(), $order->get_payment_method_title()),
'severity' => 'long',
'event_type' => 'problem',
'category' => 'payments',
'source' => 'woocommerce',
'group_key' => 'payments/' . $gateway,
'url' => $order->get_edit_order_url(),
], 'wc-' . $order->get_id() . '-failed');
}, 10, 2);Pour l’instant, Honk est sur invitation : demandez un accès. Tout ce guide fonctionne avec le forfait Free.