Jump to content

[PS 1.5] récupérer le mail du client dans order-opc.tpl


Recommended Posts

Bonjour,

 

Sur un prestashop 1.5, je voudrais récupérer l'adresse mail du client sur la page order-opc.tpl.

J'ai voulu modifier le controller OrderOpcController.php dans la fonction _getGuestInformations(), mais je ne vois pas ensuite comment récupérer le mail dans order-opc.tpl, voici le code source de ce que j'ai fait :
 

protected function _getGuestInformations()
{
	$customer = $this->context->customer;
	$address_delivery = new Address($this->context->cart->id_address_delivery);

	$id_address_invoice = $this->context->cart->id_address_invoice != $this->context->cart->id_address_delivery ? (int)$this->context->cart->id_address_invoice : 0;
	$address_invoice = new Address($id_address_invoice);

	if ($customer->birthday)
		$birthday = explode('-', $customer->birthday);
	else
		$birthday = array('0', '0', '0');

	return array(
		'id_customer' => (int)$customer->id,
		'email' => Tools::htmlentitiesUTF8($customer->email), // => j'ai ajouté ça pour récupérer le mail
		'customer_lastname' => Tools::htmlentitiesUTF8($customer->lastname),
		'customer_firstname' => Tools::htmlentitiesUTF8($customer->firstname),
		'newsletter' => (int)$customer->newsletter,
		'optin' => (int)$customer->optin,
		'id_address_delivery' => (int)$this->context->cart->id_address_delivery

		// ... autres info client
	);
}
Link to comment
Share on other sites

Bonjour,

 

Après quelques heures de dev, j'ai trouvé un moyen de récupérer le mail du client (connecté) sur la page order-opc.tpl.

Je partage mon code, ça pourrait être utile pour d'autres.

Dans le fichier controller/front/OrderOpcController.php j'ai ajouter ces 3 lignes de codes dans la fonction initContent() :

public function initContent()
{
	parent::initContent();

        // .... bcp lignes de code

       /* récupérer le mail de client*/

		$customer = $this->context->customer; // init du client
		$customerMail = Tools::htmlentitiesUTF8($customer->email); // récupéraion du mail du client
		$this->context->smarty->assign('customerMail', $customerMail); //on passe la variable mail dans smarty ( = order-opc.tpl)
       
       /* end récupérer le mail du client */

		$this->_processAddressFormat();
		$this->setTemplate(_PS_THEME_DIR_.'order-opc.tpl');
	}		

Puis après dans le ficher smarty du thème order-opc.tpl

/* variable à utiliser dans le ficher tpl */
{if $isLogged AND !$isGuest}
    {$customerMail}
{/if}

Si il y a une autre solution plus propre je suis preneur, en tout cas ce code fonction je récupère bien le mail.

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...