PRESTASHOP

Prestashop: Uso de la clase Cookie. 驴C贸mo verificar si ha iniciado sesi贸n fuera de prestashop?



Para obtener los datos de una cookie en un archivo aparte fuera del ambito de Prestahop, se necesitan tener incluidos los siguientes archivos:

include_once(dirname(__FILE__) . '/config/config.inc.php');
include_once(dirname(__FILE__) . '/config/settings.inc.php');
include_once(dirname(__FILE__) . '/classes/Cookie.php');
include_once(dirname(__FILE__) . '/init.php');

Una vez tenemos incluidos los archivos necesarios para la utilizaci贸n, obtendremos los par谩metros de la cookie para poder utilizarla. Para ello lo haremos de la siguiente forma:

$cookie = new Cookie('psAdmin'); // para employees
$cookie = new Cookie('ps'); // para customers

Tipos de cookies en PrestaShop

Aqu铆 os dejamos unos ejemplos de Cookies que utiliza Pretashop.

Hay dos tipos de cookies en prestashop, una para el lado del backoffice (empleados) o panel de gesti贸n, y otra para el lado del usuario (cliente).

[1] Cookies psAdmin

Las cookies relacionadas con los empleados son las que se refieren a psAdmin.

$cookie = new Cookie('psAdmin');

Sus campos son los siguientes:

- [date_add] => [Fecha creaci贸n de la cookie]
- [id_lang] => [El ID del idioma seleccionado]
- [id_employee] => [El ID del empleado]
- [lastname] => [Nombre del empleado]
- [firstname] => [Apellidos del empleado]
- [email] => [Email del empleado]
- [profile] => [Perfil del empleado]
- [passwd] => [Contrase帽a del empleado codificada en MD5 junto con la _COOKIE_KEY_ del fichero config/settings.inc.php]
- [checksum] => [C贸digo verificaci贸n de la cookie]

Ejemplo

Aqu铆 tienes un ejemplo en PHP para obtener los siguientes campos relacionados con la cookie de employee:

if (isset($cookie->id_employee) && $cookie->id_employee) {
        echo 'Estoy Logado';
        echo 'Fecha: '.$cookie->date_add;
        echo 'Nombre: '.$cookie->firstname;
        echo 'Apellidos: '.$cookie->lastname;
        echo 'Email: '.$cookie->email;
} else {
        echo 'No estoy logado';
}

[2] Cookies ps

Las cookies relacionadas con los clientes o usuarios, son las que se refierena a ps.

$cookie = new Cookie('ps');

Puedes obtener los siguientes campos relacionados con la cookie de customer:

- [date_add] => [Fecha creaci贸n de la cookie]
- [id_lang] => [El ID del idioma seleccionado]
- [id_currency] => [El ID de la moneda seleccionada]
- [last_visited_category] => [ID de la 煤ltima categor铆a visitada en el listado de productos]
- [ajax_blockcart_display] => [Para conocer si el carrito se encuentra Expandido o no lo est谩]
- [viewed] => [ID de los productos reci茅n vistos separados por comas]
- [id_wishlist] => [ID actual de la lista en el Bloque de wishlist]
- [checkedTOS] => [Para saber si han marcado las condiciones del servicio en el checkbock (0 si no ha se帽alado nada, 1 si las ha aceptado]
- [id_guest] => [EL ID del usuario invitado]
- [id_connections] => [ID de la conexi贸n actual de la secci贸n del usuario]
- [id_customer] => [ID del cliente]
- [customer_lastname] => [Nombre Cliente]
- [customer_firstname] => [Apellidos Cliente]
- [logged] => [Sirve para comprobar si estas logeado]
- [passwd] => [Contrase帽a del empleado codificada en MD5 junto con la _COOKIE_KEY_ del fichero config/settings.inc.php]
- [email] => [Email cliente]
- [id_cart] => [ID del carrito actual]
- [checksum] => [C贸digo verificaci贸n de la cookie]

Ejemplo

Un ejemplo en PHP para comprobar si se est谩 logado puede ser de la siguiente forma:

if (Context::getContext()->customer->isLogged()) {
        echo 'Estoy Logado';
        echo 'Fecha: '.$cookie->date_add;
        echo 'Nombre: '.$cookie->customer_firstname;
        echo 'Apellidos: '.$cookie->customer_lastname;
        echo 'Email: '.$cookie->email;
} else {
        echo 'No estoy logado';
}