J'ai développé un plugin pour connecter les commandes WooCommerce à HubSpot. Le problème que j'ai est que même si cela fonctionne, le hook que j'utilise envoie désormais les informations de commande à HubSpot avant que la technologie ne soit terminée. Cela signifie donc que des éléments tels que « Commande échouée » seront envoyés comme « En attente » et que le code promo sera omis.
Je veux donc savoir quel est le bon crochet à utiliser.
Mon objectif : envoyer des données à HubSpot à chaque fois qu'une commande WooCommerce est créée et terminée, et à chaque fois qu'une commande WooCommerce est mise à jour.
Ce que j'ai jusqu'à présent :
add_action('save_post_shop_order', 'printout', 10, 3); function printout($post_ID, $post, $update) { if (!is_admin()){ return; } if($update){ $msg = $post_ID; $order = get_woocommerce_order($msg); mainplugin($msg, $order); } } add_action('woocommerce_new_order', 'neworder_delegator', 10, 2); function neworder_delegator($order_id, $order){ mainplugin($order_id, $order); }
Donc je suppose que je cherche juste le bon crochet pour obtenir ce que je veux.
Merci !
Voici votre réponse :
Chaque transition de commande WooCommerce possède un ou plusieurs hooks dynamiques qui se déclenchent lorsque la transition d'état se produit.
Ils commencent par "woocommerce_order_status_" et le reste de l'action est le nouveau statut vers lequel la commande est passée, ou le statut aller-retour au format "to" '
Exemple
Vous pouvez accrocher vos fonctions
Déclenchez votre fonction uniquement lorsque la commande est convertie en commande terminée, et non lors d'un remboursement, d'une annulation, d'un blocage, etc. car ces opérations seront exécutées sur d'autres opérations comme
Modifier pour ajouter un lien vers la documentation officielle de WooCommerce :https://woocommerce.github.io/code-reference/hooks /hooks.html