Закладки без авторизации

Тема в разделе "Общие вопросы", создана пользователем sibrus, 26 окт 2015.

  1. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Ух..
    Но!!!!
    Код:
    $this->model_account_wishlist->addWishlist($this->request->post['product_id']);
    Если уж менять
    то вот это
    Код:
    if (!$this->customer->isLogged()) {
     
  2. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    нет. В общем погорячился я. Менять надо дальше. Для неавторизированных все менять просто на сессии.
     
  3. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    :) Т.е. я зря писал, что не обойтись

    Да.
     
  4. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    862
    Симпатии:
    236
    Хотел вот сделать, но в итоге забил! Не столь важно это было.... Однако наткнулся на странный момент...
    PHP:
    $results $this->model_account_wishlist->getWishlist();

    foreach (
    $results as $result) {
       
    $product_info $this->model_catalog_product->getProduct($result['product_id']);

       if (
    $product_info) {
          if (
    $product_info['image']) {
             
    $image $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_wishlist_width'), $this->config->get('config_image_wishlist_height'));
          } else {
             
    $image false;
          }

          if (
    $product_info['quantity'] <= 0) {
             
    $stock $product_info['stock_status'];
          } elseif (
    $this->config->get('config_stock_display')) {
             
    $stock $product_info['quantity'];
          } else {
             
    $stock $this->language->get('text_instock');
          }

          if ((
    $this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
             
    $price $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
          } else {
             
    $price false;
          }

          if ((float)
    $product_info['special']) {
             
    $special $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
          } else {
             
    $special false;
          }

          
    $data['products'][] = array(
             
    'product_id' => $product_info['product_id'],
             
    'thumb'      => $image,
             
    'name'       => $product_info['name'],
             
    'model'      => $product_info['model'],
             
    'stock'      => $stock,
             
    'price'      => $price,
             
    'special'    => $special,
             
    'href'       => $this->url->link('product/product''product_id=' $product_info['product_id']),
             
    'remove'     => $this->url->link('account/wishlist''remove=' $product_info['product_id'])
          );
       } else {
          
    $this->model_account_wishlist->deleteWishlist($product_id);
       }
    }
    Интересует...
    PHP:
    } else {
          
    $this->model_account_wishlist->deleteWishlist($product_id);
       }
    Тут переменная $product_id не определена! Это вообще как работает))).
     
  5. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    работает так
    Код:
    $result['product_id']
     
  6. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    862
    Симпатии:
    236
    Я просто не могу понять суть. Сначала мы получаем список товаров, которые в закладках. Затем начинаем этот список разбирать. Если в списке нет товара, то соответсвенно нет и $result['product_id'], и вообще тогда нечего удалять по сути. А если мы имеем $result['product_id'], то тогда должно сработать условие if ($product_info).

    Если всё же использовать $result['product_id'], то условие должно тогда иметь следующий вид...
    PHP:
    elseif(!empty($result['product_id'])) {
      
    $this->model_account_wishlist->deleteWishlist($result['product_id']);
    }
    Наверное это нужно для ситуаций, когда товар был брошен в закладки, а потом его просто удалили из магазина. То бишь список товаров есть, а самих товаров уже и нет.
     
  7. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    Именно так. Не нужен он в закладках, если его уже в магазине и нет.