检查产品是否属于 Woocommerce 中的特定产品类别
Check if a product belongs to a specific product category in Woocommerce
在 Woocommerce 中,我想检查产品是否属于产品类别 "soap"。
我正在使用此代码:
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$_product = wc_get_product( $values['data']->get_id() );
$getProductDetail = wc_get_product( $values['product_id'] );
echo "<b>".$_product->get_title() .'</b> <br> Quantity: '.$values['quantity'].'<br>';
// $category[] = $item->slug;
// echo $category[0]->cat_name;
$categories = $_product->get_categories();
if(has_term( 'soap',$categories )){
echo "success";
}else{
echo "nope";
}
}
?>
但是我无法让它工作,因为我 "nope"。我认为这是问题所在的代码部分:
$categories = $_product->get_categories();
if(has_term( 'soap',$categories )){
echo "success";
}else{
echo "nope";
}
}
感谢您的帮助
已更新:这是使其工作的正确方法:
foreach(WC()->cart->get_cart() as $cart_item ) {
// The instance of the WC_Product object
$_product = $cart_item['data'];
// Some output
echo '<b>'.$cart_item['data']->get_title().'</b> <br>';
echo 'Quantity: '.$cart_item['quantity'].'<br>';
// Check for a specific product category
if( has_term( 'soap', 'product_cat', $cart_item['product_id'] ) ){
echo "success";
} else {
echo "nope";
}
}
已经过测试并可以正常工作。
备注:
- 要从购物车商品中获取
WC_Product
对象,只需使用 $cart_item['data']
- 由于产品变体不管理产品类别或产品标签,在这种情况下我们得到
$cart_item['product_id']
允许的父变量产品 ID…
因此,始终在购物车项目中使用 $cart_item['product_id']
来定位产品类别或产品标签。
- Woocommerce 产品类别是自定义分类法,不同于 Wordpres 类别。
product_cat
是产品类别的分类法,用于 has_term()
和一些与术语相关的其他 Wordpress 函数。
在 Woocommerce 中,我想检查产品是否属于产品类别 "soap"。
我正在使用此代码:
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$_product = wc_get_product( $values['data']->get_id() );
$getProductDetail = wc_get_product( $values['product_id'] );
echo "<b>".$_product->get_title() .'</b> <br> Quantity: '.$values['quantity'].'<br>';
// $category[] = $item->slug;
// echo $category[0]->cat_name;
$categories = $_product->get_categories();
if(has_term( 'soap',$categories )){
echo "success";
}else{
echo "nope";
}
}
?>
但是我无法让它工作,因为我 "nope"。我认为这是问题所在的代码部分:
$categories = $_product->get_categories();
if(has_term( 'soap',$categories )){
echo "success";
}else{
echo "nope";
}
}
感谢您的帮助
已更新:这是使其工作的正确方法:
foreach(WC()->cart->get_cart() as $cart_item ) {
// The instance of the WC_Product object
$_product = $cart_item['data'];
// Some output
echo '<b>'.$cart_item['data']->get_title().'</b> <br>';
echo 'Quantity: '.$cart_item['quantity'].'<br>';
// Check for a specific product category
if( has_term( 'soap', 'product_cat', $cart_item['product_id'] ) ){
echo "success";
} else {
echo "nope";
}
}
已经过测试并可以正常工作。
备注:
- 要从购物车商品中获取
WC_Product
对象,只需使用$cart_item['data']
- 由于产品变体不管理产品类别或产品标签,在这种情况下我们得到
$cart_item['product_id']
允许的父变量产品 ID…
因此,始终在购物车项目中使用$cart_item['product_id']
来定位产品类别或产品标签。 - Woocommerce 产品类别是自定义分类法,不同于 Wordpres 类别。
product_cat
是产品类别的分类法,用于has_term()
和一些与术语相关的其他 Wordpress 函数。