Ich versuche, den richtigen Haken für die Übermittlung von WooCommerce-Bestellungen zu finden
P粉323374878
P粉323374878 2024-03-31 18:06:07
0
1
514

Ich habe ein Plugin entwickelt, um WooCommerce-Bestellungen mit HubSpot zu verbinden. Das Problem, das ich habe, ist, dass es zwar funktioniert, der Hook, den ich jetzt verwende, die Bestellinformationen jedoch an HubSpot sendet, bevor die Technologie vollständig ist. Das bedeutet also, dass Dinge wie „Bestellung fehlgeschlagen“ als „Ausstehend“ gesendet werden und der Gutscheincode weggelassen wird.

Ich möchte also wissen, welcher Haken der richtige ist.

Mein Ziel: Jedes Mal, wenn eine WooCommerce-Bestellung erstellt und abgeschlossen wird und jedes Mal, wenn eine WooCommerce-Bestellung aktualisiert wird, Daten an HubSpot senden.

Was ich bisher habe:

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);
}

Ich schätze, ich suche einfach nach dem richtigen Haken, um das zu bekommen, was ich will.

Danke!

P粉323374878
P粉323374878

Antworte allen(1)
P粉216807924

这是你的答案:

每个 WooCommerce 订单转换都有一个或多个动态挂钩,这些挂钩在状态转换发生时触发。

它们以“woocommerce_order_status_”开头,操作的其余部分是订单已转换到的新状态,或者格式为“to”的往返状态'

示例

您可以将您的函数挂钩

add_action( 'woocommerce_order_status_completed', 'your_order_completed_function');

仅在订单转换为已完成时触发您的函数,而在退款、取消、暂停等时触发您的函数,因为这些操作将在其他操作上运行,例如

woocommerce_order_status_refunded
woocommerce_order_status_cancelled
woocommerce_order_status_on-hold
woocommerce_order_status_failed
woocommerce_order_status_processing

编辑以添加官方 WooCommerce 文档的链接:

https://woocommerce.github.io/code-reference/hooks /hooks.html

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage