在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";
}
}
?>
然而,当我得到“不”时,我无法使它工作。我认为这是代码的一部分,问题是:
$categories = $_product->get_categories();
if(has_term( 'soap',$categories )){
echo "success";
}else{
echo "nope";
}
}
感谢您的帮助
答案 0 :(得分:1)
已更新:以下是使其正常工作的正确方法:
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']
来定位产品类别或产品标签。product_cat
是与has_term()
一起使用的产品类别的分类以及与术语相关的其他一些Wordpress功能。