Рекомендуемые сообщения

inFlammen    0

Добрый день уважаемые!

Измучился со своей проблемой.

Необходимо реализовать закладки без авторизации, все возможные варианты из гугла перепробовал, не работают.

Версия Opencart 2.1.0.2.1

 

Не бейте если тема уже такая имеется, не нашел.  :unsure:

 

class ControllerAccountWishList extends Controller {
public function index() {
if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/wishlist', '', 'SSL');

$this->response->redirect($this->url->link('account/login', '', 'SSL'));
}

$this->load->language('account/wishlist');

$this->load->model('account/wishlist');

$this->load->model('catalog/product');

$this->load->model('tool/image');

if (isset($this->request->get['remove'])) {
// Remove Wishlist
$this->model_account_wishlist->deleteWishlist($this->request->get['remove']);

$this->session->data['success'] = $this->language->get('text_remove');

$this->response->redirect($this->url->link('account/wishlist'));
}

$this->document->setTitle($this->language->get('heading_title'));

$data['breadcrumbs'] = array();

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/home')
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_account'),
'href' => $this->url->link('account/account', '', 'SSL')
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('account/wishlist')
);

$data['heading_title'] = $this->language->get('heading_title');

$data['text_empty'] = $this->language->get('text_empty');

$data['column_image'] = $this->language->get('column_image');
$data['column_name'] = $this->language->get('column_name');
$data['column_model'] = $this->language->get('column_model');
$data['column_stock'] = $this->language->get('column_stock');
$data['column_price'] = $this->language->get('column_price');
$data['column_action'] = $this->language->get('column_action');

$data['button_continue'] = $this->language->get('button_continue');
$data['button_cart'] = $this->language->get('button_cart');
$data['button_remove'] = $this->language->get('button_remove');

if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];

unset($this->session->data['success']);
} else {
$data['success'] = '';
}

$data['products'] = array();

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

$data['continue'] = $this->url->link('account/account', '', 'SSL');

$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/account/wishlist.tpl')) {
$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/account/wishlist.tpl', $data));
} else {
$this->response->setOutput($this->load->view('default/template/account/wishlist.tpl', $data));
}
}

