Sign in to follow this  
Followers 0

HELP PAS DE FONCTION MAIL

41 posts in this topic

Posted · Report post

Bonjour?

Recherche une âme charitable.

Je cherche depuis plusieurs jours une solution à mon problème.

J'ai fait le forum en long, en large et en travers, mais rien.

Le client reçoit le mail lorsque qu'il paie par CB et paypal, mais rien quand le paiement est en chèque , mandat ou virement.

J'ai vu un début de solution dans un précédent topic mais je ne parviens pas à le mettre en place.

Le problème et de taille, puisque le client pense que la commande n'a pas été validée et donc perte d'argent.

Pouvez-vous, si vous avez rencontré le même problème m'aider.

Merci d'avance pour votre ou vos réponses.

Cordialement,

Balam

Share this post


: post
Share on other sites

Posted · Report post

Qui ne recoit pas le mail ,

Le client ou le vendeur, car la derniere fois on était parti sur le vendeur et là on semble parler du client.

Willy

Share this post


: post
Share on other sites

Posted · Report post

Qui ne recoit pas le mail ,

Le client ou le vendeur, car la derniere fois on était parti sur le vendeur et là on semble parler du client.

Willy

Bonjour Willy,

Le vendeur recoit le mail d'une commande.

Le client ne recoit pas de mail qui confirme sa commande lorsqu'il paient par chèque , mandat ou virement.

Les clients qui paient par cb recoivent le mail.

Cordialement,

Balam

Share this post


: post
Share on other sites

Posted · Report post

OK ca n'est pas le même probleme alors :)

Dans la fonction "email_commande" de lib.fonctions.fonctions.php regardez si vous avez:

function email_commande(&$commandeid) {


	global $wwwroot;

	global $site;

	global $support;

	global $langfile;


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


	$com = mysql_fetch_object($result);


	$timestamp = $com->o_timestamp;


	$montant = $com->montant;


	$goto = "/factures/facture_html.php?mode=proforma&id=$commandeid&timestamp=".urlencode($timestamp)."";


	$urlcommande = $wwwroot.$goto;


	# Mail d'information envoyé à l'administrateur - ENVOYER EN LANGUE FRANCAISE UNIQUEMENT


	mail(

		$support,

		"Nouvelle commande sur votre site web $site",

		"Une commande portant le numéro $commandeid vient d'être enregistrée sur le site $site.",

		"FROM:$support");	

	mail(

		"contact@demoniak-motors.com",

		"Nouvelle commande sur votre site web $site",

		"Une commande portant le numéro $commandeid vient d'être enregistrée sur le site $site.",

		"FROM:$support");


	$email_subject = EMAIL_ORDER_CONFIRMATION;

	$email_object = EMAIL_ORDER_MESSAGE."\n\r";

	$email_object .= "\n\r";

	$email_object .= EMAIL_ORDER_DATE." : ".return_date_fr($timestamp)."\n\r";

	$email_object .= "\n\r";

	$email_object .= EMAIL_ORDER_NUMBER." : ".$commandeid."\n\r";

	$email_object .= "\n\r";

	$email_object .= EMAIL_ORDER_AMOUNT." : ".fprix($montant)." EUR TTC\n\r";

	$email_object .= "\n\r";



	if ($com->paiement != CB) {


	$email_object .= EMAIL_ORDER_PROFORMA." : ".$urlcommande."\n\r";

	$email_object .= "\n\r";

	}


	$email_object .= EMAIL_THANKS."\n\r";


	mail($com->email,$email_subject,$email_object,"FROM:$support");		


}

C'est la dernière ligne qui envoit un email au client.

Willy

Share this post


: post
Share on other sites

Posted · Report post

OK ca n'est pas le même probleme alors :)

Dans la fonction "email_commande" de lib.fonctions.fonctions.php regardez si vous avez:

