Jump to content

Ayuda para acceder a las cookies desde codigo externos a PS


Recommended Posts

Bueno, lo primero que decir es que soy nuevo en este foro y no se si este es el hilo correcto, disculpas de antemano.

 

Lo segundo es mi problema.

Necesito acceder a las cookies de PrestaShop desde un panel propio para clientes.

 

id_customer, logged etc...

 

El problema viene a que siguiendo la documentación oficial de Prestashop 1.6 no consigo acceder a dichas cookies 

La información la obtengo de aquí: Documentación de acceso a cookies PS 1.6

 

Me resulta imposible ver si el usuario esta loggeado por ejemplo, simplemente no funciona.

 

Agradecería cualquier ejemplo de acceso a cualquier variable de las cookies.

 

Mil gracias.

 

 

Guillermo A.C.

Edited by guille334 (see edit history)
Link to comment
Share on other sites

Sin saber el problema funcionalmente es difícil...Si necesitas acceder a prestashop "fuera" de prestashop ->si estas en el misma carpeta/hosting necesitas importar el fichero config.inc (Si estas en otro hosting tienes que plantearte otra estrategia ->servicios web..etc).

 

p.ej en un wordpress instalado en una carpeta dentro de presta

<?php
require_once(dirname(__FILE__).'/../../../../config/config.inc.php');
if (isset(Context::getContext()->controller))
	$controller = Context::getContext()->controller;
else
{
	$controller = new FrontController();

Luego tienes acceso a toda la API de prestashop. Las cookies estan en el objeto Context en forma de un objeto de la clase Cookie

 

$lacookie=Context::getContext->cookie;.

 

una vez que tienes esta cookie puedes meter y sacar datos como si fuera un objeto normal

 

$lacookie->my_clienteEspecial=5556;

 

Puedes obtener

$lacookie->id_cart

$lacookie->id_lang

 

aunque en el propio context ya tienes el carrito, cliente..etc.

  • Like 1
Link to comment
Share on other sites

Gracias Enrique.

Entonces, si necesito por ejemplo mostrar el nombre del usuario desde un php en la carpeta raíz ¿debería funcionar algo así? :

<?php
require_once(dirname(__FILE__).'/config/config.inc.php');
if (isset(Context::getContext()->controller))
$controller = Context::getContext()->controller;
else
{
	$controller = new FrontController();

	$lacookie=Context::getContext->cookie;.

	echo 'Hola, '.$lacookie->customer_firstname.;
}
?>

Guillermo A.C.

Link to comment
Share on other sites

 

Mas concretamente seria (lo del controller era un copy paste..)

<?php
require_once(dirname(__FILE__).'/config/config.inc.php');


        if(Context::getContext->customer->isLogged()){
               $lacookie=Context::getContext->cookie;.
	    echo 'Hola, '.$lacookie->customer_firstname.;
       }
	

?>

 

Al parecer faltan un par de () pero me continua dando error, esta vez por un ; en la linea 5. Pero no encuentro la manera de corregirlo

 

Disculpa si son errores de novato, llevo poco con php.

.

Así es como ha quedado:

<?php
require_once(dirname(__FILE__).'/config/config.inc.php');
     if(Context::getContext()->customer->isLogged()){
               $lacookie=Context::getContext()->cookie;
	    echo 'Hola, '.$lacookie->customer_firstname.;
       }	
?>

Edited by guille334 (see edit history)
Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...