Skip to main content

Nom du client dans titre e-mail de commande

More
13 years 4 months ago - 13 years 3 months ago #106882 by oliv
Bonjour,

Je n'arrive pas à afficher un champs personnalisé dans le titre de l'e-mail de Notification de commande à l'administrateur.

Le numéro de commande, j'y arrive.

Merci.
Last edit: 13 years 3 months ago by oliv. Reason: réglé

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

More
13 years 4 months ago - 13 years 4 months ago #106887 by Mohamed Thelji
Bonjour,

Je pense que vous trouverez quelques réponses ici :

Custom order fields will be included in the email to the administrator automatically.
For the email sent to the user, you will have to edit the "order creation notification" email via the menu System->Emails and add the code below in it if you want the user to also have the information in his email :
$fieldsClass = hikashop::get('class.field');
$fields = $fieldsClass->getFields('frontcomp',$data,'order','');
foreach($fields as $fieldName => $oneExtraField) {
echo "\r\n".$fieldsClass->trans($oneExtraField->field_realname).' : '.$fieldsClass->show($oneExtraField,$data->$fieldName);
}

En espérant que cela vous sera utile.
Last edit: 13 years 4 months ago by Mohamed Thelji.
The following user(s) said Thank You: oliv

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

More
13 years 4 months ago #107057 by oliv
Merci Mohamed,

Je n'ai pas trouvé la réponse à ma question.

Je précise que c'est dans le titre, aurais-je dû écrire "le sujet", que je voudrais inclure cette donnée.

Merci.

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

More
13 years 4 months ago #107085 by Eliot
Bonjour,

Une solution possible est de supprimer le sujet de votre mail.
Ensuite, dans le fichier order.php de administrator/components/com_hikashop/classes trouvez la ligne:
Code:
$order->mail->subject = JText::sprintf('NEW_ORDER_SUBJECT',$order->order_number,HIKASHOP_LIVE);

Il vous suffit alors de trouver la traduction dans le fichier de langue pour l'adapter à vos besoins, les %s de la traduction étant remplacées par les variables du sprintf()
The following user(s) said Thank You: oliv

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

More
13 years 4 months ago #107094 by oliv
J'y suis presque il me manque le terme à rentrer pour remplacer "HIKASHOP_LIVE" par mon champs "address_company".
J'arrive pas à le trouver.
Merci.

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

More
13 years 4 months ago #107119 by Eliot
C'est là qu'il faut utiliser le code donné plus haut par Mohamed.
Code:
$fieldsClass = hikashop::get('class.field'); $fields = $fieldsClass->getFields('frontcomp','address','');

Cela vous permet de récupérer tous les champs personnalisés de type adresse. Le foreach vous permettra de les parcourir, trouver celui qui vous intéresse et afficher sa valeur. Par exemple:
Code:
$theField=''; foreach($fields as $fieldName => $oneExtraField) { if($fieldName=='addresse_title'){ $theField=$oneExtraField->field_realname; } }

C'est un exemple bien sur, il faut remplacer "address" par la valeur du "table" de votre champ et la condition du if par son namekey.
The following user(s) said Thank You: oliv

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

More
13 years 4 months ago #107124 by oliv
Merci mais mon niveau débutant en php ne me permet pas de comprendre où il faut coller ces codes.

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

More
13 years 4 months ago - 13 years 3 months ago #107125 by Eliot
Il suffit de les mettre au dessus de la ligne
Code:
$order->mail->subject = JText::sprintf('NEW_ORDER_SUBJECT',$order->order_number,$theField);

Vous remarquerez que j'ai remplacé HIKASHOP_LIVE par le champ personnalisé récupérer précédemment.
Last edit: 13 years 3 months ago by Eliot.
The following user(s) said Thank You: oliv

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

More
13 years 4 months ago #107131 by oliv
Merci je me rapproche mais je ne sais si le chemin est encore long. Voici le code collé, il y surement quelque chose qui cloche?
Code:
if(empty($order->mail->subject)) { $theField=''; foreach($fields as $fieldName => $oneExtraField) { if($fieldName=='address_company'){ $theField=$oneExtraField->Company; } } $order->mail->subject = JText::sprintf('NEW_ORDER_SUBJECT',$order->order_number,$theField); }
Et voici un bout de la bdd où je dois sûrement trouver les infos nécessaires?



Merci.

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

More
13 years 4 months ago #107195 by nicolas
Ce n'est pas
$theField=$oneExtraField->Company;

mais
$theField=$data->address_company;

qu'il faut utiliser.
The following user(s) said Thank You: oliv

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

More
13 years 3 months ago #107426 by oliv
Merci Nicolas,

J'ai bien le numéro de la commande mais ce fameux champs toujours pas.

Sujet de l'e-mail reçu : "Nouvelle commande No. F1L25 créée sur"

Je n'ai pas d'autre piste.

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

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

Comme l'a dit Nicolas, avez vous essayé directement avec $data->address_company à la place de $theField dans la ligne:
Code:
$order->mail->subject = JText::sprintf('NEW_ORDER_SUBJECT',$order->order_number,$theField);
The following user(s) said Thank You: oliv

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

More
13 years 3 months ago #107456 by oliv
Bonjour Eliot,

Ca ne marche toujours pas voici où j'en suis :
Code:
$order->mail->subject = trim($order->mail->subject); if(empty($order->mail->subject)) { $theField=''; foreach($fields as $fieldName => $oneExtraField) { if($fieldName=='address_company'){ $data->address_company; } } $order->mail->subject = JText::sprintf('NEW_ORDER_SUBJECT',$order->order_number,$data->address_company); }

Merci.

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

More
13 years 3 months ago #107501 by nicolas
rajoutez la ligne:
var_dump($data);

et regardez ce que vous avez dans $data et ensuite il suffit d'utiliser l'attribut correspondant à la valeur que vous voulez...
The following user(s) said Thank You: oliv

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

More
13 years 3 months ago #107570 by oliv
Bonjour,

Où dois-je rajouter cette ligne?

Merci.

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

More
13 years 3 months ago #107579 by Eliot
Vous pouvez l'ajouter n'importe ou dans votre email (une partie visible tout de même).
The following user(s) said Thank You: oliv

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

More
13 years 3 months ago #107581 by oliv
Je l'ai mis à la fin du fichier order.php et j'ai rien à la fin de l'e-mail.
Merci.

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

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

Il faut l'ajouter dans l'email en question, en passant par Système > Email et ajouter le var_dump dans le corps de l'email.
The following user(s) said Thank You: oliv

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

More
13 years 3 months ago #107631 by oliv
Au retour de l'e-mail je trouve bien mon résultat :

["address_company"]=> string(13) "Société XXX"

C'est "Société XXX" que j'aimerais retrouver dans le sujet de l'e-mail.

A la re-lecture de cette discussion, je ne vois pas ce que je peux faire de ce résultat.

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

More
13 years 3 months ago #107647 by Eliot
Voici la ligne qu'il vous faut:
Code:
$order->mail->subject = JText::sprintf('NEW_ORDER_SUBJECT',$order->order_number,$data['address_company']);
The following user(s) said Thank You: oliv

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

Time to create page: 0.304 seconds
Powered by Kunena Forum