function email_commande(&$commandeid) {


	global $wwwroot;

	global $site;

	global $support;

	global $langfile;


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


	$com = mysql_fetch_object($result);


	$timestamp = $com->o_timestamp;


	$montant = $com->montant;


	$goto = "/factures/facture_html.php?mode=proforma&id=$commandeid&timestamp=".urlencode($timestamp)."";


	$urlcommande = $wwwroot.$goto;


	# Mail d'information envoyé à l'administrateur - ENVOYER EN LANGUE FRANCAISE UNIQUEMENT


	mail(

		$support,

		"Nouvelle commande sur votre site web $site",

		"Une commande portant le numéro $commandeid vient d'être enregistrée sur le site $site.",

		"FROM:$support");	

	mail(

		"contact@demoniak-motors.com",

		"Nouvelle commande sur votre site web $site",

		"Une commande portant le numéro $commandeid vient d'être enregistrée sur le site $site.",

		"FROM:$support");


	$email_subject = EMAIL_ORDER_CONFIRMATION;

	$email_object = EMAIL_ORDER_MESSAGE."\n\r";

	$email_object .= "\n\r";

	$email_object .= EMAIL_ORDER_DATE." : ".return_date_fr($timestamp)."\n\r";

	$email_object .= "\n\r";

	$email_object .= EMAIL_ORDER_NUMBER." : ".$commandeid."\n\r";

	$email_object .= "\n\r";

	$email_object .= EMAIL_ORDER_AMOUNT." : ".fprix($montant)." EUR TTC\n\r";

	$email_object .= "\n\r";



	if ($com->paiement != CB) {


	$email_object .= EMAIL_ORDER_PROFORMA." : ".$urlcommande."\n\r";

	$email_object .= "\n\r";

	}


	$email_object .= EMAIL_THANKS."\n\r";


	mail($com->email,$email_subject,$email_object,"FROM:$support");		


}

C'est la dernière ligne qui envoit un email au client.

Willy

Willy, voici ce que j'ai sur la page "fontions.php"

function email_commande(&$commandeid) {

global $wwwroot;

global $site;

global $support;

global $langfile;

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

$com = mysql_fetch_object($result);

$timestamp = $com->o_timestamp;

$montant = $com->montant;

$goto = "/factures/facture_html.php?mode=proforma&id=$commandeid&timestamp=".urlencode($timestamp)."";

$urlcommande = $wwwroot.$goto;

# Mail d'information envoyé à l'administrateur - ENVOYER EN LANGUE FRANCAISE UNIQUEMENT

mail(

$support,

"Nouvelle commande sur votre site web $site",

"Une commande portant le numéro $commandeid vient d'être enregistrée sur le site $site.",

"FROM:$support");

$email_subject = EMAIL_ORDER_CONFIRMATION;

$email_object = EMAIL_ORDER_MESSAGE."\n\r";

$email_object .= "\n\r";

$email_object .= EMAIL_ORDER_DATE." : ".return_date_fr($timestamp)."\n\r";

$email_object .= "\n\r";

$email_object .= EMAIL_ORDER_NUMBER." : ".$commandeid."\n\r";

$email_object .= "\n\r";

$email_object .= EMAIL_ORDER_AMOUNT." : ".fprix($montant)." EUR TTC\n\r";

$email_object .= "\n\r";

if ($com->paiement != CB) {

$email_object .= EMAIL_ORDER_PROFORMA." : ".$urlcommande."\n\r";

$email_object .= "\n\r";

}

$email_object .= EMAIL_THANKS."\n\r";

mail($com->email,$email_subject,$email_object,"FROM:$support");

}

Share this post


: post
Share on other sites

Posted · Report post

Ca parait bon pourtant.

Willy

Share this post


: post
Share on other sites

Posted · Report post

Ca parait bon pourtant.

Willy

Le chmod sur le fichier est 755, ces bon ?

Est-ce qu'il n'y a pas une fonction dans le fichier fin comande.php ?

Share this post


: post
Share on other sites

Posted · Report post

Le chmod sur le fichier est 755, ces bon ?

Est-ce qu'il n'y a pas une fonction dans le fichier fin comande.php ?

Désolé, mais il n'y a aucun rapport avec tel tou tel fichier en chmod 755 :)

La fonction appelée dans fin_commande.php est email_commande dans tous les cas de paiement normalement et cette fonction envoit un mail au support et au client ensuite, si vous avez l'email, le client aussi.

regardez pour les cass suspects s'il ya bien la zone "email" de renseignée pour cette commande.

Willy

Share this post


: post
Share on other sites

Posted · Report post

Désolé, mais il n'y a aucun rapport avec tel tou tel fichier en chmod 755 :)

