当我在后台并尝试添加订单并搜索我的客户时,我想在小方框中显示客户的地址。 AddOrder-Search for Customer screenshot
> /themes/default/template/controllers/orders/form.tpl我有:int
但这只是表现为“未定义” 所以我想我需要在controllers / admin / AdminCustomersController.php(searchCustomers)中添加一些内容,但我不确定。
有人能告诉我我错过了什么代码吗?
我正在使用Prestashop 1.6.1.7
答案 0 :(得分:1)
要显示数据,您需要获取数据(如果数据不存在)。在这种情况下,this.addresses通知undefined,因为它不“存在”。
您可以在override / controllers / admin / AdminCustomerControllers.php
中使用它SharedPreferences
这将定义地址(仅限地址的别名,如果您需要更多地址,只需更改行public function ajaxProcessSearchCustomers()
{
$searches = explode(' ', Tools::getValue('customer_search'));
$customers = array();
$searches = array_unique($searches);
foreach ($searches as $search) {
if (!empty($search) && $results = Customer::searchByName($search, 50)) {
foreach ($results as $result) {
if ($result['active']) {
$customer = new Customer($result['id_customer']);
$addresses = $customer->getAddresses($this->context->language->id);
$result['addresses'] = '';
if(is_array($addresses) and !empty($addresses))
{
foreach ($addresses as $address) {
$result['addresses'] .= $address['alias'].'<br />';
}
}
$customers[$result['id_customer']] = $result;
}
}
}
}
if (count($customers)) {
$to_return = array(
'customers' => $customers,
'found' => true
);
} else {
$to_return = array('found' => false);
}
$this->content = Tools::jsonEncode($to_return);
}
。
不要忘记设置正确的班级$result['addresses'] .= $address['alias'].'<br />';
,然后删除文件class AdminCustomersController extends AdminCustomersControllerCore