无法执行woocommerce_order_status_completed挂钩

时间:2018-12-06 09:30:58

标签: wordpress woocommerce

WordPress woocommerce_order_status_completed挂钩在下订单时未执行。我已将functions.php文件中的以下代码添加到console.log订单ID中:

add_action('woocommerce_order_status_completed', 'console_to_order_items_on_competed_status', 10, 1);
function console_to_order_items_on_competed_status( $order_id ){
?>
<script type="text/javascript">
    console.log('order id: "<?php echo $order_id ?>"');
</script>
<?php
}

以上代码未执行。我还尝试如下添加do_action

do_action('woocommerce_order_status_completed', 'console_to_order_items_on_competed_status')

但是没有运气。请帮助我解决这个问题。预先感谢。

2 个答案:

答案 0 :(得分:2)

如果要在订单处执行功能,可以使用此挂钩:

    add_action( 'woocommerce_new_order', 'your_order_details',  1, 1  );
    function your_order_details($order_id){ ?>

        <script type="text/javascript">
            console.log('order id: "<?php echo $order_id ?>"');
         </script>
    <?php }

请记住不要在这些方法中放置任何$ woocommerce-> cart-> empty_cart()语句,因为它将删除购物车中的商品,并使其他结帐方法无法继续进行。

尝试一下,如果您有任何疑问,请告诉我。

答案 1 :(得分:1)

要在下订单时获取订单ID,请使用以下代码

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

function action_woocommerce_thankyou()
{
   $current_order_id = wc_get_order( $order_id );
}

您将在$current_order_id变量中获得订单ID