在opencart订单历史记录中显示产品名称

时间:2013-09-16 19:14:11

标签: javascript php opencart

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

中开放
  1. 主要问题是文件order_list.tpl无法访问控制器order.php中的$product['name'](其中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中的新手我可以修改它以在页面加载后立即打开(不是在移动中)。我试图改变鼠标悬停加载,之前加载其他一些没有任何成功..

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

    非常感谢任何帮助或提示如何继续

3 个答案:

答案 0 :(得分:0)

$(function () {
  $(".order-info a").each(function () {
    var $me  = $(this);     
    $me.load($me.attr('href'),function(){ 
            $me.addClass("unloaded");
    };      
});

答案 1 :(得分:0)

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

所以我决定再次尝试修改控制器文件,使$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.每个订单只显示一个产品  它引发了通知

Notice: Undefined index: order_id 

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

我对这个解决方案很满意,但显然它可能不适合其他商店。

答案 2 :(得分: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']; ?>