Автор Тема: Только для зарегистрированных пользователей  (Прочитано 189 раз)

19 Октябрь 2015, 12:59:18
  • Пользователь
  • **
  • Сообщений: 95
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Как сделать чтобы форму контактов могли использовать только зарегистрированные пользователи? Это та в которой отправляется сообщение в поддержку. Я скрывал блок но ссылка работает все равно, как ее сделать рабочей только для групп зарегистрированных пользователей? И как вообще запретить доступ незарегистрированным к определенным страницам, там только есть разрешение на модули, но максимум что оно делает - это скрывает их.
19 Октябрь 2015, 13:46:47
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 942
  • Репутация: +10/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В файле /controllers/front/ContactController.php
найти код
$customer = $this->context->customer;
if (!$customer->id) {
        $customer->getByEmail($from);
}
заменить его на
$customer = $this->context->customer;
if (!$customer->id) {
        $this->errors[] = Tools::displayError('Вы должны зарегистрироваться');
}
19 Октябрь 2015, 14:09:36
Ответ #2
  • Пользователь
  • **
  • Сообщений: 95
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Что-то вообще 0 изменений. Вроде все верно. кеш отрубил, все равно заходит без проблем


А нет, все верно, спасибо, просто я думал он вообще не попадет на страницу, при отправке ему ошибку выдает


Но сообщение приходит на сайт все равно, ладно хоть так, главное чтобы клиент не допер что мне это все равно приходит.
19 Октябрь 2015, 14:20:20
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 942
  • Репутация: +10/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это самый простой способ. Можно делать разные варианты ограничений.
В том же контроллере вы можете уставливать if перед показом формы, перед отправкой письма и т.д.