Відповіді:
Спочатку відредагуйте шаблон кошика /app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
та додайте ідентифікатор у елемент форми для легшого доступу. Скажімо, ви додаєте 'id = "cart-form"';
Тепер відредагуйте шаблони, які відображають елементи кошика:
а на <input>
елементі з назвою cart[<?php echo $_item->getId() ?>][qty]
додайте це:
onchange="$('cart-form').submit()"
Але я не рекомендую цього робити. Це дійсно дратує користувачів. (принаймні для мене).
Якщо припустити, що ваш веб-сайт jQuery включений в безконфліктний режим, ось спосіб зробити це асинхронно (набагато менше дратує!).
jQuery(document).ready(function(){
jQuery('#shopping-cart-table')
.on(
'change',
'input[name$="[qty]"]',
function(){
var form = jQuery(jQuery(this).closest('form'));
// we'll extract the action and method attributes out of the form
// kick off an ajax request using the form's action and method,
// with the form data as payload
jQuery.ajax({
url: form.attr('action'),
method: form.attr('method'),
data: form.serializeArray()
});
}
);
});
Слід зазначити, що це передбачає такі припущення:
Слід відрегулювати селектори в коді на рядках 2 і 5 відповідно відповідно до ваших обставин.
Відредагуйте ці два файли
app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml
app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
а на елементі з назвою cart[<?php echo $_item->getId() ?>][qty]
додайте це:
onchange="this.form.submit()"
Якщо версія jQuery стара, вам не вдасться. Я знайшов такий спосіб, як дотримуватися вказівок нашого друга Маріуса
/app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
і додайте ідентифікатор в елемент форми для полегшення доступу. Скажімо, ви додаєтеid="cart-form"
Тепер відкрийте файл
app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
І прокрутіть до кінця файлу, і ви знайдете javascript, який робить збільшення та зменшення кількості. Функція буде виглядати приблизно так:
function plusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
qty++;
$('qty'+itemId).value = qty;
}
function minusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
if(qty>0){
qty--;
$('qty'+itemId).value = qty;
}
}
Змініть для цього:
function plusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
qty++;
$('qty'+itemId).value = qty;
document.getElementById("cart-form").submit();
}
function minusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
if(qty>0){
qty--;
$('qty'+itemId).value = qty;
document.getElementById("cart-form").submit();
}
}
Якщо у вас ще не завантажений jQuery, ви також можете знайти <input>
елемент (або в моєму випадку <select>
елемент, оскільки я створив спадне поле для вибору суми) з назвою name="cart[<?php echo $_item->getId() ?>][qty]"
та додайте це:
onchange="this.form.submit()"
Файл phtml, який ви повинні відредагувати, знаходиться тут:
app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml