"woocommerce_thankyou" 操作挂钩是否会在失败的订单上触发?

Does the "woocommerce_thankyou" action hook fire on failed orders?

我的联属网络营销脚本在下订单后跟踪转化。它在 woocommerce_thankyou 动作挂钩中运行:

function affiliate_tracking_code( $order_id ) {

    // get the order info for the script

    ?>

    <script>

       // affiliate script here

    </script>

    <?php

}

add_action( 'woocommerce_thankyou', 'affiliate_tracking_code', 10, 1 );

我不希望在订单失败或待处理时触发此脚本。只有成功了。我无法在文档中找到 woocommerce_thankyou 操作挂钩是否会针对成功订单之外的任何内容触发。

如果是这样,那么确保我的脚本只跟踪成功订单而非失败订单的转化的最佳方法是什么?

我测试过的一种方法是将我的脚本包装在一个 if 中并检查 if ( $order->get_status() == 'processing' ) : // run the script 但是我不确定是否存在隐藏的漏洞。

是的,它也会触发或失败订单。

add_action('woocommerce_before_thankyou', 'woocommerce_before_thankyou_failed_order')

function woocommerce_before_thankyou_failed_order( $order_id ) {
    
    $order = wc_get_order( $order_id );
    if ( !$order->has_status( 'failed' ) ) { 
        // if order not failed
    }
}

wp-content/plugins/woocommerce/templates/checkout/thankyou.php下的钩子