我尝试在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数组来解决这个问题。
我的问题是:有更好的方法吗?
答案 0 :(得分:2)
对于来宾,在Magento中,customer_group_id
为0
(未登录)
在你的查询中,你说magento得到的所有组都大于0
array('gt' => 0)
您可以使用以下方法解决此问题:
array('gteq' => 0) // GREATER THAN EQUAL TO 0
而不是
array('gt' => 0) // GREATER THAN 0