2015-05-19 131 views
1

请问我需要关于几年前的话题的帮助。我需要检索产品订阅警报(如果客户已发送产品警报,则他不应该能够发送它两次,所以这个产品的警报应该消失这个客户)。我发现这magento产品警报应该在订阅时消失

$customer_product_alerts = 
Mage::getModel('productalert/stock')->getCollection()>addFieldToFilter ('customer_id', $customer_id); 

在先例的讨论,但我不知道在哪里应用它。

回答

0

使用此代码获取订阅的所有客户产品。

$customer_id = Mage::getSingleton('customer/session')->getCustomer()->getId(); 
if($customer_id) { 
    $customer_stock_alerts = Mage::getModel('productalert/stock')->getCollection()->addFieldToFilter('customer_id', $customer_id); 
    $i = 0; 
    $product_ids = array(); 
    foreach ($customer_stock_alerts as $alert) 
    { 
    $product_ids[i] = $alert->getProductId(); 
    $i++; 
    } 
} 

您将所有当前客户的产品ID。
使用in_array方法检查产品ID与客户订阅的产品id。如果真的隐藏块,则显示块。
这看起来像下面的东西。

if(!in_array($_product->getId(),$product_ids)) 
{ 
    echo $this->getChildHtml('alert_urls'); 
} 

希望可以帮助你,
感谢。