【发布时间】:2018-09-25 12:54:49
【问题描述】:
我正在尝试针对包含“特色”产品的特定“处理中”订单列表显示特定字符串。
更准确地说,我想在累积满足两个条件时回显一条消息:
1) 订单状态为“处理中”;和
2) 相应订单中的所有产品都标记为“精选”。
换句话说,一旦我手动将所有订购的产品标记为“精选”,我的用户帐户页面上就会显示一条特定的消息。
到目前为止我的代码(但没有给我想要的结果):
<?php
foreach ( $order_summary as $order ) :
$order = wc_get_order( $order->order_id );
$order_id = $order->get_id();
$order_items = get_products_for_order( $order_id );
if ( $order->get_status() == 'processing' ) {
if ( $order_items->is_featured() ) {
echo 'Something';
} else {
echo 'Something else';
}
}
?>
我不确定如何正确检查相应订单中是否有(或没有)“精选”产品。
有什么想法吗?
【问题讨论】:
-
get_products_for_order()函数返回什么?如果是一系列产品,则需要在这些产品上运行 foreach 循环,然后再检查is_featured() -
@johnnyd23,我实际上正在对市场插件进行一些更改。 get_products_for_order() 函数如下:
public static function get_products_for_order( $order_id ) {global $wpdb;$vendor_products = array(); $results = $wpdb->get_results( " SELECT product_id FROM {$wpdb->prefix}pv_commission WHERE order_id = {$order_id} AND status != 'reversed' AND vendor_id = " . get_current_user_id() . " GROUP BY product_id" ); foreach ( $results as $value ) {$ids[ ] = $value->product_id;} return $ids;}你能帮帮我吗?我无法掌握它。还有,@loictheaztec?
标签: php woocommerce product orders