La fonction appelée dans fin_commande.php est email_commande dans tous les cas de paiement normalement et cette fonction envoit un mail au support et au client ensuite, si vous avez l'email, le client aussi.

regardez pour les cass suspects s'il ya bien la zone "email" de renseignée pour cette commande.

Willy

Bon, je viens de refaire un test avec de nouvelle coordonnées et une nouvelle adresse mail.

Et bien, je recois le mail de récapitulatif d'ouverture de compte mais pas de la confirmation de commande en tant que client.

Alors là j'en perds mon latin

Share this post


: post
Share on other sites

Posted · Report post

Et en admin oui ?

Willy

Share this post


: post
Share on other sites

Posted · Report post

Bonjour balam,

J'ai exactement le meme probleme que toi, mais moi quel que soit le type de paiment le client ne recoit pas de mail.

Le mail d'enregistrement nouveau client arrive bien également

Pour willy : le mail admin arrive, et le fonction.php est comme le tien

Je suis en peel premium 3.8

Guillaime

Share this post


: post
Share on other sites

Posted · Report post

Bonjour balam,

J'ai exactement le meme probleme que toi, mais moi quel que soit le type de paiment le client ne recoit pas de mail.

Le mail d'enregistrement nouveau client arrive bien également

Pour willy : le mail admin arrive, et le fonction.php est comme le tien

Je suis en peel premium 3.8

Guillaime

Ce qu'il faut faire c'est surtout vérifier que les types de paiement renseignés dans votre base de données sont écrits de la même manière que dans votre fichier de langue

Car si ce n'est pas le cas, la fonction d'email ne sera pas appelé et le client ne reçoit pas le mail

Share this post


: post
Share on other sites

Posted · Report post

Oui, mais à ce moment là l'admin ne devrait pas en recevoir car la fonction email_commande, envoit au client et au support.

Vous recevez bien en tant que support le mail du genre:

"Nouvelle commande sur votre site web ...

Une commande portant le numéro .... vient d'être enregistrée sur le site ..."

Willy

Share this post


: post
Share on other sites

Posted · Report post

Ce qu'il faut faire c'est surtout vérifier que les types de paiement renseignés dans votre base de données sont écrits de la même manière que dans votre fichier de langue

Car si ce n'est pas le cas, la fonction d'email ne sera pas appelé et le client ne reçoit pas le mail

Bonjour Mr Ruault,

Il s'agit des types de paiement standart livré avec peel, je n'ai fais aucune modification la dessus.

Pourriez vous me donner les endroits dans les fichiers php a vérifier

Merci

Share this post


: post
Share on other sites

Posted · Report post

Pas sûr car dans ma versin (2.9), la fonction d'envoi de mail de la page fonciton.php n'est pas forcément appelée, et l'envoi des mails est le plus souvent géré directement dans la page fin_commande.php.

Je pense qu'il faut donc vérifier dans cette page.

Tu dois trouver des blocs :

CASE CHECK

CASE TRANSFER

CASE CB

CASE PAYPAL

Il faut voir ce qui se trouve dans ces blocs te voir si l'envoi des mails n'y est pas directement géré.

Share this post


: post
Share on other sites

Posted · Report post

Pas sûr car dans ma versin (2.9), la fonction d'envoi de mail de la page fonciton.php n'est pas forcément appelée, et l'envoi des mails est le plus souvent géré directement dans la page fin_commande.php.

Je pense qu'il faut donc vérifier dans cette page.

Tu dois trouver des blocs :

CASE CHECK

CASE TRANSFER

CASE CB

CASE PAYPAL

Il faut voir ce qui se trouve dans ces blocs te voir si l'envoi des mails n'y est pas directement géré.

Bonjour à tous,

Pour réponsre je suis en version 3.8.

Je n'ai fait aucun changement dans les fichiers de particulier.

Je recois le mail admin.

Dans le fichier lang il faut donc rechercher si les formules sont les mêmes ?

Share this post


: post
Share on other sites

Posted · Report post

Pas sûr car dans ma versin (2.9), la fonction d'envoi de mail de la page fonciton.php n'est pas forcément appelée, et l'envoi des mails est le plus souvent géré directement dans la page fin_commande.php.

Je pense qu'il faut donc vérifier dans cette page.

Tu dois trouver des blocs :

CASE CHECK

CASE TRANSFER

CASE CB

CASE PAYPAL

