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

Product Qty Dropdown in Cart Page - Opencart

我正在 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 也没有任何结果。 有什么建议吗?

首先打开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'],

第二次打开控制器catalog\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