我有opencart 2.0.1.1并且我遇到一个问题,就是说我的商店的客户有500个奖励积分,并且它通过使用100个奖励积分下订单购买产品。订单到位但当同一用户再次下订单时,它仍向该客户显示500个奖励积分,直到商店管理员更改该客户的先前订单的状态才能完成。 我发现这个链接与我的问题相同,但他使用的解决方案并不能解决我的问题。另外,我还没有在opencart论坛上找到任何解决方案。任何帮助?
https://github.com/opencart/opencart/issues/3637
更新:
我想我需要在此文件catalog/model/total/reward.php
中的confirm()函数中修改插入查询。我在这,但任何帮助将不胜感激!
public function confirm($order_info, $order_total) {
$this->load->language('total/reward');
$points = 0;
$start = strpos($order_total['title'], '(') + 1;
$end = strrpos($order_total['title'], ')');
if ($start && $end) {
$points = substr($order_total['title'], $start, $end - $start);
}
if ($points) {
$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_info['order_id'] . "', description = '" . $this->db->escape(sprintf($this->language->get('text_order_id'), (int)$order_info['order_id'])) . "', points = '" . (float)-$points . "', date_added = NOW()");
}
}
答案 0 :(得分:0)
通过将默认订单状态更改为 处理 来解决问题。 在默认订单状态为 待处理 之前,由于该状态未扣除奖励积分。因此,当状态未处于待处理状态时,仅扣除奖励积分。 问题解决了!