в файле \catalog\model\catalog\review.php (2.0.2.0) в самом начале, меняем код PHP: $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()"); на ниже указанный PHP: $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(), status = 1"); т.е в самом конце добавляем status = 1
В 2.3.0.2 начало этого файла (catalog\model\catalog\review.php) одинаковое, такое же, как на примере, но пример не срабатывает, всё равно отправляет сообщения на премодерацию. В чём может быть причина (или как это же устроить в 2.3.0.2) ?
Возможно недосып был... Попробую повторить попытку с нуля, больно захотелось поставить (на первых порах, пока притирка идет, нужная штука, а потом видно будет, так как контроль не всегда круглосуточный).
РЕШЕНО: Шаг 1 из 4 (Убираем премодерацию) В Opencart 2.3.0.2 (вероятно для всех 2х подойдёт) для снятия премодерации отзывов на страницах с ТОВАРОМ нужно править в файле catalog/model/catalog/review.php почти в конце стр 9 Код: ......data['rating'] . "', date_added = NOW()"); вставить это: status = 1, будет так Код: ......data['rating'] . "', status = 1, date_added = NOW()"); Шаг 2 из 4 (Убираем перезагрузку страницы) После этого премодерация исчезнет, но новый отзыв будет появляться только после перезагрузки страницы. Чтобы это убрать, нужно сделать ещё одну правку, в файле: catalog/view/theme/default/template/product/product.tpl там внизу, в скрипте, сразу после кода: Код: if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); Добавить строчку: Код: $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); Шаг 3 из 4 (Редактируем благодарственное сообщение) ОДНАКО! После всех этих манипуляций всё ещё появляется надпись о том, что отзыв отправлен на проверку (хотя он уже опубликован). Это убирается в файле языка, стр 25 catalog/language/ru-ru/product/product.php Шаг 4 из 4 (Капча) Убрав премодерацию, нужно, как минимум, установить хотя бы капчу Об установке Капчи прочитаете здесь (там с картинками дано) -------------------------------------------------------------------------------------------------- Теперь всё. Отзывы отправляются без премодерации и без перезагрузки страницы, но после введения кода в поле капчи. Выводимое сообщение просто благодарит за отзыв (у меня, например, так: Благодарим за отзыв) P.S. Те, кто установил у себя отправку сообщений на почту о новых отзывах - они так и будут продолжать получать такие сообщения, что даёт возможность держать руку на пульсе.
Я бы поступил по умному, когда человек оставляет отзыв, отзыв добавляется и сразу виден на сайте, НО исключительно тому кто его добавил, если это будет "очень добрый человек" то он будет думать что его "добрые намерения" выполнены, но другие люди этого не увидят. После проверки текста, включает отображение для всех пользователей. Советую взять на заметку, а не ерундой заниматься, капча против спама и "очень добрых слов" не поможет хитрец до чёртиков
Ну замечу, капчи разные бывают. Плюс к этому, тут стоят звёздочки рейтинга, без которых также сообщение не пройдёт (тоже своего рода барьер). Та и в небольших интернет-магазинах нет смысла гадить спамом, не принято как-то...
Вы наверное до сих пор не знаете что есть Periscope и там сейчас популярна раскрутка, как раз таки лайки ставят боты, которые обходят reCaptcha, никакого барьера нет, эмулятор нажатия напишет и новичок в JavaScript'e. Во вторых добрый человек в ручную будет спамить.
Да, про Перископ не знаю в деталях, но знаю другое. На одном из сайтов (форум) применялась тактика даже привлечения этих современных умных ботов для стартовой раскрутки. Мы им дали зелёную улицу, убрав модерацию, и лишь удаляя посты не в тему. Знаете, мы посчитали тогда, что лучше так, чем совсем без сообщений. Потом, правда, тактика поменялась и была включена капча. Но это потом, когда они свою работу сделали. Что касается наших магазинов (огульно беру, в среднем), то если на них заходит под сто-триста человек в день, то для боторекламы это малоинтересный ноль (ИМХО). А "добрых человеков", спамящих ручками, - тут уже нужно искать причину такого поведения. То ли конкурент, то ли недолечившийся. И там от ситуации решение принимать.
Люди вообще ленивые и редко, кто оставляет комментарии. Зато когда им что-то нужно могут через час названивать)
Хочу поделиться прокси-сервером https://advanced.name/cid/u9 который я использую для смены IP адреса и обхода блокировки сайтов. Сама опробовала его в деле, работает отлично, скорость хорошая.