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
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).
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]
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';
}
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]
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';
}