1

我试图在 Adminhtml_Block_Sales_Order_Grid 上为客户组添加一列。并且部分成功,我遇到的唯一问题是如果订单是由来宾客户完成的,那么该列是空的。

我的代码:

<?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 数组解决了这个问题。

我的问题是:有没有更好的方法来做到这一点?

4

1 回答 1

3

对于客人,在 Magento 中,customer_group_id0(未登录)

在您的查询中,您说 magento 获取所有大于 0 的组 array('gt' => 0)

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

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

代替

array('gt' => 0) // GREATER THAN 0
于 2012-08-20T10:04:15.643 回答