mails automatique modification d'état de commande

30 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

Ma fonction mail automatique de modification de commande dans le back office ne fonctionne pas.

J'ai regardé dans le forum pour la version shopping mais cela ne fonctionne toujours pas.

J'ai regardé dans : boutique/administrer/modeles/commande.php a la case update dont voici le code:

case "update" :

update_commande($_POST);

$order = "o_timestamp";

$sort = "DESC";

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

break;

$verif_commande = mysql_query("SELECT * FROM peel_commandes WHERE id = '".intval($_POST['commandeid'])."'");

$verif_commande_tab = mysql_fetch_object($verif_commande);

if ($verif_commande_tab->statut_details != $_POST['statut_details'])

{

// recupération de l'email de la commande

$qid = mysql_query("SELECT * FROM peel_societe");

if ($qid) {

if (mysql_num_rows($qid) > 0) {

$ligne = mysql_fetch_object($qid);

}

}

// envoie du mail

$mailSujet = "Avancée de votre commande";

$mailObjet = "Bonjour, \n";

$mailObjet .= " \nEtat de votre commande : ".$_POST['statut_details'];

mail($verif_commande_tab->email,$mailSujet,$mailObjet,"From:$ligne->email");

echo "<p class=\"normal\">un mail a été envoyé à ".$verif_commande_tab->email." pour lui signifier l'avancée de sa commande.</p>";

}

J'ai cherché à conprendre la fonction mais pas de résultat, pouvez-vous m'aider svp ?

Cordialement,

Balam

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

case "update" : // en cas d'update

update_commande($_POST); // on appelle la fonction update_commande avec la variable $POST qui sont les données postées par la précédente page

$order = "o_timestamp";

$sort = "DESC";

affiche_liste_commandes(vn($_REQUEST['start']), $order, $sort); // on appelle la fonction affiche_liste_commandes avec des variables (debut d'extraction, colonne et ordre de tri)

break; // on sort du cas "update"

$verif_commande = mysql_query("SELECT * FROM peel_commandes WHERE id = '".intval($_POST['commandeid'])."'"); // on sélectionne toutes les commandes qui ont l'Id de la commande qui vient d'être postée par la page précédente

$verif_commande_tab = mysql_fetch_object($verif_commande); // on fait un objet du résultat de la requete précédente

if ($verif_commande_tab->statut_details != $_POST['statut_details']) // si le statut de la commande enregistré dans la base de données est différent de celui posté par la page précédente, on passe à al suite

{

$qid = mysql_query("SELECT * FROM peel_societe"); // recupération des parametres de la société

if ($qid) {

if (mysql_num_rows($qid) > 0) {

$ligne = mysql_fetch_object($qid);

}

}

// envoie du mail

$mailSujet = "Avancée de votre commande";

$mailObjet = "Bonjour, \n";

$mailObjet .= " \nEtat de votre commande : ".$_POST['statut_details'];

mail($verif_commande_tab->email,$mailSujet,$mailObjet,"From:$ligne->email"); // envois du mail pour signifier le changement d'état au mail indiqué dans la commande dont l'id a été envoyé par la page précédente

echo "<p class=\"normal\">un mail a été envoyé à ".$verif_commande_tab->email." pour lui signifier l'avancée de sa commande.</p>"; // mesage qui apparait a l'écran de l'admin qui a modifié la commande

}

Ce qui me parait bizarre c'est le "break" en plein milieu.

Du coup on sort du cas "update" perso je le mettrais à la fin apres le '}' qui se trouev après le message qui s'affiche a l'écran.

Tu as quelle version de premium, car je n'ais pas de page "/administrer/modeles/commande.php ", mais "/administrer/commande.php "

Et dans mon case update de cette page j'ais uniquement:

	case "update" :

		update_commande($_POST);

		$order = "o_timestamp";

		$sort = "DESC";

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

		break;

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Ce qui me parait bizarre c'est le "break" en plein milieu.

Du coup on sort du cas "update" perso je le mettrais à la fin apres le '}' qui se trouev après le message qui s'affiche a l'écran.

Tu as quelle version de premium, car je n'ais pas de page "/administrer/modeles/commande.php ", mais "/administrer/commande.php "

Et dans mon case update de cette page j'ais uniquement:

	case "update" :

		update_commande($_POST);

		$order = "o_timestamp";

		$sort = "DESC";

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

		break;

Willy

Merci de votre réponse Willy,

La version de peel est 3.8

J'avai en effet mis la fonction Break; après la "}", mais il y a deux erreur ;

Notice: Undefined index: commandeid in /home/logosmag/public_html/boutique/administrer/commandes.php on line 67

