Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Opencart - автопубликация отзывов

8 октября 2012 г. JohnnyVega Просмотров: 11700 RSS 4
Howto » E-commerce » OpenCart

По умолчанию в Opencart'е включено модерирование отзывов к товарам, которые оставляют покупатели. То есть нужно зайти в панель администрирования, далее в "Каталог-Статьи", где будет список еще непроверенных отзывов. Затем заходим в каждый отзыв, и либо одобряем (включаем) его, либо не одобряем (не включаем).

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

Для этого нужно в файле catalog\model\catalog\review.php заменить функцию (в оригинале она расположена в одну строку):

public function addReview($product_id, $data) {
		$this->db->query("INSERT INTO " . DB_PREFIX . "review SET author = '" .
			$this->db->escape($data['name']) .
			"', customer_id = '" . (int)$this->customer->getId() .
			"', product_id = '" . (int)$product_id .
			"', text = '" . $this->db->escape($data['text']) .
			"', rating = '" . (int)$data['rating'] .
			"', date_added = NOW()");
	}

на такую:

public function addReview($product_id, $data) {
	$this->db->query("INSERT INTO " . DB_PREFIX . "review SET author = '" .
			$this->db->escape($data['name']) .
			"', customer_id = '" . (int)$this->customer->getId() .
			"', product_id = '" . (int)$product_id .
			"', text = '" . $this->db->escape($data['text']) .
			"', rating = '" . (int)$data['rating'] .
			"', status = 1, date_added = NOW()");
	}
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Более 1000 готовых шаблонов Opencart для интернет-магазинов
Комментариев: 4
  1. 2013-01-07 в 16:15:29 | антониус

    я добавил этото код но почему то у меня не заработало, вро де всё правильно, может просто у меня версия другая опенкарта.

    Вообще сделал подругому просто в базе даных магазина

    зашёл в таблицу review и изменил default значение переменной status

    на '1' всё работает зашибись теперь )))) и проще )

  2. ИМХО недоработана реализация, после добавления появляется уведомление о том что ваш комент вступит в силу после модерации админом, я думаю это убрать не сложно но, комент только при обновлении попадет, если-бы сразу отобразить его сразу..

  3. 2014-11-20 в 03:29:44 | Сергей

    http://domey.ru - сделал, спасибо

  4. Судя по запросу, проще в БД у поля status таблицы review поставить по умолчанию 1

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)