paypal结账后无法清除购物车Opencart 2.0.3.1


Unable to clear the cart after paypal checkout Opencart 2.0.3.1

我正在开发opencart 2.0.3.1,在使用Paypal标准支付方式时遇到了这个问题:

当用户使用贝宝结账时,即使下了订单,他的购物车也不会被清空

清除用户购物车的唯一方法是手动返回成功页面,但这是一种不可靠的方法,因为大多数用户都懒得返回商家的网站。

我正在从以下选项中寻找解决方案:

  • opencart扩展,增加了在付款过程中清除购物车的功能
  • 清除购物车的代码块,这样我就可以将其粘贴到贝宝支付处理文件中

解决方案:

添加这行代码

$this->cart->clear();

到该文件:catalog/model/checkout/order.php

转到system/library/cart.php

更换

$this->session->data['cart'] = array();

带有

if (isset($this->session->data['customer_id'])) {
            $customer_id = $this->session->data['customer_id'];
            $this->db->query("UPDATE " . DB_PREFIX . "customer SET cart = '' WHERE customer_id = '" . (int)$customer_id . "'");
        }

如果您不愿意硬编码系统文件,也可以为它编写Vqmod。