opencart获取成功页面的最后订单ID

时间:2013-07-04 13:36:18

标签: php mysql database e-commerce opencart

是否可以获取最后一个订单ID来订购成功页面。?我只想获得最后的订单ID,所以我可以设置一个指向我的模板文件success.tpl的链接,该链接将转到最后的订单信息页面。 我曾尝试过controller/checkout/success.php

$this->load->model('checkout/order');
$order_last_id = $this->db->getLastId();
$this->data['order_info'] = $this->url->link('account/order/info', 'order_id=' . $order_last_id,  'SSL');

但是,运气不好我得到0订单ID

的网址
index.php?route=account/order/info&order_id=0

任何人都可以帮我获取最后的订单ID。?

感谢...

3 个答案:

答案 0 :(得分:10)

在此代码之前打开/catalog/controller/checkout/success.php

$this->cart->clear();

$this->data['order_id'] = $this->session->data['order_id'];

然后在您的模板中使用if来测试$order_id是否为空

<?php if(!empty($order_id)): ?>
... CODE HERE using $order ID ...
<?php endif; ?>

答案 1 :(得分:2)

只要你没有编辑核心文件......

在/catalog/controller/checkout/success.php的第5行之前添加:

$this->data['order_id'] = $this->session->data['order_id'];

你遇到的问题是你假设用户已经登录而不是访客用户来解决这个问题,通过将此添加到你的success.tpl来检查用户是否已登录用户

<p><?php echo "Your order ID is "; ?>
<?php if($logged) { ?>
<a href="index.php?route=account/order/info&order_id=<?php echo $order_id; ?>">
<?php } ?>
<?php echo $order_id; ?>
<?php if($logged) { ?>
</a>
<?php } ?>
</p>

这样,如果他们已登录就会创建一个链接。如果没有,则只显示没有链接的ID号。

答案 2 :(得分:0)

我获得了opencart-2.0.3.1的orderID,如下所示

  /*after this this line: $this->model_account_activity->addActivity('order_guest', $activity_data);} */
    $orderID = $this->session->data['order_id'];