Il faut voir ce qui se trouve dans ces blocs te voir si l'envoi des mails n'y est pas directement géré.

Tout a fait, et dans chacun des cas, il y a un appel à la fonction "email_commande", donc normalemnt dans chaque cas, l'admin et le client devraient recevoir un mail du type:

"Nouvelle commande sur votre site web ...

Une commande portant le numéro .... vient d'être enregistrée sur le site ..."

Willy

Share this post


: post
Share on other sites

Posted · Report post

Voila ce qui est dans fin_commande.php

merci

<?

include("../configuration.inc.php");

necessite_identification();

/* Test pour empêcher d'arriver ici par hasard ou en tapant l'url */

$caddie_est_vide = $_SESSION['caddie']->compte_elements() == 0;

$commande = charge_commande();

if ($caddie_est_vide || ! $commande) {

header("Location: $wwwroot");

die;

}

/* Création de la commande dans la base, autorise alors le paiement

* et informe le client que la commande est ok

*/

$commandeid = cree_commande($commande);

$DOC_TITLE = "[PEEL.FR]";

$modele_a_montrer = "affichage_fin_succes()";

/* Le caddie est réinitialisé pour ne pas laisser le client passer une deuxième commande en soumettant une deuxième fois le formulaire */

$_SESSION['caddie']->init();

vide_commandeinfo();

unset ($_SESSION['wantsurl']);

include("$repertoire_modele/haut.php");

eval($modele_a_montrer.";");

include("$repertoire_modele/bas.php");

/******************************************************************************

* FONCTIONS

*****************************************************************************/

function affichage_fin_succes() {

global $commandeid;

global $wwwroot;

global $paypal;

global $site;

global $support;

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

$com = mysql_fetch_object($result);

$message = "La commande $commandeid vient d'être enregistrée sur le site $site";

$message .= "\n\r";

$message .= "Email client : ".$com->email;

$message .= "\n\r";

$message .= "Référence commande : ".$com->id;

$message .= "\n\r";

$message .= "Montant de la commande : ".fprix($com->montant)." EUR";

$message .= "\n\r";

$message .= "Date de la commande : ".return_date_fr($com->o_timestamp);

$message .= "\n\r";

$message .= "Paiement : ".$com->paiement;

$message .= "\n\r";

$message .= "Merci de consulter l'interface d'administration de votre site.";

mail($support,"[$site] Enregistrement de la commande $commandeid",$message,"FROM:$support");

?>

<font class="entete"><?echo STEP3 ?></font>

<p></p>

<div class="normal">

<?php

echo MSG_THANKS;

switch ($com->paiement) {

case html_entity_decode(CHECK) :

email_commande($commandeid);

?>

<p>

- <?echo PRINT_PROFORMA?></p>

<p>

- <?echo SEND_CHECK ?> :

<?php

print_societe();

echo "</p>";

break;

case html_entity_decode(TRANSFER) :

email_commande($commandeid);

echo nl2br(SEND_TRANSFER);

print_rib();

break;

case html_entity_decode(PAYPAL) :

?>

<div align="center">

Pour r&eacute;gler par carte bancaire, cliquez ici :<br />

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">

<INPUT TYPE="hidden" NAME="cmd" VALUE="_ext-enter">

<INPUT TYPE="hidden" NAME="redirect_cmd" VALUE="_xclick">

<input type="hidden" name="business" value="<?=$paypal?>">

<input type="hidden" name="item_name" value="<?=$site?> COMMANDE <?=$commandeid?>">

<input type="hidden" name="item_number" value="<?=$commandeid?>">

<input type="hidden" name="amount" value="<?echo number_format($com->montant,2);?>">

<input type="hidden" name="page_style" value="Primary">

<input type="hidden" name="no_shipping" value="1">

<input type="hidden" name="return" value="<?=$wwwroot?>/modules/paypal/ok.php?id=<?=$commandeid?>">

<input type="hidden" name="cancel_return" value="<?=$wwwroot?>/modules/paypal/nok.php?id=<?=$commandeid?>">

<input type="hidden" name="no_note" value="1">

<input type="hidden" name="currency_code" value="EUR">

<input type="hidden" name="lc" value="FR">

<input TYPE="hidden" NAME="email" VALUE="<?=$com->email?>">

<input type="image" src="https://www.paypal.com/fr_FR/i/btn/x-click-but23.gif" border="0" name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée !">

</form>

<br>

<img src="<?=$wwwroot?>/images/logo-xclickBox.gif" width="152" height="29" alt="" border="0">

</div>

<?

break;

}

?>

<table class=normal width="100%" border="0" cellspacing="0" cellpadding="4" bgcolor="#ffffcc">

<tr><td class="label"><?echo ORDER_RESUME ?> :</td></tr>

<tr>

<td class="label"><?echo EMAIL ?> :</td>

<td class="normal"><?=$com->email?></td>

</tr>

<tr>

<td class="label"><?echo REFERENCE ?> :</td>

<td class="normal"><?=$commandeid?></td>

</tr>

<tr>

<td class="label"><?echo ORDER_AMOUNT ?> :</td>

<td class="normal"><?=fprix($com->montant)?> &euro;</td>

</tr>

<tr>

<td class="label"><?echo ORDER_DATE ?> :</td>

<td class="normal"><?=return_date_fr($com->o_timestamp)?></td>

</tr>

<tr>

<td class="label"><?echo PAYEMENT ?> :</td>

<td class="normal"><?=$com->paiement?></td>

</tr>

<tr>

<td class="label"><?echo PROFORMA ?> :</td>

<td class="normal"><a href="java script:OpenWin2('<?=$wwwroot?>/factures/facture_html.php?mode=proforma&id=<?=$commandeid?>&timestamp=<?=urlencode($com->o_timestamp)?>',550,450,'bdc');" class="normal">

<?echo PRINT_PROFORMA?></a>.</td>

</tr>

</table>

<?php } ?>

