在Woocommerce中获取更新状态之前的旧订单状态


老人与海。
2025-03-13 10:29:17 (5天前)
  1. 我目前正在寻找一种在更新订单状态之前获取订单状态的方法。

例如,我的订单状态正在进行中,我用此编程方式更改订单状态…

2 条回复
  1. 0# 满目山河 | 2019-08-31 10-32



    为了那个原因

    在更新之前
    </强>
    订单状态

    $order->update_status( ‘wc-completed’ );

    ,您需要在每个状态更改事件中添加一种状态历史记录,使用以下命令:




    1. add_action( woocommerce_order_status_changed’, grab_order_old_status’, 10, 4 );
      function grab_order_old_status( $order_id, $status_from, $status_to, $order ) {
      if ( $order->get_meta(‘_old_status’) ) {
      // Grab order status before it’s updated
      update_post_meta( $order_id, _old_status’, $status_from );
      } else {
      // Starting status in Woocommerce (empty history)
      update_post_meta( $order_id, _old_status’, pending );
      }
      }

    2. </code>


    代码位于活动子主题(或活动主题)的function.php文件中。经过测试和工作。






    用法
    </强>

    1. - 然后,您现在可以使用以下IF语句之一
    2. <EM>
    3. (订单ID
    4. </EM>




    1. if( get_post_meta( $order_id, _old_status’, true ) !== in-progress ) {
      // Your code
      }

    2. </code>


    要么

    (使用订单对象)





    1. if( $order->get_meta(‘_old_status’) !== in-progress ) {
      // Your code
      }

    2. </code>

登录 后才能参与评论