php - 如何检查任何 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
}
}
}
}
解决方案
您应该做的是检查此订单 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' );
}
}
}
}
我没有测试过。根据您的需要定制代码
推荐阅读
- hibernate - 休眠多个表的单个外键
- oracle - 如何使用 SET 运算符从 oracle 集合中查找不区分大小写的重复项
- java - 为什么 switch-case 部分和运行时多态性不起作用?
- c++ - CMAKE 将变量传递到包含的 cmake 子文件中
- amazon-web-services - 如何确保仅针对 CodeBuild 中的拉取请求合并触发构建
- jmeter - 即使安装在本地主机中并在浏览器中配置,也会出现根 CA 证书消息
- html - 我的博客网站有问题。在我的移动模式下
- html - 在 HTML 页面中添加额外的字体
- c++ - 对多种类型的数据进行布尔测试的 C++ 模板得到匹配错误
- javascript - “this”关键字如何以特定方式工作?