Перенаправление входа в группу клиентов Opencart на разные страницы

я добавил 3 группы клиентов, мой администратор openacart, что

  1. владелец
  2. продавец
  3. гость

что я ищу, когда этот клиент входит в систему, каждая группа клиентов хочет перенаправить на разные страницы... например:

если владелец логин - перенаправление на (ownerpage.php)

если seller логин - перенаправление на (sellerpage.php)

если вход гость - перенаправление на (guestpage.php)

и дайте некоторые разрешения на страницу пользователя также для этих групповых пользователей, таких как права администратора... есть идеи...? есть ли какое-либо расширение или нужно сделать какое-либо самокодирование...???

Спасибо...


person mans    schedule 21.01.2013    source источник


Ответы (2)


Являются ли эти страницы информационными страницами? В любом случае, вы можете настроить редирект в catalog/controller/account/account.php

(В примере используется Opencart 1.5.4.1)

Перед этой строкой:

$this->data['heading_title'] = $this->language->get('heading_title');

Добавлять:

$id = $this->customer->getCustomerGroupId();
   if ($id == 1){
  $this->redirect($this->url->link('custom_page1', '', 'SSL'));
   }
   if ($id == 2){
  $this->redirect($this->url->link('custom_page2', '', 'SSL'));
   }
....

Не уверен, что вы имеете в виду под правами доступа к странице. Может быть, вы можете пересмотреть свой вопрос, чтобы сделать его более ясным.

[РЕДАКТИРОВАТЬ: 2013-01-23]

Чтобы ограничить доступ к определенным информационным страницам, вы можете проверить запрошенный information_id и текущую группу пользователей, а затем вывести пользовательский контент:

в catalog/controller/information/information.php найдите строку 62:

            $this->response->setOutput($this->render());
    } else {
    ......

Добавить перед:

$id = $this->customer->getCustomerGroupId();
        if ($id == 1 && $information_id == 7){
            $this->data['heading_title'] = 'Not allowed.';
            $this->data['description'] = 'You are not allowed to view this page';
        }

Измените условие в соответствии с вашими потребностями. То же самое можно сделать и в других контроллерах, только убрать проверку information_id, конечно. Конечно, вы можете просто перенаправить пользователя на домашнюю страницу или что-то еще, вместо того, чтобы показывать собственное сообщение. Но я думаю, что это более элегантно и менее раздражает пользователя. Надеюсь это поможет.

person B-and-P    schedule 21.01.2013
comment
Да, это то, что я имею в виду, я устал от этого, теперь он работает, большое спасибо ... и разрешение страницы означает, например: владелец может открывать любые страницы моего сайта, но если продавец, у него нет разрешения на доступ к странице загрузки, новостной рассылке. то же самое, если гость также не имеет разрешения на возврат доступа, страницы транзакций... есть идеи.? Спасибо - person mans; 21.01.2013
comment
@B-и-P.. я должен задать еще один вопрос, почти связанный с этой статьей. что, как получить доступ к информации о заказе клиентов с идентификатором группы 2 и 3 из учетной записи клиента с идентификатором группы 1.? я имею в виду, что владелец моего приведенного выше примера должен проверить историю заказов продавца и гостя... как владелец может получить доступ к другим данным клиента? я надеюсь, что вы можете понять мой вопрос, спасибо.... - person mans; 27.01.2013

Теперь в последней версии есть эта опция (я нашел это в 2.0.2):

$groupid = $this->user->getGroupId();

Надеюсь, это поможет кому-то.

person Anish Charles    schedule 14.06.2015
comment
Если вам нужен идентификатор клиента в версии 2.3.0.2, используйте: if ($this-›customer-›isLogged()) { $customer_group_id = $this-›customer-›getGroupId(); } else { $customer_group_id = $this-›config-›get('config_customer_group_id'); } - person Giles; 31.05.2017