购物车页面中的产品数量下拉 - Opencart

时间:2016-03-29 19:04:49

标签: php opencart opencart2.x opencart-module

我正在开发Opencart 2.x中的购物车。

一切都很顺利但我被困在一个地方我需要cart.tpl下拉菜单,而不是在更新购物车按钮的输入框中显示数量。

我已经调查了cart.php的控制器,但无法确定从何处获取数量。

代码调查如下:

$data['products'][] = array(
    'cart_id'   => $product['cart_id'],
    'thumb'     => $image,
    'name'      => $product['name'],
    'model'     => $product['model'],
}

我尝试在这里添加数量,但无法使用cart.tpl。

然后我决定检查购物车add()功能并获取数量,如下所示:

public function add() {
  $this->load->model('catalog/product');
  $product_info = $this->model_catalog_product->getProduct($product_id);
  $data['qty'] = sprintf($product_info['quantity']);
  // I added this data line
}

但即便如此,在cart.tpl上做echo $qty也没有任何帮助。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

首先打开system \ library \ cart \ cart.php并找到以下代码行:

$product_data[] = array(
                'cart_id'         => $cart['cart_id'],
                'product_id'      => $product_query->row['product_id'],

在这些代码行下面添加以下行:

'product_quantity'           => $product_query->row['quantity'],

第二个打开控制器目录\ controller \ checkout \ cart.php并找到以下代码行:

$data['products'][] = array(
                'cart_id'   => $product['cart_id'],

在这些代码行下面添加以下行:

'product_quantity'=>$product['product_quantity'],

最后在catalog / view / theme / YOUR_ACTIVATED_THEME / template / checkout / cart.tpl中找到以下代码行

<td class="text-left">
                  <div class="input-group btn-block" style="max-width: 200px;">
                      <input type="text" name="quantity[<?php echo $product['cart_id']; ?>]"
                             value="<?php echo $product['quantity']; ?>" size="1" class="form-control"/>
                <span class="input-group-btn">
                <button type="submit" data-toggle="tooltip" title="<?php echo $button_update; ?>"
                        class="btn btn-primary"><i class="fa fa-refresh"></i></button>
                <button type="button" data-toggle="tooltip" title="<?php echo $button_remove; ?>"
                        class="btn btn-danger" onclick="cart.remove('<?php echo $product['cart_id']; ?>');"><i
                            class="fa fa-times-circle"></i></button>
                </span></div>
              </td>

替换为以下代码:

<!--Changes done-->
              <td class="text-left">
                  <div class="input-group btn-block" style="max-width: 200px;">
                      <select name="quantity[<?php echo $product['cart_id']; ?>]"
                              onchange='this.form.submit()'>
                          <?php for($cp=1; $cp<=$product['product_quantity']; $cp++){ ?>
                          <option
                          <?php if($product['quantity']==$cp){ echo "selected"; } ?>
                          value="<?php echo $cp; ?>"><?php echo $cp; ?></option>
                          <?php } ?>
                      </select>
    <span class="input-group-btn">
    <button type="button" data-toggle="tooltip" title="<?php echo $button_remove; ?>"
            class="btn btn-danger" onclick="cart.remove('<?php echo $product['cart_id']; ?>');"><i
                class="fa fa-times-circle"></i></button>
    </span>
                  </div>
              </td>
              <!--End of Changes done-->

您可以从以下链接下载更改的文件,查看更改以及查看图片中的演示: https://webocreation.com/blog/dropdown-quantity-product-cart-page-opencart-2-2