我已经设置了一份复杂的磁电订单电子邮件,可以在结账时向客户发送预计的交货日期。但是对于特定的产品类别,我不想回应预计的交货日期。
我想知道这样做的最佳方法......
我首先想到的是从产品ID中获取类别ID,然后执行if语句来说明category = A不显示代码显示代码。
我尝试使用此
$ordered_items = $_order->getAllItems();
Foreach($ordered_items as $item){
$itemId = $item->getItemId();
$itemsku = $item->getSku();
$catId = $item->getProduct()->getCategoryIds();
} ?>
但这刚刚回归"阵列"当我尝试回应$ catId。
我的另一个想法是获取产品名称,并说出如果名称包含(' sometext'),执行。
1)如何正确获取属于单一类别的产品的类别ID。
2)如何使用if语句说出"如果产品名称包含(' sometext')"
问候,弗兰克
答案 0 :(得分:0)
产品可以属于多个类别,这就是为什么你得到一个数组而不是单个id。您可以在代码后添加以下内容,以检查您感兴趣的类别。请注意,如果您有相同类型的类别名称,那么使用ID进行检查更为明智。
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
->addAttributeToSelect('name')
->addAttributeToSelect('url')
->addAttributeToFilter('entity_id', $catId)
->addIsActiveFilter();
foreach($categoryCollection as $cat){
if(strpos($cat->getName(), "your_sometext") !== false){
echo 'your category was in the product';
}
// or
if($cat->getId() == 100){
echo 'your category was in the product';
}
}