Для того, чтобы уменьшить ваше количество продукции вам нужно product_id
и его количество , Для уменьшения нужно проверить, является ли qty больше 1 или нет, если это то, что мы можем уменьшить еще, нам нужно удалить весь продукт, если qty равен только 1.
Вещи, которые нужно изменить, - это ваша страница просмотра, добавьте плюс, минус-иконки, затем контроллер, затем библиотека, затем верните результат ajax. Я постараюсь сделать это как можно проще.
Позволяет начать с просмотром страницей в моем случае это products.tpl
кода я writteb получить плюс кнопку минус
<table class="table scroll">
<tbody>
<?php foreach ($products as $product) { ?>
<tr >
<td >
<input type="text" style="width: 20px; height: 20px;font-weight:700 " disabled="true" value="<?php echo $product['quantity']; ?>" class="text-center">
</td>
<td class="text-left">
<a href="<?php echo $product['href']; ?>">
<b><?php echo $product['name']; ?></b>
</a>
</td>
<td style=" text-align:right">
<i class="fa fa-minus-circle fa-2x" style="cursor: pointer;color:red;" onclick="cart.remove('<?php echo $product['key']; ?>');"></i>
</td>
</tr>
<tr>
<td colspan="2" style="border:0 none;">
<div class="btn-group form-inline" role="group">
<button type="button" style="height:25px;width:25px" class="btn btn-default btn-xs " onclick="cart.decrement('<?php echo $product['product_id']; ?>');">
<i class="fa fa-minus"></i>
</button>
<button type="button" style="height:25px;width:25px" class="btn btn-default btn-xs" onclick="cart.add('<?php echo $product['product_id']; ?>');">
<i class="fa fa-plus"></i>
</button>
</div>
</td>
<td style="border:0 none;" class="text-right" >
<b><?php echo $product['total']; ?></b>
</td>
</tr>
<?php } ?>
Здесь я сделал яваскрипт вызова AJAX OnClick. Поэтому давайте посмотрим, что делает этот звонок. Я написал на той же странице, которую вы можете написать в любом .js файле, если хотите. script.js
'decrement': function(key) {
$.ajax({
url: 'index.php?route=checkout/cart/decrement',
type: 'post',
data: 'key=' + key,
dataType: 'json',
beforeSend: function() {
$('#cart > button').button('loading');
},
complete: function() {
$('#cart > button').button('reset');
},
success: function(json) {
// Need to set timeout otherwise it wont update the total
setTimeout(function() {
$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
}, 100);
if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
location = 'index.php?route=checkout/cart';
} else {
$('#cart > ul').load('index.php?route=common/cart/info ul li');
}
}
});
}
Теперь URL мы звонок из выше Ajax вызова путь для нашего контроллера проверки и функции декремента. Вот что
controller.php
public function decrement() {
$this->load->language('checkout/cart');
$json = array();
// Remove
if (isset($this->request->post['key'])) {
$this->cart->decrement_product_quantity($this->request->post['key'],1);
unset($this->session->data['vouchers'][$this->request->post['key']]);
$this->session->data['success'] = $this->language->get('text_remove');
// rest of the code keep same}
Теперь же вы заметили, мы вызываем функцию библиотеки decrement_product_quantity
пропусканием Количество и 1. Здесь ключ не что иное, как АЯКС параметра, который product_id
.
Теперь последняя функция в библиотеке
public function decrement_product_quantity($product_id, $qty = 1){
$this->data = array();
$product['product_id'] = (int)$product_id;
$key = base64_encode(serialize($product));
if ((int)$qty && ((int)$qty > 0)) {
if ($this->session->data['cart'][$key]>1) {
$this->session->data['cart'][$key] -= (int)$qty;
} else {
$this->remove($key);
}
}
}
это один проверяет корзину, если кол-во больше 1 будет уменьшать еще удалить весь продукт. Надеюсь, вы поняли, пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы. Также надеюсь, что вы можете сделать и для увеличения. удачи
У вас есть ответ на это? или вы решили? Если нет, скажите мне, что у меня есть решение для этого – Sudarshan
, пожалуйста, дайте мне. – ankit
Хорошо, что я могу дать вам минус-функциональность, вы можете сделать то же самое для повышения, n Я думаю, что приращение - это не что иное, как вызов функции add в вашей корзине. потому что код бит длинный – Sudarshan