Как сделать так, чтобы отзывы о товаре публиковались автоматически без модерации.

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

Возможно данная модификация окажется полезной, поэтому я решил опубликовать ее на сайте. Тем более, что модификация OpenCart в данном случае минимальная. Нужно внести небольшие изменения всего лишь в пару файлов CMS.

1) catalog\model\catalog\review.php

внутри функции addReview в теле запроса после

rating = '" . (int)$data['rating'] . "'

добавляем

, status = '1'

В итоге строка будет выглядеть так

$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()");

Теперь, если написать отзыв - он автоматически опубликуется. Но видно его будет только после обновления страницы. Исправляем - делаем так, чтобы после публикации отзыва содержимое контейнера с отзывами обновилось само:

2) catalog\view\theme\default\template\product\product.tpl

Практически в самом низу ищем

$('input[name=\'captcha\']').val('');

и после этой строки добавляем

$('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>');

Удачных Вам экспериментов с OpenCart :))