Share this post


: post
Share on other sites

Posted · Report post

Pas sûr car dans ma versin (2.9), la fonction d'envoi de mail de la page fonciton.php n'est pas forcément appelée, et l'envoi des mails est le plus souvent géré directement dans la page fin_commande.php.

Je pense qu'il faut donc vérifier dans cette page.

Tu dois trouver des blocs :

CASE CHECK

CASE TRANSFER

CASE CB

CASE PAYPAL

Il faut voir ce qui se trouve dans ces blocs te voir si l'envoi des mails n'y est pas directement géré.

Bonjour Merci de votre à vous tous.

J'ai bien CASE CB mais pas les autres dans le fichier fin_commande.php

Share this post


: post
Share on other sites

Posted · Report post

Alors je parie que l'envoi du mail est dans le CASE CB mais pas ailleurs... ce qui expliquerait pourquoi ton client ne reçoit le mail que dans ce cas là.

Share this post


: post
Share on other sites

Posted · Report post

Alors je parie que l'envoi du mail est dans le CASE CB mais pas ailleurs... ce qui expliquerait pourquoi ton client ne reçoit le mail que dans ce cas là.

bonjour,

Oui en effet, si vous avez une soluce pour cela je suis preneur.

Cordialement,

Balam

Share this post


: post
Share on other sites

Posted · Report post

bonjour,

Oui en effet, si vous avez une soluce pour cela je suis preneur.

Cordialement,

Balam

Est-ce ces fonctions qu'il faut placer dans la page fin_commande.php ?, si oui à quel endroit exactement ?

case "mandat" :

?>

- Imprimez le bon de commande.<br />

<br />

- Envoyez votre règlement à :<br />

<?php

print_societe();

break;

case "chèque" :

?>

- Imprimez le bon de commande.<br />

<br />

- Envoyez votre règlement à :<br />

<?php

print_societe();

break;

case "virement" :

print ("- Effectuez votre règlement sur le compte bancaire suivant :<br />");

print_rib();

break;

Share this post


: post
Share on other sites

Posted · Report post

tu peux peut etre regarder ce post http://forum.peel.fr/index.php?s=&show...post&p=7436

Bonjour Paulanna,

Oui bien sûr, mais personne n'a donné une soluce dans ce cas ou un échange de ce fichier pour faire un comparatif avec une personne dont les mails sont bien reçus par les clients.

J'ai fait des tests et rien ne fonctionne et cela devient préjudiciable.

Share this post


: post
Share on other sites

Posted · Report post

Balam: regarde plus haut (page 2 je crois) un forumeur a mis son code de fin_commande...

tu auras les lignes a ajouter.

Willy

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping