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

[Решено?..] Проверка залогинен ли пользователь

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

Добрый день. Подскажите, пожалуйста, как сделать проверку на то, залогинен  ли пользователь при нажатии на кнопку КУПИТЬ? Если да - ничего не происходит, товар отрпавляется в корзину и продолжаем работать. Если - нет - выводится оповещение, что необходимо зарегистрироваться и соответственно, в корзину ничего не добавлять? (ocStore-1.5.5.1.2)

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

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


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

Можно дополнить вопрос? А существует проверка еще и по группам пользователям? Да бы в контроллере доп. загружать контент если на сайте администратор.

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


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

Добрый день. Подскажите, пожалуйста, как сделать проверку на то, залогинен  ли пользователь при нажатии на кнопку КУПИТЬ? Если да - ничего не происходит, товар отрпавляется в корзину и продолжаем работать. Если - нет - выводится оповещение, что необходимо зарегистрироваться и соответственно, в корзину ничего не добавлять? (ocStore-1.5.5.1.2)

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

Нельзя будет только оформить заказ. Но можно это условие перетащить и на кнопку купить, при желании.

Только для чего такое делать? Пользователь может уйти к конкуренту, который продаст свой товар при наличии всего лишь мобильного телефона клиента в заказе.

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


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

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

Нельзя будет только оформить заказ. Но можно это условие перетащить и на кнопку купить, при желании.

Только для чего такое делать? Пользователь может уйти к конкуренту, который продаст свой товар при наличии всего лишь мобильного телефона клиента в заказе.

Да, отключить можно, но это решение не полностью устраивает. Человек будет сидеть, выбирать, добавлять в корзину, а при оформлении ему ничего не будет понятно, так как заказ не будет завершен без каких-либо оповещений. Опять же на этом шаге его огорошивать не стоит. Нужно, чтобы человек мог посмотреть свой счет, историю своих операций, поэтому регистрация необходима, или есть какие-то другие решения? Нужны необходимые данные от человека, также согласие с офертой. Оформление по белому на ИП, бухгалтера так сказали нужно. Так как продается не "свой" товар, а получается перепродажа. Чтоб не было проблем с налоговой.

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


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

Ну либо сделать для незалогиненных пользователей кнопку КУПИТЬ неактивной.. Но сам принцип, чтоб человек пошел и зарегистрировался.

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


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

Да, отключить можно, но это решение не полностью устраивает. Человек будет сидеть, выбирать, добавлять в корзину, а при оформлении ему ничего не будет понятно, так как заказ не будет завершен без каких-либо оповещений. Опять же на этом шаге его огорошивать не стоит. Нужно, чтобы человек мог посмотреть свой счет, историю своих операций, поэтому регистрация необходима, или есть какие-то другие решения? Нужны необходимые данные от человека, также согласие с офертой. Оформление по белому на ИП, бухгалтера так сказали нужно. Так как продается не "свой" товар, а получается перепродажа. Чтоб не было проблем с налоговой.

А мне всегда казалось, что оповещение существует...

Ну да ладно, лучше прикрутить оповещение, чем сразу говорить "Кошелек или жизнь!"

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


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

Ну либо сделать для незалогиненных пользователей кнопку КУПИТЬ неактивной.. Но сам принцип, чтоб человек пошел и зарегистрировался.

Лучше неактивной. А еще лучше, подменить ее кнопкой "для покупок необходимо зарегистрироваться" и по кнопке отправлять на регистрацию :)

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


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

Лучше неактивной. А еще лучше, подменить ее кнопкой "для покупок необходимо зарегистрироваться" и по кнопке отправлять на регистрацию :)

 

 

Это было бы лучшим вариантом ) А куда копать, не подскажете?

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


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

Копать в двух направлениях

 

Во всех контроллерах где выбираются товары пдонимать признак

 

$this->data['logged'] = $this->customer->isLogged()

 

Во всех шаблонах, где есть кнопка Купить

 

if ($logged) {

// выводим правильную кнопку

} else {

// выводим неправильную кнопку

}

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


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

Погуглил в смежных темах, получился такой код

 

<?php if ($this->customer->isLogged()) { ?>  

..

..

<?php } ?>

 

Этим мы скрываем кнопку КУПИТЬ для незалогиненных пользователей, но хотелось бы подмену кнопки на ссылку для регистрации.  Если брать код из спеццены, то получается, что price-new определен где-то, и выводит новую цену, как бы можно поставить туде ссылку вместо цены?

 

        <?php } else { ?>
        <span class="price-new"><?php echo $special; ?></span> <span class="price-old"><?php echo $price; ?></span>
        <?php } ?>

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


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

Погуглил в смежных темах, получился такой код

 

<?php if ($this->customer->isLogged()) { ?>  

..

..

<?php } ?>

 

Этим мы скрываем кнопку КУПИТЬ для незалогиненных пользователей, но хотелось бы подмену кнопки на ссылку для регистрации.  Если брать код из спеццены, то получается, что price-new определен где-то, и выводит новую цену, как бы можно поставить туде ссылку вместо цены?

 

        <?php } else { ?>

        <span class="price-new"><?php echo $special; ?></span> <span class="price-old"><?php echo $price; ?></span>

        <?php } ?>

Зачем вам код из спеццены, если вы хотите вывести кнопку для регистрации? Просто вставьте в ELSE код кнопки для регистрации.

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

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


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

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

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


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

$this->customer->isLogged() не работает в opencart 2. Подскажите, как быть в таком случае

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


Ссылка на сообщение
Поделиться на другие сайты
30 минут назад, 4ester7 сказал:

$this->customer->isLogged() не работает в opencart 2. Подскажите, как быть в таком случае

как это не работает, если в контроллере /catalog/controller/account/account.php именно так и проверяется залогинен ли пользователь

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

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


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, thentru сказал:

как это не работает, если в контроллере /catalog/controller/account/account.php именно так и проверяется залогинен ли пользователь

Уже увидел, но при использовании элементарной конструкции рвёт вёрстку (на скрине).

Вот конструкция: <a href="<?php if (!$this->customer->isLogged()) { ?> /index.php?route=account/login <?php } else { echo 'index.php?route=checkout/simplecheckout'; } ?>">

Использовал в файле common/cart.tpl

В другом сайте на opencart 1.5 один в один испоьзовал - не рвёт, сделал в контроллере для теста переменку, в которую вбил $this->customer->isLogged(), только начинаю её использовать - сразу вёрстке хана. То же самое, если переменки сессий использовать.

Так что может и она работает, но почему-то сразу всё пропадает)

Снимок экрана 2017-01-31 в 19.21.39.png

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


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

Правильнее будет поместить в контроллер проверку логина, а во вьюшку сделать только вывод готового результата.
В данном случае - ссылки

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


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, thentru сказал:

Правильнее будет поместить в контроллер проверку логина, а во вьюшку сделать только вывод готового результата.
В данном случае - ссылки

Так и сделал только что - всё равно трабл :)

Вывел вар дампом в футере - вот такая ситуация - как будто он не видит этого класса, хотя в конфигах всё ок

Снимок экрана 2017-01-31 в 19.43.24.png

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


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

поместить в контроллер

вы делаете все во вьюшке

  • +1 1

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


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

Спасибо, через контроллер помогло! Вот только $logged постоянно отдаёт NULL как авторизованному, так и нет. Сейчас ищу ответ

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


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, 4ester7 сказал:

Спасибо, через контроллер помогло! Вот только $logged постоянно отдаёт NULL как авторизованному, так и нет. Сейчас ищу ответ

правильный метод isLogged()

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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