Magento 2: Diferentes formas de chequear si un cliente está logueado
Este artículo explica y ejemplifica diferentes formas de chequear si un usuario o cliente está logueado en nuestra tienda Magento 2.
1) Usando la clase \Magento\Customer\Model\Session
- El principal problema de este método es que no funcionará cuando la cache de página está habilitada.
- Cuando la cache de página está habilitada el método no será capaz de obtener el ID de usuario ni el valor booleano de isLoggedIn.
Código de ejemplo:
2) Usando la clase Magento\Customer\Model\SessionFactory
- La clase Factory resuelve el problema de la cache de página.
- Seremos capaces de ejecutar este Código y recuperar los valores deseados incluso si está habilitada la caché de página.
Código de ejemplo:
3) Usando la clase Magento\Framework\App\Http\Context
- Esta clase es útil si solo necesitamos chequear si el usuario está logueado o no.
- Usar HTTP Context funcionará en páginas cacheadas cómo páginas no cacheadas.
- Tampoco necesitamos trabajar directamente con la sesión del cliente.
Código de ejemplo: