[英]WooCommerce - Check if the products in a specific order are Featured
我正在尝试显示有关包含“精选”产品的“处理中”订单的某些列表的特定字符串。
更准确地说,当两个条件累计满足时,我想回显一条消息:
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循环,并检查每个产品是否具有单独的功能。
<?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';
}
}
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.