首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prestashop - Backoffice -添加订单展示地址

Prestashop - Backoffice -添加订单展示地址
EN

Stack Overflow用户
提问于 2017-02-17 22:44:21
回答 1查看 382关注 0票数 2

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

在/themes/default/template/controllers/orders/form.tpl中,我有:

代码语言:javascript
复制
 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 (searchCustomers)中添加一些东西,但我不确定。

谁能告诉我我漏掉了什么代码?

我使用的是Prestashop 1.6.1.7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-18 01:23:51

要显示数据,您需要在数据不存在的情况下获取数据。在这种情况下,this.addresses通知undefined,因为它不“存在”。

您可以在override/controllers/admin/AdminCustomerControllers.php中使用它

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42300702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档