qui correspond à : update_commande($_POST);

Notice: Undefined index: statut_details in /home/logosmag/public_html/boutique/administrer/commandes.php on line 71

qui correspond à: $verif_commande = mysql_query("SELECT * FROM peel_commandes WHERE id = '".intval($_POST['commandeid'])."'");

J'ai fait un test avec votre fonction :

update_commande($_POST);

$order = "o_timestamp";

$sort = "DESC";

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

break;

mais pas de mail au client pour l'avertir de la modification de l'état de sa comande.

Je séche, mais je regarde encore.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Cette fonction est modifiée ou d'origine en 3.8 ?

Car les erreurs disent que les parametres ne sont pas transmis par la page d'avant...

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

modifiée je pense car je n'ais pas ca sur la 3.8, mais ca m'intéresse également

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Cette fonction est modifiée ou d'origine en 3.8 ?

Car les erreurs disent que les parametres ne sont pas transmis par la page d'avant...

Willy

Je ne pense pas l'installation est d'origine en 3.8.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Ma fonction mail automatique de modification de commande dans le back office ne fonctionne pas.

J'ai regardé dans le forum pour la version shopping mais cela ne fonctionne toujours pas.

J'ai regardé dans : boutique/administrer/modeles/commande.php a la case update dont voici le code:

case "update" :

update_commande($_POST);

$order = "o_timestamp";

$sort = "DESC";

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

break;

$verif_commande = mysql_query("SELECT * FROM peel_commandes WHERE id = '".intval($_POST['commandeid'])."'");

$verif_commande_tab = mysql_fetch_object($verif_commande);

if ($verif_commande_tab->statut_details != $_POST['statut_details'])

{

// recupération de l'email de la commande

$qid = mysql_query("SELECT * FROM peel_societe");

if ($qid) {

if (mysql_num_rows($qid) > 0) {

$ligne = mysql_fetch_object($qid);

}

}

// envoie du mail

$mailSujet = "Avancée de votre commande";

$mailObjet = "Bonjour, \n";

$mailObjet .= " \nEtat de votre commande : ".$_POST['statut_details'];

mail($verif_commande_tab->email,$mailSujet,$mailObjet,"From:$ligne->email");

echo "<p class=\"normal\">un mail a été envoyé à ".$verif_commande_tab->email." pour lui signifier l'avancée de sa commande.</p>";

}

J'ai cherché à conprendre la fonction mais pas de résultat, pouvez-vous m'aider svp ?

Cordialement,

Balam

A mon avis, Willy a raison pour la place du break. En revanche personnellement, je le mettrais plutôt juste au dessus de "}" qui à priori ne sert à rien tout au moins dans l'extrait de code que nous avons.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

En effet au dessus du dernier "}".

Mais apparement la page précédente n'envois pas les infos à cette page, je pense a un bidouillage de code récupéré à droite et à gauche, mais sans modification de la page qui appelle cette page là ( :) <_< )

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

En effet au dessus du dernier "}".

Mais apparement la page précédente n'envois pas les infos à cette page, je pense a un bidouillage de code récupéré à droite et à gauche, mais sans modification de la page qui appelle cette page là ( :) <_< )

Willy

Il semble que nous pensions la même chose. Cela me réconforte :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Il semble que nous pensions la même chose. Cela me réconforte <_<

Le soucis c'est que pas mal de fois on a pas toutes les infos alors on cherche, on cherche et en fait le code a été refait, ou alors une autre page appel telle ou telle fonction, mais on en l'a pas dit.

Balam dit nous TOUT ( :) :P :P ) et on pourra peut être t'aider.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Le soucis c'est que pas mal de fois on a pas toutes les infos alors on cherche, on cherche et en fait le code a été refait, ou alors une autre page appel telle ou telle fonction, mais on en l'a pas dit.

Balam dit nous TOUT ( :) :P <_< ) et on pourra peut être t'aider.

Willy

Bon, tout, tout, tout, vous saurez tout sur le zi.., argh! non sur la page commande.php.

Alors la version de la boutique : Premium 3.8.

Hébergement mutualisé chez Privianet (depuis 4 ans jammais de problèmes)

Il y a eu l'installation par M.Ruault de la boutique, du module référencement et du module carte bleue.

J'ai fait comme modification le nº du colis pour le client son historique de commande.

Je viens de remettre la page commande.php qu'il y avait à l'installation.Il y a donc maintenant sur cette page:

case "update" :

update_commande($_POST);

$order = "o_timestamp";

$sort = "DESC";

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

break;

Pe

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Dans la fonction update_commande qui est également dans cette page, tu peux ajouter à la fin:

// envoie du mail


