Jump to content
Sign in to follow this  
sammygr

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

Recommended Posts

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

Спасибо)

Share this post


Link to post
Share on other sites

тык

 

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

Share this post


Link to post
Share on other sites

тык

 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

$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>

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

$.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 продукта будет другим. Что может быть проще, копирования кода из исходника страницы?)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.