如何连接 WooCommerce Status =“checkout-draft”

问题描述 投票:0回答:1

我的问题围绕着新的 WooCommerce 订单状态草案的挂钩。当客户将产品添加到购物车并查看购物车/结帐时,就会发生这种情况,并且它会一直保持到下订单为止,此时它会更改为待付款或正在处理。

我错过了什么?我欢迎对代码的所有批评,因为它只是一个简短的片段,更是一个解决方案。如果需要更多信息,请询问。有关我在这里谈论的状态的更多信息:https://developer.woocommerce.com/2020/11/23/introducing-a-new-order-status-checkout-draft/

我已经成功地与其他状态合作过,例如

    function track_order_draft_duration($orderID, $old_status, $new_status) {
      //Order details
      global $woocommerce;
      $order = new WC_Order($orderID);

      if ($new_status == 'processing') {
        $msg = "something";
      }
    }
    add_action('woocommerce_order_status_changed', "track_order_draft_duration", 10, 3);

我真正想做的是检查每次将订单放入购物车并具有如下所示的草稿状态,记录状态更改之前的持续时间等。 WooCommerce dashboard

wordpress woocommerce
1个回答
0
投票

尝试使用下面的代码片段来了解订单状态 -

checkout-draft

function wc_track_order_draft_duration( $order ) {
    // Check for flag already set or not.
    $has_draft_logged = get_post_meta( $order->get_id(), '_draft_duration_logged', true );
    if ( $order->has_status( 'checkout-draft' ) && ! $has_draft_logged ) {

        // Do your log related code here.

        // And make sure to set a flag with order ID which prevent to override log.
        // So it will logged only once init of draft order created.

        // Once your task is done, set flag for future preventation.
        update_post_meta( $order->get_id(), '_draft_duration_logged', true );
    }
}
add_action( 'woocommerce_store_api_checkout_update_order_meta', 'wc_track_order_draft_duration' );
© www.soinside.com 2019 - 2024. All rights reserved.