opencart проверить, если продукт уже в списке желаний
я просто хочу проверить, если продукты уже добавлены в список пожеланий (только для зарегистрированных клиентов)
и поставьте результат на файл twig, что если продукт уже в списке желаний
button color=red
else
button color=gray
а также даже получить выше результаты, когда пользователь нажимает кнопку Добавить в список желаний, живой результат будет дан, я имею в виду цвет кнопки gray
будет изменен на red
с помощью javascript...
я использую последнюю версию 3.0.3.2 opencart version
необходимо оценить лучшее решение...
Ответы - opencart проверить, если продукт уже в списке желаний / opencart check if product already in wishlist

26.07.2019 12:17:00
Попробуйте использовать этот код. Я изменил это, как показано ниже. Это работает, как и сейчас для меня
Добавьте тег, над которым вы хотите выполнить действие
<li><a href="javascript:void(0);" class="btn_wishlist_alt" data-product-id=69><i class="fa fa-heart"></i> <span class="">{{ text_wishlist }}</span></a></li>
Теперь добавьте немного кода js в свой файл
<script type="text/javascript">
$(document).ready(function(){
$('.btn_wishlist_alt').on('click', function(){
//alert();
var self = this;
var pID = $(self).attr('data-product-id');
$.ajax({
url: 'index.php?route=product/product/wishlistcheck&product_id=' + encodeURIComponent(pID),
dataType: 'json',
type: 'post',
cache: false,
contentType: false,
processData: false,
success: function(json) {
if(json['in_wishlist']){
//set color red
}else{
//set color blue
}
}
});
});
})
</script>
Теперь добавьте эту функцию в файл контроллера
public function wishlistcheck(){
$json = array();
if ($this->request->server['REQUEST_METHOD'] == 'POST') {
$product_id = $this->request->get['product_id'];
if ($this->customer->getId()) {
$this->load->model('account/wishlist');
$wishlist = $this->model_account_wishlist->getWishlist();
if(in_array($product_id, array_column($wishlist, 'product_id'))) {
$json['in_wishlist'] = true;
}else{
$json['in_wishlist'] = false;
}
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
Вот он. Это все.


