This is the dataprovider code which gets the customer’s info in my admin grid. It doesnt show the customer name for guest customer. How can I show customer name for guests customers?
/**
* @return array
*/
public function getData()
{
$collection = $this->getCollection();
$filterMap = $this->getFilterMap();
$storeIds = $this->dataHelper->getStoreIds();
$collection->addOrderData()
->addCustomerData()
->addAdminData()
->addLastReplyData();
if (false === $this->isArchive()) {
$collection->addNotArchiveFilter();
} else {
$collection->addArchiveFilter();
}
foreach ($filterMap as $filter => $alias) {
$collection->addFilterToMap($filter, $alias);
}
if (!empty($storeIds)) {
$collection->addFieldToFilter('o.store_id', ['in' => $storeIds]);
}
return $collection->toArray();
}
/**
* @return bool|false|int
*/
public function isArchive()
{
return mb_strpos($this->request->getServerValue('HTTP_REFERER'), 'returnsarchive');
}
/**
* @param MagentoFrameworkApiFilter $filter
* @return $this
*/
public function addFilter(MagentoFrameworkApiFilter $filter)
{
if ('fulltext' === $filter->getConditionType()) {
$this->fulltextFilter->apply($this->getCollection(), $filter);
} else {
$filterMap = $this->getFilterMap();
if (isset($filterMap[$filter->getField()])) {
$filter->setField($filterMap[$filter->getField()]);
}
parent::addFilter($filter);
}
$this->searchCriteriaBuilder->addFilter($filter);
return $this;
}
/**
* @return array
*/
private function getFilterMap()
{
return $filterMap = [
'increment_id' => 'main_table.increment_id',
'created_at' => 'main_table.created_at',
'order_increment_id' => 'o.increment_id',
'order_date' => 'o.updated_at',
'entity_id' => 'main_table.entity_id',
'customer_name' => 'c.name',
'reply_at' => 'rm.created_at',
'status' => 'main_table.status',
'store_id' => 'o.store_id',
'manager_name' => new Zend_Db_Expr('CONCAT(au.`firstname`, " ", au.`lastname`)')
];
}
/**
* @return $this
*/
public function getSearchCriteria()
{
if (!$this->searchCriteria) {
$this->searchCriteria = $this->searchCriteriaBuilder->create();
$this->searchCriteria->setRequestName($this->name);
}
return $this->searchCriteria;
}
/**
* Returns Search result
*
* @return MagentoFrameworkApiSearchSearchResultInterface
*/
public function getSearchResult()
{
return $this->reportingInterface->search($this->getSearchCriteria());
}
}