Skip to main content

Afficher infos client (login ou email) sur facture

More
14 years 11 months ago #26359 by jlhosch
Bonjour,

J'aimerais pouvoir rappeler au client son login et/ou son email sur les documents qu'il reçoit ou peut imprimer.
Comment accéder à ces données (notamment à partir de la vue 'order/show' )?


Genev.

Please Log in or Create an account to join the conversation.

More
14 years 11 months ago #26369 by nicolas
Comme cela:

$user =& JFactory::getUser();
echo 'username: '.$user->username;
echo 'email: '.$user->email;

Please Log in or Create an account to join the conversation.

More
14 years 11 months ago #26886 by jlhosch

Please Log in or Create an account to join the conversation.

More
14 years 11 months ago - 14 years 11 months ago #26896 by jlhosch
Bonjour,
Nicolas, ta solution fonctionne bien à partir du front-end, mais comme elle récupère le user courant, ce n'est pas applicable pour les shipping invoices et invoices depuis le back-end ; il faudrait récupérer les infos du client et non de l'utilisateur connecté.

as-tu une idée, là vite fait ;-) ?

à partir de la vue order/invoice du back-end donc
Last edit: 14 years 11 months ago by jlhosch. Reason: précision

Please Log in or Create an account to join the conversation.

More
14 years 11 months ago #26897 by nicolas
Comme cela:

$userClass = hikashop_get('class.user');
$user = $userClass->get($order->order_user_id);
echo 'username: '.$user->username;
echo 'email: '.$user->email;

Please Log in or Create an account to join the conversation.

More
14 years 11 months ago #26898 by jlhosch
nickel, merci beaucoup

Genev.

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109582 by WebConseil
Bonjour,

J'ai repris ce code pour ajouter username et email sous l'adresse de livraison dans la facture dans order/invoice.php.
Mais je n'affiche que 2 champs vides...
Ce code est-il valable pour la dernière version d'Hikashop ?
Merci.

PS

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109597 by nicolas
order/invoice.php c'est comme cela qu'il faut faire:
$userClass = hikashop_get('class.user');
$user = $userClass->get($this->order->order_user_id);
echo 'username: '.$user->username;
echo 'email: '.$user->email;

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago - 13 years 3 months ago #109665 by WebConseil
Bonjour,


Oui, c'est bien le code que j'avais noté.
Mais ça ne fonctionne pas...

J'ai inséré le code comme ceci :
Code:
<table width="100%"> <tr> <?php if($this->invoice_type=='full' && !empty($this->element->billing_address)){?> <td> <fieldset class="adminform" id="htmlfieldset_billing"> <legend style="background-color: #FFFFFF;"><?php echo JText::_('HIKASHOP_BILLING_ADDRESS'); ?></legend> <?php $this->setLayout('address_template'); $html = $this->loadTemplate(); foreach($this->element->fields as $field){ $fieldname = $field->field_namekey; $html=str_replace('{'.$fieldname.'}',$this->fieldsClass->show($field,$this->element->billing_address->$fieldname),$html); } echo str_replace("\n","<br/>\n",trim(str_replace("\n\n","\n",preg_replace('#{(?:(?!}).)*}#i','',$html)),"\n")); [b]/** * Affichage email + username */ $userClass = hikashop_get('class.user'); $user = $userClass->get($this->order->order_user_id); ?> <br/> <? echo 'username: '.$user->username;?> <br/> <? echo 'email: '.$user->email;[/b] ?> </fieldset> </td> <?php }?> <td> <?php if(!empty($this->element->order_shipping_id) && !empty($this->element->shipping_address)){ ?> <fieldset class="adminform" id="htmlfieldset_shipping"> <legend style="background-color: #FFFFFF;"><?php echo JText::_('HIKASHOP_SHIPPING_ADDRESS'); ?></legend> <?php if(empty($this->element->override_shipping_address)) { $this->setLayout('address_template'); $html = $this->loadTemplate(); foreach($this->element->fields as $field){ $fieldname = $field->field_namekey; $html=str_replace('{'.$fieldname.'}',$this->fieldsClass->show($field,$this->element->shipping_address->$fieldname),$html); } echo str_replace("\n","<br/>\n",trim(str_replace("\n\n","\n",preg_replace('#{(?:(?!}).)*}#i','',$html)),"\n")); } else { echo $this->element->override_shipping_address; } ?> </fieldset> <?php } ?> </td> </tr> </table>

