Php WooCommerce-检查特定订单中的产品是否具有特色
我试图显示一个特定字符串,该字符串与包含特色产品的特定加工订单列表有关 更准确地说,我想在累计满足两个条件时回显一条消息: 1订单状态为“正在处理”;及 2该订单中的所有产品均标记为特色产品 换句话说,一旦我手动将所有订购的产品标记为特色产品,我的用户帐户页面上就会出现一条特定的消息 到目前为止,我的代码尚未给出所需的结果:Php WooCommerce-检查特定订单中的产品是否具有特色,php,woocommerce,product,orders,Php,Woocommerce,Product,Orders,我试图显示一个特定字符串,该字符串与包含特色产品的特定加工订单列表有关 更准确地说,我想在累计满足两个条件时回显一条消息: 1订单状态为“正在处理”;及 2该订单中的所有产品均标记为特色产品 换句话说,一旦我手动将所有订购的产品标记为特色产品,我的用户帐户页面上就会出现一条特定的消息 到目前为止,我的代码尚未给出所需的结果: <?php foreach ( $order_summary as $order ) : $
<?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\u products\u for\u order函数返回一个产品数组。您需要在该阵列上运行一个foreach循环,并检查每个产品是否具有单独的功能
<?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' ) {
foreach( $order_items as $item ) {
if ( $item->is_featured() ) {
echo 'Something';
} else {
echo 'Something else';
}
}
}
}
?>
评论后编辑:
<?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' ) {
$featured = true;
foreach( $order_items as $item ) {
if ( !$item->is_featured() ) {
$featured = false;
break;
}
}
if( $featured ) {
echo 'Something';
} else {
echo 'Something else';
}
}
}
?>
get_products_for_order函数返回什么?如果是一个产品数组,则需要在这些产品上运行foreach循环,然后再检查是否存在_featured@johnnyd23,我实际上正在对marketplace插件进行一些更改。get_products_for_order函数如下:公共静态函数get_products_for_order$order_id{global$wpdb;$vendor_products=array;$results=$wpdb->get_results从{$wpdb->prefix}pv_commission中选择产品_id,其中order_id={$order\u id}和状态!='reversed'和vendor\u id=.get\u current\u user\u id.GROUP BY product\u id;foreach$results作为$value{$id[]=$value->product\u id;}返回$id;}您能帮我吗?我弄不懂它的窍门。还有,@loictheaztec?我想我已经试过了,但它不能正常工作,也不能满足我的需求。我将尝试更清楚地说明我的目标:我只想在累计满足两个条件时回应一些东西:1订单状态为正在处理;2该订单中的所有产品均标记为特色产品。换句话说,一旦所有订购的产品都被我手动标记为特色产品,我的用户帐户页面上就会出现一条特定的消息。你的更新答案效果不太好,因为无论我是否将产品标记为特色产品,它都会回显“某物”,而不会回显“其他物”。@LoicTheAztec,你能帮个忙吗?没有像“获取产品”这样的功能