Prestashop - 后台 - 添加订单显示地址

Prestashop - Backoffice - Add Order show address

当我在后台尝试添加订单并搜索我的客户时,我想在小框中显示客户的地址。 AddOrder-Search for Customer screenshot

在 /themes/default/template/controllers/orders/form.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/>';

但这只是显示为 "undefined" 所以我想我需要在 controllers/admin/AdminCustomersController.php (searchCustomers) 中添加一些内容,但我不确定。

有人可以告诉我我缺少什么代码吗?

我正在使用 Prestashop 1.6.1.7

要显示数据,如果数据不存在,则需要获取数据。在这种情况下,this.addresses 通知未定义,因为它没有 "exist".

您可以在 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 />';

不要忘记设置正确的classclass AdminCustomersController extends AdminCustomersControllerCore然后删除文件cache/class_index.php