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

[Решено?..] Скрыть несколько категорий от незарегистрированных пользователей

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

Приветствую всех заглянувших.

Есть каталог товаров на Opencart, нужно скрыть товары и категории для незарегистрированных пользователей.
Может кто-то сталкивался с такой задачей и знает как это осуществить ?

 

в контроллер category.php  после:
$this->data['heading_title'] = $category_info['name'];
 

добавил:

$this->data['category_info'] = $category_info;

и в category.tpl

<?php if ((($products) && ($category_info['category_id'] == '20') && ($this->customer->getCustomerGroupId() == '2')) || (($products) && ($category_info['category_id'] != '20'))) { ?>

Данный метод работает только для одной категории, как сделать для нескольких ?

 

 

 

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


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

конечно для одной. Для id=20

нужно для других - добавить и остальные коды туда же

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


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

конечно для одной. Для id=20

нужно для других - добавить и остальные коды туда же

 

Если укажу через запятую, то не работает.

Если несколько раз написать код с разными категориями

<?php if ((($products) && ($category_info['category_id'] == '20') && ($this->customer->getCustomerGroupId() == '2')) || (($products) && ($category_info['category_id'] != '20'))) { ?>

то страница категории не работает.

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


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

$category_info['category_id'] == '20'

=>

in_array($category_info['category_id'], array(20, 30, 40, 100500...))

 

Во второй части выражения:

!in_array(...)

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


Ссылка на сообщение
Поделиться на другие сайты
$category_info['category_id'] == '20'

=>

in_array($category_info['category_id'], array(20, 30, 40, 100500...))

 

Во второй части выражения:

!in_array(...)

 

Так ?

<?php if ((($products) && (in_array($category_info['category_id'], array(93, 113))) && ($this->customer->getCustomerGroupId() == '2')) || (($products) && ($category_info['category_id'] !in_array(93, 113)))) { ?>

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


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


if ((($products) && (in_array($category_info['category_id'], array(93, 113))) && ($this->customer->getCustomerGroupId() == '2')) || (($products) && (!in_array($category_info['category_id'], array(93, 113))))) {

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


Ссылка на сообщение
Поделиться на другие сайты
if ((($products) && (in_array($category_info['category_id'], array(93, 113))) && ($this->customer->getCustomerGroupId() == '2')) || (($products) && (!in_array($category_info['category_id'], array(93, 113))))) {

Премного благодарен! все работает))).

Тему можно закрывать

Изменено пользователем Sahka

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


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

Извиняюсь, у Вас реализовано закрытие категорий, по ID клиента или по группе клиентов?

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


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

Извиняюсь, у Вас реализовано закрытие категорий, по ID клиента или по группе клиентов?

 

И :)

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


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

Хотим создать раздел с каталогами, для группы "партнеры", а "розничные" не должны видеть этот раздел!

Но раздел с каталогами, должен индексировать ПС, а при попытке перехода с ПС, сообщение с просьбой регистрации на сайте!

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


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

Так не бывает...

 

Можно определять бота и ему показывать, но за это можно и по "шапке" получить

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


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

Извиняюсь, у Вас реализовано закрытие категорий, по ID клиента или по группе клиентов?

 

по группе

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


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

по группе

Управление с админки, или указание ID- группы в коде?

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


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

Управление с админки, или указание ID- группы в коде?

 

ID группы в коде.

if ((($products) && (in_array($category_info['category_id'], array(93, 113))) && ($this->customer->getCustomerGroupId() == 'Тут id группы')) || (($products) && (!in_array($category_info['category_id'], array(93, 113))))) {

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


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

Хотим создать раздел с каталогами, для группы "партнеры", а "розничные" не должны видеть этот раздел!

Но раздел с каталогами, должен индексировать ПС, а при попытке перехода с ПС, сообщение с просьбой регистрации на сайте!

 

Сделайте всплывающее окно, если человек первый раз посещает ваш сайт. Самому пришлось так же сделать. Могу дать код для реализации (в личку).

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


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

Сделайте всплывающее окно, если человек первый раз посещает ваш сайт. Самому пришлось так же сделать. Могу дать код для реализации (в личку).

Для начала киньте ссылку на сайт, в личку, хочу глянуть.

 

Благодарю!

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


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

Глянул, но у Вас без регистрации вообще категории товара не открываются, как-то очень Жестко!

 

Первое - влияет на количество посещений и на глубину просмотра - что в плане SEO - очень может негативно сказаться :(

Второе - время проведенное на сайте, думаю его ПС тоже анализируют, и если посетитель у Вас проводит до 10 секунд, это жирный минус.

 

Но в целом идея понятная.

 

Думал, что у себя надо реализовать Раздел/Категорию.

То есть оно визуально на сайте есть, но зайти саму страницу - выводилось сообщение.

 

Уважаемый у Вас нету прав для просмотра данного раздела/категорий.

Пожалуйста авторизуйтесь.

Войти/Регистрация.

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


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

Глянул, но у Вас без регистрации вообще категории товара не открываются, как-то очень Жестко!

 

Первое - влияет на количество посещений и на глубину просмотра - что в плане SEO - очень может негативно сказаться :(

Второе - время проведенное на сайте, думаю его ПС тоже анализируют, и если посетитель у Вас проводит до 10 секунд, это жирный минус.

 

Но в целом идея понятная.

 

Думал, что у себя надо реализовать Раздел/Категорию.

То есть оно визуально на сайте есть, но зайти саму страницу - выводилось сообщение.

 

Уважаемый у Вас нету прав для просмотра данного раздела/категорий.

Пожалуйста авторизуйтесь.

Войти/Регистрация.

 

Главная цель каталога, сбор контактных данных. на сайт заходит исключительно целевая аудитория.

 

P.S. под вашу идею вам подсказать ничего не могу, т.к. с opencart на ВЫ )))

Изменено пользователем Sahka

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


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

Главная цель каталога, сбор контактных данных. на сайт заходит исключительно целевая аудитория.

 

P.S. под вашу идею вам подсказать ничего не могу, т.к. с opencart на ВЫ )))

