【问题标题】:need user to land on billing page from url in opencart, need already loaded shopping cart需要用户从opencart中的url登陆计费页面,需要已经加载的购物车
【发布时间】:2012-12-10 06:53:31
【问题描述】:

我想通过将用户超链接到 opencart 上的计费页面来将用户从邮件中重定向 保持产品价值 已经上传到购物车.. 而不是显示购物车,我只想让用户看到帐单,填写表格并结帐.. 我曾想过在购物车中创建一个产品并将用户重定向到其计费页面,但如果我使用该产品的计费页面,当从外部链接使用时,COOKIE VALUE 会过期..

有没有办法让客户直接进入结算页面,同时保持产品已加载到购物车中? (我只有一种产品。)

【问题讨论】:

    标签: php opencart


    【解决方案1】:

    我可以考虑对结帐控制器进行小修改。

    假设您的时事通讯中会有这样的链接:

    http://your.eshop.com/index.php?route=checkout/checkout&add_product=1&product_id=10&pieces=1
    

    然后立即在文件的开头catalog/controller/checkout/checkout.php(在if ((!$this->cart->hasProducts() ... 行之前您必须检查是否有if(isset($this->request->get['add_product']) && $this->request->get['add_product']),如果有,请执行$this->cart->add($this->request->get['product_id'], $this->request->get['pieces']);

    整个代码可能如下所示:

    public function index() {
        if(isset($this->request->get['add_product']) && $this->request->get['add_product']) {
            $this->cart->add($this->request->get['product_id'], $this->request->get['pieces']);
        } // END OF MODIFICATION, the next code is already in checkout.php controller
    
        // Validate cart has products and has stock.
        if ((!$this->cart->hasProducts() && empty($this->session->data['vouchers'])) || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {
            $this->redirect($this->url->link('checkout/cart'));
        }
    

    如果你想让用户购买不止一种产品,链接应该是这样的

    http://your.eshop.com/index.php?route=checkout/checkout&add_product=1&product_id[]=10&pieces[]=1&product_id[]=45&pieces[]=2&product_id[]=37&pieces[]=1
    

    现在代码应该如下所示:

    if(isset($this->request->get['add_product']) && $this->request->get['add_product']) {
        foreach($this->request->get['product_id'] as $i => $product_id) {
            $this->cart->add($product_id, $this->request->get['pieces'][$i]);
        }
    } // END OF MODIFICATION
    

    这段代码会做什么?在点击链接并在浏览器上打开后,代码会将所需的产品添加到购物车中,并且会像往常一样继续进行,因此该过程将与用户转到产品详细信息页面一样,点击“购买”按钮,然后点击您网店中某处的“结帐”链接。

    【讨论】:

      猜你喜欢
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      相关资源
      最近更新 更多