Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


vostrvl2

Recommended Posts

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

Змінено користувачем vostrvl2
Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


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

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

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

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

Надіслати
Поділитися на інших сайтах


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

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

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

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

Надіслати
Поділитися на інших сайтах


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

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

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

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


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

 

 

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

Надіслати
Поділитися на інших сайтах


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

 

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

 

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

 

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

 

if ($logged) {

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

} else {

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

}

  • +1 1
Надіслати
Поділитися на інших сайтах

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

 

<?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
Надіслати
Поділитися на інших сайтах


  • 1 year later...
30 минут назад, 4ester7 сказал:

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

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

Змінено користувачем thentru
  • +1 1
Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


6 минут назад, 4ester7 сказал:

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

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

  • +1 1
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.