Окей, с такой принудиловкой, страницы в ПС индексируются?

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


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

Окей, с такой принудиловкой, страницы в ПС индексируются?

 

Не могу ответить на ваш вопрос, поскольку занимался исключительно кодом. СЕО лежит не на мне (могу лишь сказать что с момента внедрения такого кода было уже 4 регистрации, прошло 2-3 недели, а раньше была 1 регистрация в месяц (это в лучшем случае))

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


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

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

И прекрасно понимаю, что если открыть цену, то регистраций будет "ноль" в месяц, и тут возникает вопрос как "ласково попросить" зарегистрироваться?

 

Вот, и начинаю искать варианты "добровольной регистрации", ибо сегодня выглядит зарег. клиентов 30%, остальные мыло, скайп, вайбер 70%.

А реально 90% клиентов, заказы оформляют по телефону :(

 

По яшко-вебзору, вижу что посетитель теряется, если не видит цены, покидает сайт, в лучшем случаи пытается нажать на кнопку купить!

Могу представить картину, если крыть все категории, ужас нах.

 

Это влияет на глубину просмотра и время на сайте, что не есть гуд :(

 

А это в свою очередь влияет на выдачу в пс.

Изменено пользователем Espresso.Doktor

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


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

Дайте скидку зарегистрированным пользователям (если это возможно), думаю это подтолкнет людей к регистрации.

Изменено пользователем afwollis

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


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

Скрыть несколько категорий от незарегистрированных пользователей

<?php if (...$this->customer->getCustomerGroupId() == '2'...) { ?>

стесняюсь спросить - а для чего проверять группу, если интересует лишь "зарегистрированность" посетителя?

проверяй, залогинен ли, и все.

пример из контроллера аккаунта

		if (!$this->customer->isLogged()) {
			$this->session->data['redirect'] = $this->url->link('account/account', '', 'SSL');
			$this->redirect($this->url->link('account/login', '', 'SSL'));
		}

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


Ссылка на сообщение
Поделиться на другие сайты
Здравствуйте братья по разуму! (я, наверное, слишком о себе!)))

Подскажите ж, как сделать обязательными при регистрации ВСЕ поля. Ну или на выбор. Туплю, извиняюсь. 

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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