Перейти к содержанию
sammygr

Как разрешить оставлять отзывы только зарегистрированным?

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

Нужно, чтобы оставлять отзывы могли только зарегистрированные пользователи. Есть ли решение?

Спасибо)

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


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

тык

 

может отличаться для новых версий, но принцип тот же

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


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

тык

 

может отличаться для новых версий, но принцип тот же

Пробовал, на ocStore 1.5.5.1, уже при внесении изменений, описанных в 1-м шаге сайт выдает ошибку.

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


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

10$ и всё готово.

ну это понятно) я надеялся, что возможно уже есть готовое решение

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


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

В контроллер товара добавляешь: 

$this->data['logged'] = $this->customer->isLogged();

а уже в самой въюхе товара, ставишь на условие, например кнопку отправки отзыва, например:

<div class="buttons">
      <div class="right"><a id="button-review" class="button"><?php echo $button_continue; ?></a></div>
    </div>

заменяешь на:

<div class="buttons">
<?php if ($logged) { ?>
      <div class="right"><a id="button-review" class="button"><?php echo $button_continue; ?></a>
<?php } else { ?>
<a href="index.php?route=account/login>">Авторизируйтесь что б оставить отзывчеГ</a>
<?php } ?>
</div>
    </div>

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


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

а проверка на бэкэнде, что юзер зареган? ведь можно отправить форму и без кнопки ж

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


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

а проверка на бэкэнде, что юзер зареган? ведь можно отправить форму и без кнопки ж

Откройте мне секрет, как отправить отзыв без кнопки ?!

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


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

Открываем консоль браузера, впихиваем простым копипастом

$.ajax({
url: 'index.php?route=product/product/write&product_id=134',
type: 'post',
dataType: 'json',
data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()),
beforeSend: function() {
$('.success, .warning').remove();
$('#button-review').attr('disabled', true);
$('#review-title').after('<div class="attention"><img src="catalog/view/theme/default/image/loading.gif" alt="" /> Пожалуйста, подождите!</div>');
},
complete: function() {
$('#button-review').attr('disabled', false);
$('.attention').remove();
},
success: function(data) {
if (data.error) {
$('#review-title').after('<div class="warning">' + data.error + '</div>');
}


if (data.success) {
$('#review-title').after('<div class="success">' + data.success + '</div>');


$('input[name=\'name\']').val('');
$('textarea[name=\'text\']').val('');
$('input[name=\'rating\']:checked').attr('checked', '');
$('input[name=\'captcha\']').val('');
}
}
});

жмакаем enter..всё)

Можно просто скачать какойнить плагин для формирования в ручную post запросов, и слать их) Ну вообщем то смысл же понятен

 

ну разумеется, id продукта будет другим. Что может быть проще, копирования кода из исходника страницы?)

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


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

А валидация captcha ?

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


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

Ии? заполнил все поля, выполнил скрипт в консоле и всё ок. Тока что проверил у ся, всё пашет.

Даже делая post запросы в ручную, вводим значение капчи и отправляем. Для просто скрипта спама отзывами, нужно капчу выводить себе, но код, как выводится капча известен же. Можно тогда и антикапчу прикрутить, для автоспама.

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


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

Ставишь тогда сей кусок скрипта под условие <?php if ($logged) { ?> и усё... разве конкретно под движок спамиться будет, но ради такого действия, не жалко и пару тугриков заплатить, за перепись контроллера...

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


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

Допустим, будет автоспам, ну и что? Отзывы ведь не автоматом публикуются, она сначала на модерацию уходят. Вообще не вижу здесь проблемы.

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


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

Вы щас спорите, как-будто добавить в catalog\controller\product\product.php

в функцию write() условие так сложно)

if (!$this->customer->isLogged()){
                $json['error'] = $this->language->get('error_islogged');
            }

Ну и в текстовый файл добавить текст ошибки

 

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


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

Ну... имея инструмент для идентификации авторизации "$this->customer->isLogged()" - всё ограничено только фантазией...

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.