Предварительный магазин - Бэк-офис - Добавить заказ показать адрес
Когда я нахожусь в бэк-офисе и пытаюсь добавить заказ и выполнить поиск своих клиентов, я хотел бы показать адрес клиента в маленьком окошке. Добавить заказ - Поиск скриншота клиента
В /темы/по умолчанию/шаблон/контроллеры/заказы/форма.tpl у меня есть:
function searchCustomers()
{
..........................
html += '<div class="panel-heading">'+this.company+' '+this.firstname+' '+this.lastname;
html += '<span class="pull-right">#'+this.id_customer+'</span></div>';
html += '<span>'+this.email+'</span><br/>';
html += '<span>'+this.addresses+'</span><br/>';
Но это просто отображается как "неопределенный" , поэтому я думаю, что мне нужно что-то добавить в controllers/admin/AdminCustomersController.php (Поисковые запросы) но я не уверен.
Может кто-нибудь сказать мне, что код, который я пропустил?
Я использую Prestashop 1.6.1.7
1 answers
Чтобы отобразить данные, вам нужно получить данные, если их там нет. В этом случае this.address уведомляет о неопределенном, потому что он "не существует".
Вы можете использовать это в override/controllers/admin/AdminCustomerControllers.php
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
, а затем удалить файл cache/class_index.php