opencart 2.0.1.1 - 下单时奖励积分不减

opencart 2.0.1.1 - Rewards points are not subtracting when order is placed

我有 opencart 2.0.1.1,我面临一个问题,假设我商店的一位顾客有 500 个奖励积分,他使用 100 个奖励积分下订单购买产品。订单已下达,但当同一用户再次下订单时,它仍会向该客户显示 500 个奖励积分,直到商店管理员更改该客户先前订单的状态以完成。 我发现这个 link 和我有同样的问题,但他使用的解决方案并没有解决我的问题。另外,我也没有在 opencart 论坛上找到任何解决方案。有帮助吗?

https://github.com/opencart/opencart/issues/3637

更新:

我想我需要修改这个文件中这个confirm()函数中的插入查询catalog/model/total/reward.php。我正在处理,但如有任何帮助,我们将不胜感激!

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()");
        }
    }

通过将默认订单状态更改为处理中,问题已解决。 之前默认订单状态为Pending,因此未减去奖励积分。因此只有当订单状态不是pending时才会减去奖励积分。 问题已解决!