Magento:显示"访客"将客户组过滤器添加到订单网格时

时间:2012-08-20 08:48:37

标签: php magento magento-1.7

我尝试在Adminhtml_Block_Sales_Order_Grid上为Customer Group添加一列。 并且部分成功,我唯一的问题是,如果订单是由客户客户完成的,那么列是空的。

我的代码:

<?php
class MyNamespace_CustomizeGrids_Block_Sales_Order_Grid extends                         Mage_Adminhtml_Block_Sales_Order_Grid
{
    protected function _prepareColumns() {
        $groups = Mage::getResourceModel('customer/group_collection')
                    ->addFieldToFilter('customer_group_id', array('gt' => 0))
                    ->load()
                    ->toOptionHash();

        $groups[0] = "Guest";


        $this->addColumn('customer_group_id', array(
            'header'  => Mage::helper('customer')->__('Customer Group'),
            'width'   => '100',
            'index'   => 'customer_group_id',
            'type'    => 'options',
            'options' => $groups,
        ));

        $this->addColumnsOrder('customer_group_id', 'shipping_name');

        return parent::_prepareColumns();
    }
}

正如你所看到的,我通过操纵$ groups数组来解决这个问题。

我的问题是:有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

对于来宾,在Magento中,customer_group_id0(未登录)

在你的查询中,你说magento得到的所有组都大于0 array('gt' => 0)

您可以使用以下方法解决此问题:

array('gteq' => 0) // GREATER THAN EQUAL TO 0

而不是

array('gt' => 0) // GREATER THAN 0