Magento,如果产品名称包含声明

时间:2015-04-24 11:42:22

标签: php magento if-statement

我已经设置了一份复杂的磁电订单电子邮件,可以在结账时向客户发送预计的交货日期。但是对于特定的产品类别,我不想回应预计的交货日期。

我想知道这样做的最佳方法......

我首先想到的是从产品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')"

问候,弗兰克

1 个答案:

答案 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';
    }
}