在 WooCommerce 中显示不包括产品类别的订单项目名称
Display orders items names excluding a product category in WooCommerce
使用 WooCommerce,我在下面的代码中遇到了问题:我尝试从我的循环中跳过特定类别。产品已被跳过,但一些剩余产品多次显示:
foreach ( $order->get_items() as $item_id => $item ) {
$product_id = $item->get_product_id();
$terms = get_the_terms( $product_id, 'product_cat' );
foreach ($terms as $term) {
if ($product_cat_id != 38355) { //category id
echo $name = $item->get_name().'<br>';
}
}
}
我怎样才能避免这个项目名称在这个循环中重复?
您的代码中未定义变量 $product_cat_id
,因此您的 if 语句始终为真。
要检查订单商品中的产品类别,请改用 conditional function has_term()
。它将避免多次显示产品名称,属于 38355
类别 ID 的项目将被排除。
这是您重新访问的简化代码版本:
$item_names = array(); // Initializing
foreach ( $order->get_items() as $item ) {
// Excluding items from a product category term ID
if ( ! has_term( 38355, 'product_cat', $item->get_product_id() ) ) {
$item_names[] = $item->get_name();
}
}
// Output
echo implode( '<br>', $item_names );
现在应该可以正常工作了
使用 WooCommerce,我在下面的代码中遇到了问题:我尝试从我的循环中跳过特定类别。产品已被跳过,但一些剩余产品多次显示:
foreach ( $order->get_items() as $item_id => $item ) {
$product_id = $item->get_product_id();
$terms = get_the_terms( $product_id, 'product_cat' );
foreach ($terms as $term) {
if ($product_cat_id != 38355) { //category id
echo $name = $item->get_name().'<br>';
}
}
}
我怎样才能避免这个项目名称在这个循环中重复?
您的代码中未定义变量 $product_cat_id
,因此您的 if 语句始终为真。
要检查订单商品中的产品类别,请改用 conditional function has_term()
。它将避免多次显示产品名称,属于 38355
类别 ID 的项目将被排除。
这是您重新访问的简化代码版本:
$item_names = array(); // Initializing
foreach ( $order->get_items() as $item ) {
// Excluding items from a product category term ID
if ( ! has_term( 38355, 'product_cat', $item->get_product_id() ) ) {
$item_names[] = $item->get_name();
}
}
// Output
echo implode( '<br>', $item_names );
现在应该可以正常工作了