Avoir le nom dans le sujet dans un e-mail

Utilisateur anonyme
Invité n'ayant pas de compte PHPfrance

04 juin 2021, 02:08

Bonjour,
Je cherche à avoir le nom du client dans le sujet d'un e-mail de confirmation de commande que je reçois à chaque
commande client (car il n'y a que 2 numéro qui s'affichent et qui n'aident pas ):
un nom (du client) permet de savoir "ou j'en suis" avec les commandes ...
J'ai trouvé le fichier ou est le code dans le FTP, mais bien que j'ai fait une dizaine de tentative, elles ont toutes échouées.
Je suis un très très très grand débutant en Php , et je venais demander un peu d'aide.
Voici une partie du fichier avec le code d'origine qui doit agir sur le sujet dans l'email :

if ($dir_mail) {
Mail::send(
$mail_id_lang,
'new_order',
$this->trans(
'New order : #%d - %s',
[
$order->id,
$order->reference,
],
'Emails.Subject',
$locale),
$template_vars,
$merchant_mail,
null,
$configuration['PS_SHOP_EMAIL'],
$configuration['PS_SHOP_NAME'],
null,
null,
$dir_mail,
false,
$id_shop
);
}
}
}

J'ai compris qu'il faut agir sur :
'New order : #%d - %s',
[
$order->id,
$order->reference,

Mais je n'arrive pas à faire fonctionner tout ceci.
J'ai placé [order_name] ou d'autres choses après "New order : " et avant "#%d - %s',"
exemple :
'New order : [order_name] - #%d - %s',
Voici mes essais ratés (à chaque fois , ça marque dans l'e-mail d'essai ce que j'ai écrit dans le code, et pas le nom du client):

New order : [order_name] - #0 - 55
New order : name - #0 - 56
New order : $name - #0 - 57
etc...

Auriez vous une idée pourquoi ça ne fonctionne pas ?
Est-il possible de faire ressortir le nom du client ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

04 juin 2021, 10:00

Sans connaitre le reste de ton code, on ne peut que faire des suppositions pour t'aider.
Dans ta ligne d'objet 'New order : #%d - %s' il est plus que probable que %d inique un endroit à remplacer par une variable numérique (d comme digit), et %s par une chaine de caractères (s comme string), et ça se confirme juste ensuite où on voit un tableau avec 2 variables : [ $order->id, $order->reference]

Donc pour faire ce que tu veux grosso-modo, il faut ajouter un %s dans l'objet, et ajouter dans le tableau en dessous une variable qui contient le nom de ton client.
Un truc du genre :
$this->trans(
'New order %s : #%d - %s',
[
$order->name,
$order->id,
$order->reference,
], 
Par contre, je ne sais pas du tout où est stocké le nom de ton client !
Donc dans mon exemple j'ai mis $order->name mais si ça se trouve, c'est first_name/lastname ou n'importe quoi d'autre.
A toi de voir comment est créé $order où de regarder ce qu'il contient avec un var_dump($order)
Quand tout le reste a échoué, lisez le mode d'emploi...

Utilisateur anonyme
Invité n'ayant pas de compte PHPfrance

04 juin 2021, 13:20

Arthur, Je t'ai envoyé un message privé.
Tu l'a reçu ?
Car j'ai un doute, il est dans la "boîte d'envoi" , et pas dans la boîte "message envoyés"...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

04 juin 2021, 20:35

Je l'ai reçu mais le principe d'un forum d'entraide, c'est que toutes les demandes d'aide se font en public et pas en messages privés, ainsi cela permettra d'aider potentiellement d'autres développeurs qui auraient un problème similaire au tien.
Par ailleurs, cela permet aussi aux bénévoles qui animent ce forum de se relayer si l'un d'entre nous n'a pas le temps ou si une meilleure solution pourrait être proposée.
Quand tout le reste a échoué, lisez le mode d'emploi...

Utilisateur anonyme
Invité n'ayant pas de compte PHPfrance

04 juin 2021, 22:20

Je l'ai reçu mais le principe d'un forum d'entraide, c'est que toutes les demandes d'aide se font en public et pas en messages privés, ainsi cela permettra d'aider potentiellement d'autres développeurs qui auraient un problème similaire au tien.
Par ailleurs, cela permet aussi aux bénévoles qui animent ce forum de se relayer si l'un d'entre nous n'a pas le temps ou si une meilleure solution pourrait être proposée.
D'accord Arthur, c'est pas grave, je ne voulais pas "griller" des développeurs qui attendent après un CMS connu pour acheter leur bifsteack sur le dos des utilisateurs de ce CMS... Je te remercie et vais chercher ma solution autrement. No problem :D
Bonne continuation.

Utilisateur anonyme
Invité n'ayant pas de compte PHPfrance

04 juin 2021, 22:25

Arthur, s'il te plaît, conformément à la loi En application de l’article 17.1 du Règlement général sur la protection des données (RGPD), je te prie d’effacer de tes fichiers les données personnelles suivantes me concernant:
Ma demande ci dessus pour une aide sur du PHP.
"Avoir le nom dans le sujet dans un e-mail"
Merci d'avance de tout effacer ce sujet et ces messages.
Cordialement.