0

在我的网站上,在订单历史记录(my_account/order_history)上显示产品名称非常重要,而在 opencart 中只显示订单 ID。我已经部分解决了这个问题,但是我非常感谢一些提示如何继续。该主题曾于 2011 年在http://forum.opencart.com/viewtopic.php?f=20&t=46387&p=437991#p437991

  1. 主要问题是文件 order_list.tpl 无权访问$product['name']控制器 order.php (其中定义为function info()而不是function index()),只有 order_info.tpl 有。我试图将部分代码从函数 info() 复制到函数 index() 但它仍然无法访问那里。任何提示我必须做什么?我需要更改模型文件中的某些内容吗?或者如何修改控制器文件(order.php)以允许 order_list.tpl 具有正确的访问权限?
  2. 我尝试过的一种方法是在新 div 中的 order_list.tpl 上使用 javascript 呈现内容 order_info(如http://goo.gl/nMXhEu中所述)但是作为 js 中的新手,我无法修改它以在页面后立即打开 -负载(不移动)。我试图将鼠标悬停更改为加载,然后再加载其他一些但没有成功..

$("body").on("mouseover", function(e){
    $(".order-info").load(e.target.href, function(){
        $(e.target).addClass("unloaded");
    });
});

任何帮助或提示如何进行将不胜感激

4

3 回答 3

0
$(function () {
  $(".order-info a").each(function () {
    var $me  = $(this);     
    $me.load($me.attr('href'),function(){ 
            $me.addClass("unloaded");
    };      
});
于 2013-09-16T19:20:48.097 回答
0

感谢cske的帮助,我真的很感激。但是我仍然无法使其工作。我也尝试做一些小的调整,但没有任何成功(但我不是 js 开发人员)。

所以我决定再次尝试修改控制器文件,使其$product['name']可以访问 order_list.tpl(如问题中所述)。我能够通过添加

 $products = $this->model_account_order->getOrderProducts($result['order_id']);

foreach ($products as $product) {
$this->data['products'][] = array('name'=> $product['name'],);
}

foreach ($results as $result) {

例如,这使得在订单数组中调用它成为可能

$this->data['orders'][] = array(
'product_name'       => $product['name'],

然而,它是有效的解决方案:1. 每个订单只显示一种产品 2. 它会发出通知

Notice: Undefined index: order_id 

可以在管理区域关闭通知。

我对这个解决方案很好,但显然它可能不是其他商店的正确解决方案。

于 2013-09-22T13:19:32.613 回答
0

我使用了仅显示订单的第一个产品的解决方案来确定如何显示订单的所有产品及其数量。

代替:

foreach ($products as $product) {
    $this->data['products'][] = array('name'=> $product['name'],);
}

利用:

$this->data['products'] = array();
$prod = "";

foreach ($products as $product) {
    $prod .= $product['quantity'] . " x " . $product['name'] .'<br>';
}

并在:

$this->data['orders'][] = array(

添加:

'product_data' => $prod,

然后在 order_list.tpl 中,您可以获得包含以下数量的产品列表:

<?php echo $order['product_data']; ?>
于 2015-11-27T01:24:31.560 回答