Jump to content

Edit History

Samantha66

Samantha66

En fait, pour que la connexion automatique fonctionne il faut enregistrer une nouvelle session customer.

J'ai utilisé le code que vous m'avez envoyé et y ai ajouté la création de la session, c'est beaucoup plus propre que mon code de départ...

Voici le code final qui fonctionne :

$customer = new Customer((int) $id_customer);
if (Validate::isLoadedObject($customer)) {
  $customer->logged = 1;
  $this->context->customer = $customer;
  $this->context->cookie->id_customer = (int) $customer->id;
  $this->context->cookie->customer_lastname = $customer->lastname;
  $this->context->cookie->customer_firstname = $customer->firstname;
  $this->context->cookie->logged = 1;
  $this->context->cookie->check_cgv = 1;
  $this->context->cookie->is_guest = $customer->isGuest();
  $this->context->cookie->passwd = $customer->passwd;
  $this->context->cookie->email = $customer->email;

  $this->context->cookie->registerSession(new CustomerSession());

  Tools::redirect($link->getModuleLink('moduledevis','devis'));
}	

Merci pour votre aide :)

Ce que je ne comprends pas, c'est que tous les modules (gratuits) de connexion automatique des clients via le back-office utilise le code que vous m'avez envoyé sans créer de session et pour eux ça fonctionne...

Samantha66

Samantha66

En fait, pour que la connexion automatique fonctionne il faut enregistrer une nouvelle session customer.

J'ai utilisé le code que vous m'avez envoyé et y ai ajouté la création de la session, c'est beaucoup plus propre que mon code de départ...

Voici le code final qui fonctionne :

$customer = new Customer((int) $id_customer);
if (Validate::isLoadedObject($customer)) {
  $customer->logged = 1;
  $this->context->customer = $customer;
  $this->context->cookie->id_customer = (int) $customer->id;
  $this->context->cookie->customer_lastname = $customer->lastname;
  $this->context->cookie->customer_firstname = $customer->firstname;
  $this->context->cookie->logged = 1;
  $this->context->cookie->check_cgv = 1;
  $this->context->cookie->is_guest = $customer->isGuest();
  $this->context->cookie->passwd = $customer->passwd;
  $this->context->cookie->email = $customer->email;

  $this->context->cookie->registerSession(new CustomerSession());

  Tools::redirect($link->getModuleLink('moduledevis','devis'));
}	

Merci pour votre aide :)

Samantha66

Samantha66

En fait, pour que la connexion automatique fonctionne il faut enregistrer une nouvelle session.

J'ai utilisé le code que vous m'avez envoyé et y ai ajouté la création de la session, c'est beaucoup plus propre que mon code de départ...

Voici le code final qui fonctionne :

$customer = new Customer((int) $id_customer);
if (Validate::isLoadedObject($customer)) {
  $customer->logged = 1;
  $this->context->customer = $customer;
  $this->context->cookie->id_customer = (int) $customer->id;
  $this->context->cookie->customer_lastname = $customer->lastname;
  $this->context->cookie->customer_firstname = $customer->firstname;
  $this->context->cookie->logged = 1;
  $this->context->cookie->check_cgv = 1;
  $this->context->cookie->is_guest = $customer->isGuest();
  $this->context->cookie->passwd = $customer->passwd;
  $this->context->cookie->email = $customer->email;

  $this->context->cookie->registerSession(new CustomerSession());

  Tools::redirect($link->getModuleLink('moduledevis','devis'));
}	

Merci pour votre aide :)

×
×
  • Create New...