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时才会减去奖励积分。
问题已解决!
我有 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时才会减去奖励积分。 问题已解决!