I certainly couldn't get it to work in my test either. However, you can try
$id = (int)$this->context->cookie->id_customer;
which works for me. I'm not at all sure that this is the best way to do it though.
Question
I used the below code to try to get the current user ID in prestashop.. am placing this code in another php file in my module directory and call it through by the module file.
$id = $this->context->customer->id_customer;
but its not working for me.. am using prestashop 1.5 ..
Solution
I certainly couldn't get it to work in my test either. However, you can try
$id = (int)$this->context->cookie->id_customer;
which works for me. I'm not at all sure that this is the best way to do it though.
OTHER TIPS
First check if user is logged in than get the id by $this->context->customer->id_customer
if ($this->context->customer->isLogged()) {
echo $this->context->customer->id_customer;
}
else{
echo 'Not LoggedIn';
}
In Prestashop 1.6, the best way in a controller is to use :
$id_customer = null;
if ($this->context->customer->isLogged()) {
// code to execute if i am logued
$id_customer = $this->context->customer->id;
}
You shouldn't be using cookie.
Just use this:
$id=(int)$this->context->customer->id;
you can remove (int), but i like to specify the type of content im getting.
BR's