Как проверить, что пользователь залогинился в Magento
Довольно часто при работе с модулями в Мадженто возникает задача определить, вошел ли пользователь в систему (залогинился) или нет. Т.е., определять пользователя как авторизованного, или как гостя. Например, затем эту информацию можно будет использовать, чтобы давать залогиненому пользователю доступ к дополнительному функционалу в интернет-магазине или перенаправлять на определенную страницу на сайте (к примеру, страницу входа или регистрации).
Получить информацию о входе в систему Мадженто можно довольно просто, используя данные сессии пользователя. Для этого мы будем использовать единственный экземпляр класса (т.е., Singleton) модуля Customer.
Чтобы проверить пользователя на авторизованность в системе Мадженто используйте следующую конструкцию:
Mage::getSingleton('customer/session')->isLoggedIn()
Результат данного кода будет представлен в логическом булевом типе (истина – true
или ложь – false
). Его можно присвоить переменной и далее в коде использовать для проверки, или же делать проверку напрямую, без использования переменной.
Например, простейшая проверка может выглядеть так:
<?php $customerLoggedIn = Mage::getSingleton('customer/session')->isLoggedIn(); if ($customerLoggedIn) { echo "Пользователь залогинился в системе Мадженто"; } else { echo "Пользователь не залогинился в системе Мадженто и представлен на сайте как Гость"; } ?>
Этот код можно использовать как в модуле, так и в PHTML файлах-шаблонах.
Если вам нужно больше информации о пользователе, тогда вы можете ее получить с использованием следующего кода:
$customerData = Mage::getSingleton('customer/session')->getCustomer(); var_dump($customerData);
Надеемся, что вам пригодится на практике сегодняшний небольшой урок!