public function add() {
$this->load->language('account/wishlist');

$json = array();

if (isset($this->request->post['product_id'])) {
$product_id = $this->request->post['product_id'];
} else {
$product_id = 0;
}

$this->load->model('catalog/product');

$product_info = $this->model_catalog_product->getProduct($product_id);

if ($product_info) {
if ($this->customer->isLogged()) {
// Edit customers cart
$this->load->model('account/wishlist');

$this->model_account_wishlist->addWishlist($this->request->post['product_id']);

$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . (int)$this->request->post['product_id']), $product_info['name'], $this->url->link('account/wishlist'));

$json['total'] = sprintf($this->language->get('text_wishlist'), $this->model_account_wishlist->getTotalWishlist());
} else {
if (!isset($this->session->data['wishlist'])) {
$this->session->data['wishlist'] = array();
}

$this->session->data['wishlist'][] = $this->request->post['product_id'];

$this->session->data['wishlist'] = array_unique($this->session->data['wishlist']);

$json['success'] = sprintf($this->language->get('text_login'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'), $this->url->link('product/product', 'product_id=' . (int)$this->request->post['product_id']), $product_info['name'], $this->url->link('account/wishlist'));

$json['total'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
}
}

$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemPitov    420

уберите 

if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/wishlist', '', 'SSL');

$this->response->redirect($this->url->link('account/login', '', 'SSL'));
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
inFlammen    0

Это были мои первые действия, к сожалению не помогает.

Если я все правильно понял на одном из форумов процитирую "wishlist привязывается к аккаунту, если просто избавиться от авторизации то привязаться будет не к чему. Нужно настраивать привязку к сессии"

В общем при выполнении данного шага я могу попасть на страницу вишлиста, но она абсолютно пустая, сколько бы я туда товара не добавил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
thentru    202

Вам нужно обработать эту строку

Если пользователь залогинен то данные берутся из

$results = $this->model_account_wishlist->getWishlist();

Иначе из сессии

$results = $this->session->data['wishlist'];

Только в случае гостя массив results нужно привести к первому виду

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    339

Хранить вишлист в сессии бессмысленно: посетитель через пол часа вернётся на сайт, а вишлист уже пустой. Для незарегистрированных его нужно хранить либо в куки, либо в localStorage (лучше в последнем).
 
Ну, и полноценное решение данной задачи чуть объёмнее, чем то, что можно просто подсказать на форуме.

 

 
Это сможет помочь?
Этот модуль хранит в сессии. Но его можно взять за основу для реализации описанного мною выше варианта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    1 048

да, в 2-ке wishlist пишется в таблицу и.. сессию

 

Но доступен только для авторизованного пользователя

 

В сессии он нужен, чтобы если покупатель авторизовался, то его "собранный" товар попал  таблицу вишлиста

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
inFlammen    0

Это сможет помочь?

 

Спасибо большое, этот модуль помог.

Сколько времени потратил а 250 деревянных решили все  :oops:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От zcell

      300.00 руб
      Скачать/Купить дополнение


      Избранное (закладки) без регистрации и авторизации
      Избранное без регистрации для версий 1.5.x и 2.1x, 2.2.x, 2.3.x
       
      DEMO
       
      Ваши клиенты смогут откладывать товар в Избранное (Закладки) без регистрации.
       
      Модуль позволяет добавлять пользователям товары в закладки даже без регистрации на сайте.
      При добавление выдается сообщение об успешном добавлении (также как у зарегистрированного пользователя), вместо стандартной ошибки с ссылкой на вход.
      Товар добавляется в корзину из закладок и удаляется из закладок, также без регистрации. Кнопка "Продолжить" в закладках отправляет на главную страницу, вместо страницы аккаунта.
      Не заменяет системных и файлов темы.
      Необходима установка VQMod для ocStore 1.5.x.x
      >>
      После покупки - вы сможете скачать версию и для версии 1.5.x и версии 2.x
      >>
      Работает в 99,99% случаев!
      update от 2015-12-11: до сих не было ни одного обращения в поддержку.
      Установка модуля для версий ocStore и Opencart 1.5.x:
      Скопировать файл в папку vqmod/xml/
      Установка модуля для версий ocStore и Opencart 2.х:
      Для установки на версиях 2.2.x и 2.3.x воспользуйтесь установкой дополнений в административной панели.
      Добавил zcell Добавлено 24.09.2013 Категория Сравнения, закладки Системные требования Сайт разработчика https://true-studio.ru/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart ocStore OpenCart.Pro, ocShop  
    • От zcell
      Избранное без регистрации для версий 1.5.x и 2.1x, 2.2.x, 2.3.x
       
      DEMO
       
      Ваши клиенты смогут откладывать товар в Избранное (Закладки) без регистрации.
       
      Модуль позволяет добавлять пользователям товары в закладки даже без регистрации на сайте.
      При добавление выдается сообщение об успешном добавлении (также как у зарегистрированного пользователя), вместо стандартной ошибки с ссылкой на вход.
      Товар добавляется в корзину из закладок и удаляется из закладок, также без регистрации. Кнопка "Продолжить" в закладках отправляет на главную страницу, вместо страницы аккаунта.
      Не заменяет системных и файлов темы.
      Необходима установка VQMod для ocStore 1.5.x.x
      >>
      После покупки - вы сможете скачать версию и для версии 1.5.x и версии 2.x
      >>
      Работает в 99,99% случаев!
      update от 2015-12-11: до сих не было ни одного обращения в поддержку.
      Установка модуля для версий ocStore и Opencart 1.5.x:
      Скопировать файл в папку vqmod/xml/
      Установка модуля для версий ocStore и Opencart 2.х:
      Для установки на версиях 2.2.x и 2.3.x воспользуйтесь установкой дополнений в административной панели.
    • От Exploits

      300.00 руб
      Скачать/Купить дополнение


      WishList Plus – продвинутый модуль закладок Opencart
      WishList Plus – продвинутый модуль закладок, который позволяет добавлять товар в избранное без регистрации аккаунта и логина в личный кабинет. Модуль работаеткак обычное дополнение и имеет много настроек. 
      На страницы магазина WishList Plus выводится в виде обычного блока в любом стандартном положении: вверху, внизу, справа, слева. Особенность его в том, что когда модуль выведен на странице и в нем нет выбранного товара - в блоке ничего не отображается. Но когда пользователь нажимает "Добавить в закладки" (сердечко) в нужной позиции плавно обновляется блок и в нем появляется добавленный товар. Когда добавляем второй товар — он также там появляется и когда товаров будет больше за лимит для карусели (количество настраивается) - включается карусель товаров.
      Особенность модуля в его мультиязычности. Все заголовки, ссылки и т.п. можно прописать для каждого языка магазина. Также гибко настраивается карусель товаров, скорости анимации и т.п плюшки. Если модуль не размещен на странице идет стандартное добавления в закладки средствами Opencart. Если модуль выведен на странице — он перехватывает добавление заменяя на свое.
      Разместить модуль можно на каждой странице в разных блоках со своими настройками. Это очень гибко и удобно. К примеру на странице завершения заказа блок можно сделать большой каруселью с заголовком: «Я еще не купил». Вариантов много.
      Еще модуль понимает когда покупатель заходит в личный кабинет. При логине он автоматически подвязывает туда уже выбранные закладки.
      WishList Plus распространяется по коммерческой лицензии. Стоимость покупки 300RUB (в других валютах по курсу на день покупки). Активация полуавтоматическая. Вы покупаете модуль, устанавливаете и ожидаете письмо с подтверждением активации. После подтверждения можно настраивать и использовать.
      Настройки модуля WishList Plus +

      Имя модуля — название для администратора. Например "Закладки для страницы оформления заказа". Именно по этому названию идет выбор модуля в Схемах расположения. Заголовок блока — Это заголовок блока с выбранными товарами  на сайте. Назвать его можно по разному, в зависимости от страницы и расположения. Если в корзине оформления можно так «Еще хочу купить», если в категории «Выбранные товары». Здесь чего душа пожелает. Ссылка на страницу избранных товаров — это название ссылки после названия блока которая ведет на страницу закладок. Показывать количество возле заголовка — само название говорит о функционале. Это отображение количества товара в закладках. Рекомендуется включать, это достаточно информативно. Циклическая прокрутка в слайдере товаров, Показывать стрелочки навигации, Показывать кружки пагинации  — все это понятно из названия. Если что-то не понятно пишите в поддержку. Показывать эффект обновления блока — если включена эта опция, при добавлении или удалении товара блок на доли секунды плавно исчезает и так же плавно появляется с обновленным списком товара. Скорость скрола к блоку с избранными товарами — если не задать ничего или 0 при добавлении товара в избранное страница не будет скролить к блоку с закладками. Если вписать значение 500, то за пол секунды страница пролистает к блоку. Селектор обновления ссылки вверху сайта, Название верхней ссылки — по этому селектору можно определить ссылку вверху сайта в мои закладки. Саму ссылку можно переименовать на ваш вариант. Символы %s — заменяются на количество товара в закладках. Количество в каруселе — это количество товаров в блоке с каруселью. Можно сделать по два товара, либо по 10 как будет лучше для дизайна сайта и для конкретной страницы. Например если расположить блок с закладками в правой или левой колонки то рекомендуется ставить 1 или максимум два товара в карусели. Ширина, Высота — это размеры изображений в блоке избранное в px. Рекомендуется настраивать под дизайн сайта. За дополнительной информацией и как купить обращайтесь к разработчику info@microdata.pro
       
      Демо http://2302.for-opencart.com
      Добавил Exploits Добавлено 08.06.2017 Категория Сравнения, закладки Системные требования CURL Сайт разработчика https://microdata.pro/wishlist-plus/ Старая цена 399 Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу