mails automatique modification d'état de commande

30 messages dans ce sujet

Posté(e) · Signaler ce message

Oui a base de htmlspecialchars_decode($statut_details) ou de html_entity_decode($statut_details) à la place de $statut_details.

Willy

Bonjour,

La fonction marche chez moi, par contre j'ai toujours le problème des caractères dans les mails et je n'ai pas compris votre réponse.

Autre chose : serait-il possible de n'envoyer le mail que lorsque l'on ne modifie que certains champs (statut de la commande et n° de colis par exemple ?)

Merci d'avance.

Nikolas

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pour envoyer mail lorsqu'on modifie le statut d'une commande

Ouvrir le fichier administrer/commandes.php

Dans le cas "maj_statut" , on a le code suivant :

for ($i = 0;$i< count($_POST['id']);$i++) {

if (vb($_POST['change_statut'.$_POST['id'][$i].'']) == "on") {

$sql = "update peel_commandes SET statut = '".intval($_POST['statut'])."' WHERE id = '".intval($_POST['id'][$i])."'";

mysql_query($sql) or die('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

if ($_POST['statut'] == 5) { send_avis_expedition($_POST['id'][$i]); }

}

}

echo "Le statut des commandes a &eacute;t&eacute; mis &agrave; jour.";

$order = "o_timestamp";

$sort = "DESC";

affiche_liste_commandes(vn($_POST['start']), $order, $sort);

break;

if ($_POST['statut'] == 5) { send_avis_expedition($_POST['id'][$i]); } : cette fonction va envoyer un mail d'expédition pour le statut d'identifiant 5 qui correspond à commande expédiée

Déclarer ensuite votre fonction dans /lib/fonctions/fonctions.php

function send_avis_expedition($commandeid) {

global $site;

global $wwwroot;

global $support;

$resCom = mysql_query("SELECT * FROM peel_commandes WHERE id = '".intval($commandeid)."'");

$com = mysql_fetch_object($resCom);

$resClient = mysql_query("SELECT * FROM peel_utilisateurs WHERE id_utilisateur = '".intval($com->id_utilisateur)."'");

$client = mysql_fetch_object($resClient);

$message = "Bonjour ".$client->prenom." ".$client->nom_famille.",\n\r";

$message .= "Nous avons le plaisir de vous confirmer la préparation et la prochaine livraison de la commande no. ".$commandeid." dans son intégralité.\n\r";

$message .= "Articles expédiés :\n\r";

$resComArt = mysql_query("SELECT * FROM peel_commandes_articles WHERE commande_id = '".intval($commandeid)."'");

while ($ComArt = mysql_fetch_array($resComArt)) {

$message .= "- ".html_entity_decode($ComArt['nom_produit'])."\n\r";

}

$message .= "Transporteur :\n\r";

$message .= "Le transporteur que vous avez choisi lors de la passation de votre commande est ".$com->transport."\n\r";

$message .= "Références de l'envoi : ";

$message .= "Le no. de colis est ".$com->colis.", vous pouvez suivre l'acheminement de votre colis en cliquant sur le lien suivant http://www.coliposte.fr/ \n\r";

$message .= "Adresse d'expédition :\n\r";

$message .= $com->client_info2."\n\r";

$message .= "RAPPEL IMPORTANT !\n\r";

$message .= "Nous vous invitons à suivre scrupuleusement nos instructions pour éviter tout litige. Le transport est une phase délicate qui demande une attention toute particulière.\r";

$message .= "Par conséquent, merci de vous conformer aux règles d'usages élémentaires rappelées ci-dessous :\n\r";

$message .= "- Colis en mauvais état\r";

$message .= "- colis ouvert et/ou écrasé\r";

$message .= "- système de fermeture (adhésif...) détérioré ou ne semblant pas d'origine\r";

$message .= "\n\rQUE FAIRE ?\n\r";

$message .= "- ne pas ouvrir le colis\r";

$message .= "- refuser le colis\r";

$message .= "- émettre immédiatement les réserves d'usage auprès du transporteur\r";

$message .= "- nous signaler le problème en nous indiquant le no. de commande concernée\n\r";

$message .= "IMPORTANT\n\r";

$message .= "$site refusera systématiquement le remboursement d'une commande si :\n\r";

$message .= "- aucune réserve n'a été émise auprès du transporteur\r";

$message .= "- aucune preuve de l'émission des réserves n'est fournie\n\r";

$message .= "Nous vous remercions de votre compréhension et restons à votre entière disposition pour tout complément d'information.\n\r";

$message .= "A bientôt sur $site\n\r";

mail($com->email,"[$site] Avis d'expédition de la commande n° $commandeid",$message,"FROM:$support");

echo "L'avis d'expédition a été envoyé à ".$com->email."<br />";

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Voila une fonction très utile !!

Par contre attention, l'envoi du mail ne se fait que lorsqu'on modifie le statut directement depuis la liste des commandes (cases à cocher), et non lorsqu'on le modifie depuis l'écran de détail des commandes.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Voila une fonction très utile !!

Par contre attention, l'envoi du mail ne se fait que lorsqu'on modifie le statut directement depuis la liste des commandes (cases à cocher), et non lorsqu'on le modifie depuis l'écran de détail des commandes.

ba chez moi c'est l'inverse , sa ne fonctionne que dans la commande et pas dans la liste des commandes !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Vous avez à mettre dans la page /administrer/commandes.php

if ($frm['statut'] == 5) { send_avis_expedition($frm['id']); }

Exemple de fonction qui fonctionne

function send_avis_expedition($commandeid) {

global $site;

global $wwwroot;

global $support;

$resCom = mysql_query("SELECT * FROM peel_commandes WHERE id = '".intval($commandeid)."'");

$com = mysql_fetch_object($resCom);

$resClient = mysql_query("SELECT * FROM peel_utilisateurs WHERE id_utilisateur = '".intval($com->id_utilisateur)."'");

$client = mysql_fetch_object($resClient);

$message = "Bonjour ".$client->prenom." ".$client->nom_famille.",\n\r";

$message .= "Nous avons le plaisir de vous confirmer la préparation et la prochaine livraison de la commande no. ".$commandeid." dans son intégralité.\n\r";

$message .= "Articles expédiés :\n\r";

$resComArt = mysql_query("SELECT * FROM peel_commandes_articles WHERE commande_id = '".intval($commandeid)."'");

while ($ComArt = mysql_fetch_array($resComArt)) {

$message .= "- ".html_entity_decode($ComArt['nom_produit'])."\n\r";

}

$message .= "Transporteur :\n\r";

$message .= "Le transporteur que vous avez choisi lors de la passation de votre commande est ".$com->transport."\n\r";

$message .= "Références de l'envoi : ";

$message .= "Le no. de colis est ".$com->colis.", vous pouvez suivre l'acheminement de votre colis en cliquant sur le lien suivant http://www.coliposte.fr/ \n\r";

$message .= "Adresse d'expédition :\n\r";

$message .= $com->client_info2."\n\r";

$message .= "RAPPEL IMPORTANT !\n\r";

$message .= "Nous vous invitons à suivre scrupuleusement nos instructions pour éviter tout litige. Le transport est une phase délicate qui demande une attention toute particulière.\r";

$message .= "Par conséquent, merci de vous conformer aux règles d'usages élémentaires rappelées ci-dessous :\n\r";

$message .= "- Colis en mauvais état\r";

$message .= "- colis ouvert et/ou écrasé\r";

$message .= "- système de fermeture (adhésif...) détérioré ou ne semblant pas d'origine\r";

$message .= "\n\rQUE FAIRE ?\n\r";

$message .= "- ne pas ouvrir le colis\r";

$message .= "- refuser le colis\r";

$message .= "- émettre immédiatement les réserves d'usage auprès du transporteur\r";

$message .= "- nous signaler le problème en nous indiquant le no. de commande concernée\n\r";

$message .= "IMPORTANT\n\r";

$message .= "$site refusera systématiquement le remboursement d'une commande si :\n\r";

$message .= "- aucune réserve n'a été émise auprès du transporteur\r";

$message .= "- aucune preuve de l'émission des réserves n'est fournie\n\r";

$message .= "Nous vous remercions de votre compréhension et restons à votre entière disposition pour tout complément d'information.\n\r";

$message .= "A bientôt sur $site\n\r";

mail($com->email,"[$site] Avis d'expédition de la commande n° $commandeid",$message,"FROM:$support");

echo "L'avis d'expédition a été envoyé à ".$com->email."<br />";

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping