Здравствуйте.
Делаю корзину на wordpress через cookie и столкнулся с проблемой. Не могу объединить объекты с одинаковым свойством. Я пока что падаван и многого не знаю, нуждаюсь в помощи
В куки передаётся 2 параметра id на страницу(Каждый товар - это отдельная страница) и количество. Если покупатель кликнет дважды на товар, то в cookie окажется два одинаковых объекта. Мне нужно их слить в 1 и увеличить количество.
Уже пару часов не могу этого добится... Помогите пожалуйста. Мне хотя бы ссылочку на что то похожее , или ваш пример. Зарание спасибо
Вот что у меня имеется:
document.querySelectorAll('.button-add-to-cart').forEach(function(button) {
button.onclick = cookieFunction
})
function cookieFunction(event) {
event.preventDefault();
let target = event.currentTarget
let params = {
'pageID': target.parentNode.querySelector('.page-id').value,
'amount': target.parentNode.querySelector('.amount__input').value,
}
addCookie('params', params)
}
function combineCookie(value) {
//Сейчас на выходе
[{pageID: "190", amount: "1"}, {pageID: "191", amount: "1"}, {pageID: "190", amount: "2"}]
// вот тут надо сделать объединение одинаковых товаров, что бы получилось
[{pageID: "190", amount: "3"}, {pageID: "191", amount: "1"}]
}
function addCookie(name, params) {
let value = parseCookie(name);
value.push(params)
combineCookie(value)
Cookies.set(name, value, { expires: 7, path: '/' }); // либа js.cookie
}
function parseCookie(name) {
let jsObjects = Cookies.getJSON(name);
let arr = [];
for (var i in jsObjects) {
arr.push( jsObjects[i] );
}
return arr;
}