首页 > 解决方案 > 如何检查任何 WooCommerce 订单是否包含产品 ID?

问题描述

我正在编写一个插件,它应该检查订单是否包含产品 ID。

如果有包含产品 ID 的订单,我如何检查所有订单,然后将此订单标记为已完成?

我知道如何在thankyou-page上查看订单,但是已经给出了order-ID:

谢谢大家和@johnnyd23 提供下面的代码。

foreach ( $order_summary as $order ) {
    $order = wc_get_order( $order->order_id );
    $order_id = $order->get_id();
    $items = $order->get_items();

    if ( $order->get_status() == 'processing' ) {
        foreach ( $items as $item ) {
            $product_id = $item['product_id'];
            if ( $product_id == XYZ ) {
                 // do something
            }
        }
    }
}

标签: phpwordpresswoocommerce

解决方案


您应该做的是检查此订单 ID 是否是您需要的并更新订单状态

 if($order_id == 'Your_required_id'){
   $order->update_status( 'completed' );
 }

你可以改变你的代码如下

foreach ( $order_summary as $order ) {
    $order = wc_get_order( $order->order_id );
    $order_id = $order->get_id();
    $items = $order->get_items(); 
    if ( $order->get_status() == 'processing' ) {
      foreach ( $items as $item ) {
       $product_id = $item['product_id'];
        if ( $product_id == XYZ ) {
         // do something
          $order->update_status( 'completed' );
      }
     }
    }
}

我没有测试过。根据您的需要定制代码


推荐阅读