$mailSujet = "Avancée de votre commande";


$mailObjet = "Bonjour, \n";


$mailObjet .= " \nEtat de votre commande : ".$statut_details;


mail($frm['email'],$mailSujet,$mailObjet,"From:$support");


echo "<p class=\"normal\">un mail a été envoyé à ".$frm['email']." pour lui signifier l'avancée de sa commande.</p>";
Et au debut de la fonction, ajoute:
global $support;

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Dans la fonction update_commande qui est également dans cette page, tu peux ajouter à la fin:

// envoie du mail


$mailSujet = "Avancée de votre commande";


$mailObjet = "Bonjour, \n";


$mailObjet .= " \nEtat de votre commande : ".$statut_details;


mail($frm['email'],$mailSujet,$mailObjet,"From:$support");


echo "<p class=\"normal\">un mail a été envoyé à ".$frm['email']." pour lui signifier l'avancée de sa commande.</p>";
Et au debut de la fonction, ajoute:
global $support;

Willy

Punaise !!! merci Willly, mais, j'ai toujour un message d'erreur

Pouvez vous me dire sous quelle ligne exactement ?

voici le bout de code de la fonction

function update_commande($frm) {

/* Efface la commande dont le n° est $id */

global $wwwroot;

$statut_details = "";

if ($frm['statut'] != 0) {

$sql_statut = "SELECT nom_".$_SESSION['langue']." FROM peel_statut WHERE id = '".$frm['statut']."'";

$res_statut = mysql_query($sql_statut);

$s = mysql_fetch_array($res_statut);

$statut_details = $s['nom_'.$_SESSION['langue'].''];

} else {

$statut_details = "commande initialis&eacute;e";

}

if($frm['a_timestamp'] != "00/00/0000") {

$date_facture = ereg_replace('^([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})$','\\3-\\2-\\1', $frm['a_timestamp']);

mysql_query("UPDATE peel_commandes SET a_timestamp = '".$date_facture."' WHERE id = '".$frm['id']."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

}

mysql_query("UPDATE peel_commandes SET statut = '".intval($frm['statut'])."', statut_details = '".addslashes($statut_details)."' WHERE id = '".intval($frm['id'])."'") or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

mysql_query("UPDATE peel_commandes SET numero = '".addslashes($frm['numero'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

mysql_query("UPDATE peel_commandes SET client_info1 = '".addslashes($frm['facturation'])."', client_info2 = '".addslashes($frm['livraison'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

mysql_query("UPDATE peel_commandes SET colis = '".addslashes($frm['colis'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

mysql_query("UPDATE peel_commandes SET statut_affilie = '".addslashes(vb($frm['statut_affilie']))."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

function update_commande($frm) {


/* Efface la commande dont le n° est $id */

	global $wwwroot, $support;




	$statut_details = "";




	if ($frm['statut'] != 0) {




	$sql_statut = "SELECT nom_".$_SESSION['langue']." FROM peel_statut WHERE id = '".$frm['statut']."'";




	$res_statut = mysql_query($sql_statut);




	$s = mysql_fetch_array($res_statut);




	$statut_details = $s['nom_'.$_SESSION['langue'].''];




	} else {




	$statut_details = "commande initialis&eacute;e";




	}




	if($frm['a_timestamp'] != "00/00/0000") {




	$date_facture = ereg_replace('^([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})$','\\3-\\2-\\1', $frm['a_timestamp']);  




	mysql_query("UPDATE peel_commandes SET a_timestamp = '".$date_facture."' WHERE id = '".$frm['id']."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());




	} 	

	mysql_query("UPDATE peel_commandes SET statut = '".intval($frm['statut'])."', statut_details = '".addslashes($statut_details)."' WHERE id = '".intval($frm['id'])."'") or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET numero = '".addslashes($frm['numero'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET client_info1 = '".addslashes($frm['facturation'])."', client_info2 = '".addslashes($frm['livraison'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET colis = '".addslashes($frm['colis'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET statut_affilie = '".addslashes(vb($frm['statut_affilie']))."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());



// envoie du mail


$mailSujet = "Avancée de votre commande ".$frm['id'];


$mailObjet = "Bonjour, \n";


$mailObjet .= " \nEtat de votre commande : ".$statut_details;


mail($frm['email'],$mailSujet,$mailObjet,"From:$support");


echo "<p class=\"normal\">un mail a été envoyé à ".$frm['email']." pour lui signifier l'avancée de sa commande.</p>";


}

Voila, dites nous s'il y a une erreur.

SI oui je pense qu'elle sera sur: $frm['email']

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

function update_commande($frm) {


/* Efface la commande dont le n° est $id */

	global $wwwroot, $support;




	$statut_details = "";




	if ($frm['statut'] != 0) {




	$sql_statut = "SELECT nom_".$_SESSION['langue']." FROM peel_statut WHERE id = '".$frm['statut']."'";




	$res_statut = mysql_query($sql_statut);




	$s = mysql_fetch_array($res_statut);




	$statut_details = $s['nom_'.$_SESSION['langue'].''];




	} else {




	$statut_details = "commande initialis&eacute;e";




	}




	if($frm['a_timestamp'] != "00/00/0000") {




	$date_facture = ereg_replace('^([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})$','\\3-\\2-\\1', $frm['a_timestamp']);  




	mysql_query("UPDATE peel_commandes SET a_timestamp = '".$date_facture."' WHERE id = '".$frm['id']."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());




	} 	

	mysql_query("UPDATE peel_commandes SET statut = '".intval($frm['statut'])."', statut_details = '".addslashes($statut_details)."' WHERE id = '".intval($frm['id'])."'") or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET numero = '".addslashes($frm['numero'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET client_info1 = '".addslashes($frm['facturation'])."', client_info2 = '".addslashes($frm['livraison'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET colis = '".addslashes($frm['colis'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET statut_affilie = '".addslashes(vb($frm['statut_affilie']))."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());



// envoie du mail


$mailSujet = "Avancée de votre commande ".$frm['id'];


$mailObjet = "Bonjour, \n";


$mailObjet .= " \nEtat de votre commande : ".$statut_details;


mail($frm['email'],$mailSujet,$mailObjet,"From:$support");


echo "<p class=\"normal\">un mail a été envoyé à ".$frm['email']." pour lui signifier l'avancée de sa commande.</p>";


}

Voila, dites nous s'il y a une erreur.

SI oui je pense qu'elle sera sur: $frm['email']

Willy

En effet Willy j'ai cette erreur qui s'affiche:

Notice: Undefined index: email in /home/logosmag/public_html/boutique/administrer/commandes.php on line 323

Notice: Undefined index: email in /home/logosmag/public_html/boutique/administrer/commandes.php on line 325

un mail a été envoyé à pour lui signifier l'avancée de sa commande.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Et avec ca ?

function update_commande($frm) {


/* Efface la commande dont le n° est $id */

	global $wwwroot, $support;




	$statut_details = "";




	if ($frm['statut'] != 0) {




	$sql_statut = "SELECT nom_".$_SESSION['langue']." FROM peel_statut WHERE id = '".$frm['statut']."'";




	$res_statut = mysql_query($sql_statut);




	$s = mysql_fetch_array($res_statut);




	$statut_details = $s['nom_'.$_SESSION['langue'].''];




	} else {




	$statut_details = "commande initialis&eacute;e";




	}




	if($frm['a_timestamp'] != "00/00/0000") {




	$date_facture = ereg_replace('^([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})$','\\3-\\2-\\1', $frm['a_timestamp']);  




	mysql_query("UPDATE peel_commandes SET a_timestamp = '".$date_facture."' WHERE id = '".$frm['id']."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());




	}	 

	mysql_query("UPDATE peel_commandes SET statut = '".intval($frm['statut'])."', statut_details = '".addslashes($statut_details)."' WHERE id = '".intval($frm['id'])."'") or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET numero = '".addslashes($frm['numero'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET client_info1 = '".addslashes($frm['facturation'])."', client_info2 = '".addslashes($frm['livraison'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET colis = '".addslashes($frm['colis'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET statut_affilie = '".addslashes(vb($frm['statut_affilie']))."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());



//on recupere l email associe a la commande

	$sql_commande= "SELECT email FROM peel_commandes WHERE id = '".intval($frm['id'])."'";




	$res_commande= mysql_query($sql_commande);




	$comm = mysql_fetch_array($res_commande);




	$email = $comm['email'];

// fin de on recupere l email associe a la commande


// envoie du mail


$mailSujet = "Avancée de votre commande ".$frm['id'];


$mailObjet = "Bonjour, \n";


$mailObjet .= " \nEtat de votre commande : ".$statut_details;


mail($email,$mailSujet,$mailObjet,"From:$support");


echo "<p class=\"normal\">un mail a été envoyé à ".$frm['email']." pour lui signifier l'avancée de sa commande.</p>";


}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Et avec ca ?

function update_commande($frm) {


/* Efface la commande dont le n° est $id */

	global $wwwroot, $support;




	$statut_details = "";




	if ($frm['statut'] != 0) {




	$sql_statut = "SELECT nom_".$_SESSION['langue']." FROM peel_statut WHERE id = '".$frm['statut']."'";




	$res_statut = mysql_query($sql_statut);




	$s = mysql_fetch_array($res_statut);




	$statut_details = $s['nom_'.$_SESSION['langue'].''];




	} else {




	$statut_details = "commande initialis&eacute;e";




	}




	if($frm['a_timestamp'] != "00/00/0000") {




	$date_facture = ereg_replace('^([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})$','\\3-\\2-\\1', $frm['a_timestamp']);  




	mysql_query("UPDATE peel_commandes SET a_timestamp = '".$date_facture."' WHERE id = '".$frm['id']."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());




	}	 

	mysql_query("UPDATE peel_commandes SET statut = '".intval($frm['statut'])."', statut_details = '".addslashes($statut_details)."' WHERE id = '".intval($frm['id'])."'") or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET numero = '".addslashes($frm['numero'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET client_info1 = '".addslashes($frm['facturation'])."', client_info2 = '".addslashes($frm['livraison'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET colis = '".addslashes($frm['colis'])."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	mysql_query("UPDATE peel_commandes SET statut_affilie = '".addslashes(vb($frm['statut_affilie']))."' WHERE id = '".intval($frm['id'])."'")or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());



//on recupere l email associe a la commande

	$sql_commande= "SELECT email FROM peel_commandes WHERE id = '".intval($frm['id'])."'";




	$res_commande= mysql_query($sql_commande);




	$comm = mysql_fetch_array($res_commande);




	$email = $comm['email'];

// fin de on recupere l email associe a la commande


// envoie du mail


$mailSujet = "Avancée de votre commande ".$frm['id'];


$mailObjet = "Bonjour, \n";


$mailObjet .= " \nEtat de votre commande : ".$statut_details;


mail($email,$mailSujet,$mailObjet,"From:$support");


echo "<p class=\"normal\">un mail a été envoyé à ".$frm['email']." pour lui signifier l'avancée de sa commande.</p>";


}

Willy,

Je recois le mail mais, il y a un problème, voici le mailque je recois

"Bonjour,

Etat de votre commande : Commande réglé"

Et dans le back office j'ai cette erreur;

Notice: Undefined index: email in /home/logosmag/public_html/boutique/administrer/commandes.php on line 341

un mail a été envoyé à pour lui signifier l'avancée de sa commande.

Je ne trouve pas l'erreur.

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Derniere ligne, il faut remplacer:

$frm['email']
Par
$email

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Derniere ligne, il faut remplacer:

$frm['email']
Par
$email

Willy

Vous êtes mon super Willy (attention cela n'est pas une déclaration d'amour)

CA MARCHE !!

Très cordialement,

Balam

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

OK c'est noté :)

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Moi j'ai ceci

Bonjour,

Etat de votre commande : Commande exp&eacute;di&eacute;e

Idée ???

Merci

Guillaume

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Ok ca marche pour ne pas changer merci :)

Juste une question,

Lorsque je modifier la commande et change le statut cela fonctionne

Lorsque je change le statut via liste des commande cela ne fonctionne pas

Pourtant il s'agit de la meme page commande.php, Est ce normal?

Après quelques test cela fonctione quand on appuye sur mettre a jour les données de la commande, pcq meme quand l'on ne change rien et que l'on appuye sur ce bouton, le mail est envoyé.

Donc je penses (suis pas doué en php) qu'il faudrait plustôt ajouter cette fonction au bouton modifier le statut des commandes cochées. (cela me semble plus logique)

Guillaume

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Ok ca marche pour ne pas changer merci :)

Juste une question,

Lorsque je modifier la commande et change le statut cela fonctionne

Lorsque je change le statut via liste des commande cela ne fonctionne pas

Pourtant il s'agit de la meme page commande.php, Est ce normal?

Guillaume

Oui car la fonction modifiée n'est pas appelée dans ce cas là...

	case "maj_statut" :


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


		if ($_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());


		}


		}


		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;

Adaptez mon bout de code en fin de programme afin de récupérer l'id de la commande ( intval($_POST['id'][$i]) ), le libellée de l'état par rapport a son code statut ( intval($_POST['statut']) ) et ed définir lea variable $support en variable globale afin de récupérer sa valeur.

Bon code.

Willy

PS: ca vous fera un peu d'exercice à la maison.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

edit : j'ai bien lu ta réponse mais je ne sais pas du tout ce qu'il faut faire, le php et moi ca ne fait qu'un mois <_<

Enfin ce n'est pas encore trops grave, je verrais cela plus tard quand je serais débordé de commande :)

Merci quand même

Bonne soirée

Guillaume

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