быстрое и простое решение - создать визуализацию столбца и выбрать правильное поле в зависимости от типа подписчика, например
app / code / local / Mage / Adminhtml / Block / Newsletter / Subscriber / Renderer / FirstName.php
class Mage_Adminhtml_Block_Newsletter_Subscriber_Renderer_FirstName extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
public function render(Varien_Object $row) {
$value = '';
if ($row->getData('type') == 2) {
$value = $row->getData('customer_firstname');
}
else {
$value = $row->getData('subscriber_firstname');
}
return $value;
}
}
, затем добавьте свой рендер в локальную копию приложения класса сетки абонента / code / local / Mage / Adminhtml / Block / Newsletter / Subscriber / Grid.php
$this->addColumn('firstname', array(
'header' => Mage::helper('newsletter')->__('First Name'),
'index' => 'customer_firstname',
'default' => '----',
'renderer' => 'Mage_Adminhtml_Block_Newsletter_Subscriber_Renderer_FirstName'
));
Примечание.поиск и сортировка не будут работать в полях имени подписчика, чтобы это работало, вам необходимо расширить приложение / code / core / Mage / Newsletter / Model / Mysql4 / Subscriber / Collection.php