et j'obtiens l'affichage en pièce jointe.
Si vous pouvez m'aidez à comprendre, je vous en remercie d'avance.
Cordialement.

PS
Last edit: 13 years 3 months ago by Jerome. Reason: using code tag instead quote tag

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109669 by Eliot
Bonjour,

Essayez avec $this->element->order->order_user_id au lieu de $this->order->order_user_id

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109672 by WebConseil
Merci, mais aucun changement dans l'affichage avec ce changement...

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109677 by nicolas
Bonjour,

Essayez avec $this->element->order_user_id au lieu de $this->order->order_user_id

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109681 by WebConseil
Bonjour,

Non plus ! Merci pour votre aide collective !
Ci-dessous le code modifié pour vous assurer que je le fais correctement

/**
* Affichage email + username
*/
$userClass = hikashop_get('class.user');
$user = $userClass->get($this->element->order_user_id); ?>
<br/>
<? echo 'username: '.$user->username;?>
<br/>
<? echo 'email: '.$user->email;
?>

On ne devrait pas être très loin de la solution.
Cdlt.

PS

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109745 by nicolas
Mmm. Cela devrait marcher pourtant.

Essayez voir ceci:
echo 'username: '.$this->order->customer->username;
echo 'email: '.$this->order->customer->email;

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109752 by WebConseil
Et bien non, les champs restent vides !

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109789 by nicolas
Je ne vois pas comment c'est possible.
Cela fonctionne comme il faut chez moi.
Soit vous n'éditez pas le fichier pour le bon template, soit votre commande n'a pas d'utilisateur joomla attaché.

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109815 by WebConseil
Bonjour,


Je suis totalement sûr de travailler sur le fichier du bon template (bluestork en l'occurence) car j'y ai fait hier aussi plusieurs modifs de mise en page qui sont visibles.
Je ne comprends pas cette notion d'"utilisateur Joomla attaché" : les clients ne sont pas enregistré sur Joomla préalablement ; ils donnent leurs coordonnées lors du passage en caisse, mais ne sont pas enregistrés en tant qu'utilisateurs du CMS...
Mais bon, on récupère leur nom, adresse, téléphone... dans la facture, je ne comprends pas comment on ne peut pas récupérer leur email qui a été obligatoirement saisi au même moment, dans le même formulaire.
Merci.
Cordialement.

PS

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109848 by nicolas
Bonjour,

Mais du coup c'est normal que cela ne fonctionne pas si ce ne sont pas des utilisateurs joomla...
Les différents codes que j'ai proposés récupère l'email et le nom d'utilisateur de joomla.
Si vos clients n'ont pas d'utilisateur joomla, il n'est pas possible d'afficher leur nom d'utilisateur vu qu'il n'ont pas d'utilisateur...
Et pour l'email, c'est l'email dans HikaShop qu'il faut afficher et non celui de l'utilisateur joomla.
C'est donc le code suivant qu'il faudra utiliser:
echo 'email: '.$this->order->customer->user_email;
The following user(s) said Thank You: WebConseil

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109896 by WebConseil
Bonjour,

Ca va tout de suite mieux !
Comme quoi ce n'est pas toujours bon de glâner du code par ci par là quand on ne le comprend pas.
Merci pour votre aide.
Cordialement.

PS

Please Log in or Create an account to join the conversation.

More
13 years 3 months ago #109921 by WebConseil
J'abuse sûrement, mais de la même façon j'aimerai "récupérer" :
- n° de la la commande
- date de la commande
- la date de la facture (j'ai trouvé seul pour le n° de la facture !!)
Merci d'avance pour le gain de temps.
Cordialement.

PS

Please Log in or Create an account to join the conversation.

Time to create page: 0.350 seconds
Powered by Kunena Forum