opencart проверить, если продукт уже в списке желаний


opencart проверить, если продукт уже в списке желаний

23.07.2019 03:49:44 Просмотров 52 Источник

я просто хочу проверить, если продукты уже добавлены в список пожеланий (только для зарегистрированных клиентов)

и поставьте результат на файл 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

Sonu Singh Jadoun

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));
    }

Вот он. Это все.

https://stackoverflow.com/questions/57164572/opencart-check-if-product-already-in-wishlist/57216859#comment101193346_57216859
я использую opencart версии 3.0.3.1, так что этот метод возможен там.? и как работать с этим файлом twig.?
https://stackoverflow.com/questions/57164572/opencart-check-if-product-already-in-wishlist/57216859#comment101341239_57216859
Да, это возможно для Opencart v3.X. Чтобы изменить текущий файл на веточку вы можете использовать AJAX.
https://stackoverflow.com/questions/57164572/opencart-check-if-product-already-in-wishlist/57216859#comment103488502_57216859
пожалуйста, предоставьте образец файла.? потому что я не знаком с "Аяксом". спасибо
Помочь в развитии проекта:
Закрыть X