如何在magento中加载不活跃的客户

时间:2011-09-24 21:27:57

标签: magento magento-1.4

我只需从magento集合加载非活动客户。

$collection = Mage::getModel('customer/customer')
    ->getCollection()
    ->addNameToSelect()
    ->addAttributeToSelect('email')
    ->addAttributeToSelect('created_at')
    ->addAttributeToSelect('group_id')
    ->addAttributeToSelect('confirmation') 
    ->addAttributeToSelect('*');`

  $collection 
    ->joinAttribute('billing_postcode', 'customer_address/postcode', 'default_billing', null, 'left')
    ->joinAttribute('billing_city', 'customer_address/city', 'default_billing', null, 'left')
    ->joinAttribute('billing_telephone', 'customer_address/telephone', 'default_billing', null, 'left')
    ->joinAttribute('billing_region', 'customer_address/region', 'default_billing', null, 'left')
    ->joinAttribute('billing_country_id', 'customer_address/country_id', 'default_billing', null, 'left');

从这个系列中我试图添加

$collection->getSelect()->where("e.is_active = 0 ");

但它会引发异常,并且无法仅在管理自定义模块中加载非活动客户。请帮我加载不活跃的客户。

注意: 默认情况下,从前端开始,我将所有客户注册为“is_active”设置为0,因此在管理员批准后,只有客户才会处于活动状态。为此,我需要加载所有这些不活跃的客户。

2 个答案:

答案 0 :(得分:1)

尝试$collection->addAttributeToFilter('is_active', 0)

答案 1 :(得分:0)

根据this magento thread,客户实体的默认属性定义可能存在错误。尝试在此方法中查看Mage_Customer_Model_Entity_Customer

protected function _getDefaultAttributes()
{
    return array(
        'entity_type_id',
        'attribute_set_id',
        'created_at',
        'updated_at',
        'increment_id',
        'store_id',
        'website_id'
    );
}

应该有:

protected function _getDefaultAttributes()
{
    return array(
        'entity_type_id',
        'attribute_set_id',
        'created_at',
        'updated_at',
        'increment_id',
        'store_id',
        'website_id',
        'is_active'
    );
}

如果是这种情况,那么Zyava's solution就是这个:$collection->addFieldToFilter('is_active', 0) 不会起作用。