无法在Magento Admin Sales上按客户全名搜索

时间:2016-04-28 08:44:48

标签: php magento search e-commerce enterprise

我要去Magento-> Sales->订单并尝试在'比尔上搜索全名(姓名姓氏)。输入并没有结果。但如果我只搜索姓名(姓名),我会得到结果。如果我去Magento->客户 - >管理客户并尝试使用全名搜索都能正常工作。

此搜索实施的位置?问题是什么?

3 个答案:

答案 0 :(得分:2)

我之前发现过这个。

如果您尝试在Bill to / Ship to order网格中搜索name + surname,则需要在名字和姓氏之间加上一个双重空格,即:

NOT:

John Smith

试试这个:

John  Smith

唯一的区别是名称之间的双倍空格。我没看过,但是我想Magento用双空格连接网格中的名字,或者它寻找一个中间名,如果不存在,则输出一个空格。

很奇怪,我知道!

答案 1 :(得分:1)

答案 2 :(得分:0)

这仅适用于网格,但似乎可以满足我的要求。

protected function searchWithDoubleSpace($collection, $column)
{
    if(!$value = trim($column->getFilter()->getValue()))
    {
        return $this;
    }
    //if there was a space input
    elseif(preg_match('/ /', $value))
    {
        $revisedValue = str_replace(' ', '  ', $value); // replace a space with double space
        $this->getCollection()->addAttributeToFilter($column->getData('index'), array(
                    array('like' => '%' . $value . '%'),
                    array('like' => '%' . $revisedValue.'%'))
                ); // search with both queries and includes results from both queries (OR)
    }
    else
    {
        $this->getCollection()->addAttributeToFilter($column->getData('index'), array('like' => '%'.$value.'%'));
    }
    return $this;
}

如果有空格输入,则创建两个查询,一个按原样创建,另一个用双倍空格代替单个空格。最后从两个查询中获得结果。

此外,别忘了将这段代码添加到列中

'filter_condition_callback' => array($this, 'searchWithDoubleSpace')