Как получить текущий идентификатор пользователя Prestashop?

Я использовал приведенный ниже код, чтобы попытаться получить текущий идентификатор пользователя в prestashop. Я помещаю этот код в другой файл php в каталоге моего модуля и вызываю его через файл модуля.

 $id = $this->context->customer->id_customer;

но у меня это не работает.. я использую prestashop 1.5..


person Manik    schedule 26.04.2013    source источник
comment
Вы можете дать более подробную информацию ? Что вы пытаетесь сделать в своем файле php? Вы фронт или бэк-офис? Ваш php-файл вызывается с помощью ajax? Нам нужен контекст, чтобы понять, откуда может возникнуть проблема.   -  person AlexDeb    schedule 19.01.2014
comment
Я уже получил ответ AlexDeb   -  person Manik    schedule 27.01.2014
comment
blog.gofenice.com/uncategorized/get-current-user-id -престашоп   -  person Gofenice Technologies    schedule 12.11.2015


Ответы (4)


Я, конечно, тоже не смог заставить его работать в моем тесте. Тем не менее, вы можете попробовать

$id = (int)$this->context->cookie->id_customer;

который работает для меня. Я вовсе не уверен, что это лучший способ сделать это, хотя.

person josephdietrich    schedule 26.04.2013

Сначала проверьте, вошел ли пользователь в систему, чем получите идентификатор с помощью $this->context->customer->id_customer

if ($this->context->customer->isLogged()) {

      echo $this->context->customer->id_customer;

}
else{
   echo 'Not LoggedIn';
}
person Raza    schedule 03.07.2013

В Prestashop 1.6 лучше всего использовать контроллер:

        $id_customer = null;
        if ($this->context->customer->isLogged()) {
            // code to execute if i am logued
             $id_customer = $this->context->customer->id;
        }
person Plici Stéphane    schedule 23.07.2014

Вы не должны использовать cookie.

Просто используйте это:

    $id=(int)$this->context->customer->id;

вы можете удалить (int), но мне нравится указывать тип контента, который я получаю.

BR's

person user2831723    schedule 14.01.2014