Активация при регистрации

Автор petroviche, 11 апреля 2013, 00:53:15

« назад - далее »

petroviche

Здраствуйте вопрос такой.
Запретил автоматическую активацию аккаунта
В controllers/AuthController.php
заменил: $customer->active = 1;
На: $customer->active = 0;
Как после того как новый пользователь нажал кнопку "зарегистрироваться" его перенаправило бы на страницу с условиями активации?

Виктор Демидов

В controllers/AuthController.php нужно изменить страницу, на которую перенаправляется зарегистрированный пользователь:
Tools::redirect('index.php?controller=my-account');
на
Tools::redirect('index.php?id_cms=1&controller=cms');
Страницу, на которой описываются условия активации, создайте в:
Панель администратора > Настройки > Страницы

petroviche

#2
В controllers/AuthController.php
Нет строки
Tools::redirect('index.php?controller=my-account');
вместо ее я так понимаю вот эта строка:
Tools::redirect('my-account.php');
Меняю в этой строке адрес на другую страницу нет изменений,
также перенаправляет на:
authentication.php

Версия движка: 1.4.4.0

mAgency

#3
Для prestashop 1.5
ЦитироватьTools::redirect('index.php?controller=my-account');
В prestashop 1.4, без ajax, редирект после регистрации:
Tools::redirect($back);
если нет страницы возврата
Tools::redirect('my-account.php');
Измените 2 этих значения.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

petroviche

Спасибо огромное. Все разобрался ;)

petroviche

Вопрос такой
при $customer->active = 1;
срабатывает как надо и перенаправляет на страницу
а при $customer->active = 0;
нет, а мне нужну, что бы новый пользователь был не активен пока не прочитает страницу с правилами активации.

Если наедется минутка посмотрите пожалуйста файл прикрепил.
Спасибо.

coder

При активированом аккаунте пользователя, после редиректа в кабинет пользователя, пользователь остается авторизированным.
Если перенаправить пользователя на любую страницу - newpage.php, то это  вызовет контроллер FrontController.
А в FrontController.php произойдет проверка сохранения сесии, авторизирован или нет, и разрешен ли доступ
if (isset($_GET['logout']) OR ($cookie->logged AND Customer::isBanned((int)$cookie->id_customer)))
Поэтому нужно добавить вместе с редиректом
self::$cookie->logged =0;

petroviche

#7
Все равно не получилось может я, что то не то делаю.
В общем решил вопрос с перенаправлением так:
создал файл redirect.php с кодом:
<?
echo '<script type="text/javascript">';
echo 'window.location.href="cms.php?id_cms=8";';
echo '</script>';
?>

в файле: AuthController.php
вставил: Tools::redirect('redirect.php');
Все заработало. Вопрос в том насколько такая схема безопасна?

Виктор Демидов

Можно использовать такой вариант, если не помогли другие решения.

Виктор Демидов

Для Prestashop 1.4 изменить в файле AuthController.php
строка 148
$customer->active = 1;
на
$customer->active = 0;
строка 174
self::$cookie->logged = 1;
на
self::$cookie->logged = 0;
строка 200
if ($back = Tools::getValue('back'))
    Tools::redirect($back);
Tools::redirect('index.php');

на
if ($back = Tools::getValue('back'))
    Tools::redirect('cms.php?id_cms=8');
Tools::redirect('cms.php?id_cms=8');

Проверено, работает.

petroviche

Спасибо за подробный ответ. Сейчас все действительно заработало как надо.
Не хочется создавать отдельную тему. У меня еще остался один вопрос, который не как не получается решить. А именно: Запрет добавления товара в корзину без регистрации. Если человек не авторизирован, он видит кнопку "добавить в корзину", но при нажатии на нее всплывает аллерт с сообщением "Добавлять товары в корзину могут лишь зарегистрированные пользователи". Искал в интернете но ничего по теме не мог найти буду очень признателен Вам если вы мне поможете.

Виктор Демидов

#11
В Prestashop для таких целей есть модули,  например, Module Price Hide.

petroviche