THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3
  • manu
  • faï tot petar miladiu

Offline


Je reviens pour filer une dernière astuce concernant les mails.

Si vous avez envie de changer le contenu des mails, c'est la fonction substitmail, qui va s'occuper de changer les __NOM_CLIENT__ par ex. Si vous voulez rajouter des renseignements par le même procédé de substitution (__VARIABLE__), il faut faire la même chose que pour le mail.

C'est à dire surcharger la fonction substitmail et mettre ce que vous voulez dedans.

Je ferais un exemple concret lorsque j'aurais le temps, voir même une petite vidéo tongue


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Coucou a tous,

Chez moi ça marche super a part un p'tit truc, embêtant quand même :

Le mail de confirmation de paiement reçu est envoyé sur TOUT les retours de la banque (ATOS), c'est a dire que le paiement soit OK avec un code response 00 ou refusé (avec un code 05 ou 33)

Notez que le statut de la commande lui est correct et ne passe pas a payé si le paiement est refusé, mais le mail part quand même, ce qui est embêtant pour les clients qui pense que leur paiement a été accepté alors que la banque viens de leur dire le contraire... et pareil pour moi...

Une p'tite piste ?
Peut etre faut il rajouter un "if commande statut = 2"  avant l'envoi du mail ?
j'ose pas trop bidouiller, les tests ne sont pas aisés sur une boutique en marche...

(Thelia 1.3.8)


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

  • manu
  • faï tot petar miladiu

Offline


rapatries ton site en local pour faire les tests.

Sinon je vois pas trop ou ca coince, tu peux me mettre un peu de code pour que je vois ou ca peut coincer?


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


hum, le probleme etant au niveau du retour de la banque je ne suis pas sure que le passage en local m'aide a tester, faut que je me fasse des fausses commandes avec de faut numero de carte forcement refusées...

Pour le code c'est un hybride de ta solution avec la confirmation de base :
a la commande j'envoie un mail qui dis que la commande est reservée et a la confirmation de paiement, un autre pour informer qu'elle est validée.

Voila la partie envoie des mail de mon fichier Atos.class

			function mail($commande){
		
		//En-têtes
				$headers = "From: \"tetedelard.fr\" <" . $emailcontact->valeur . ">\r\n";
				$headers .= "Reply-To: shop@tetedelard.fr\r\n";
				$headers .= 'Return-Path: <' . $emailcontact->valeur . '>'."\n"; 
				$headers .= "MIME-Version: 1.0\n";
				$headers .= "Content-type: text/html; charset= iso-8859-1\n";
	
			$sujet=""; 
			$corps="";

			/* Message client */
			$msg = new Message();
			
			$msg->charger("mailconfirmcli");
			$msgdesc = new Messagedesc();                
			$msgdesc->charger($msg->id);
			$sujet = $this->substitmail($msgdesc->titre, $commande);
			
			$corps = $msgdesc->description;
			$corps = $this->substitmail($corps, $commande);

			/* Message admin */
        	$msg->charger("mailconfirmadm");
        	$msgdesc = new Messagedesc();
        	$msgdesc->charger($msg->id);
			$corps2 = $msgdesc->description;
		
			$emailcontact = new Variable();
			$emailcontact->charger("emailcontact");	
			$sujet2 = $this->substitmail($msgdesc->titre, $commande);
			$corps2 = $this->substitmail($corps2, $commande);

			$client = new Client();
			$client->charger_id($commande->client);
			
			mail($client->email , "$sujet", "$corps", $headers);	
			mail($emailcontact->valeur , "$sujet2", "$corps2", "From: $emailcontact->valeur");	
			
		}
			
        function confirmmail($commande){
		//En-têtes
				$headers = "From: \"tetedelard.fr\" <" . $emailcontact->valeur . ">\r\n";
				$headers .= "Reply-To: shop@tetedelard.fr\r\n";
				$headers .= 'Return-Path: <' . $emailcontact->valeur . '>'."\n"; 
				$headers .= "MIME-Version: 1.0\n";
				$headers .= "Content-type: text/html; charset= iso-8859-1\n";
	
			$sujet=""; 
			$message="";

			/* Message client */
			//Mail et prénom du client
				$query_client = "select email, prenom from `client` where id = $commande->client";
				$resul_client = mysql_query($query_client);
				$email_client = mysql_result($resul_client, 0, 0);
				$prenom_client = mysql_result($resul_client, 0, 1);
				
				$sujet = "Paiement reçu pour la commande n°". $commande->ref ." sur tetedelard.fr";
				//Corps du message
				$message = "Bonjour $prenom_client,\n\n";
				$message .= "La Tête de Lard vous informe que le paiment de votre commande n°" . $commande->ref . " à été confirmé.\n";
				$message .= "Nous traitons votre commande et elle vous sera expédiée dans les mailleurs délais.\n";
				$message .= "Un email de confirmation d'expedition vous sera envoyé très prochainement.\n\n";
				$message .= "En espérant vous revoir très bientôt sur www.tetedelard.fr\n";
				$message .= "Votre dévouée, Tête de Lard";
				//Fin corps du message
				

			/* Message admin */
			
        	$emailcontact = new Variable();
			$emailcontact->charger("emailcontact");	
			
			$sujet2 = "Paiement reçu pour la commande n°". $commande->ref ." sur tetedelard.fr";
			
			$message2 .= "La commande n°" . $commande->ref . " à été confirmé.\n";
			
			$client = new Client();
			$client->charger_id($commande->client);
			
			mail($client->email , "$sujet", "$message", $headers);	
			mail($emailcontact->valeur , "$sujet2", "$message2", "From: $emailcontact->valeur");	
        }
        
        function confirmation($commande){
        $this->confirmmail($commande);
        }
	
	}

{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

  • manu
  • faï tot petar miladiu

Offline


essaye de faire un test dans ta fonction confirmation :

function confirmation($commande){
  if($commande->statut == 2){
     $this->confirmmail($commande);
  }
}

Mais bon c'est pas normal ca faudra que je regarde ca de plus près. J'attends ton retour avant


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Merci Manu, c'est bien ce que je voyais comme soluce mais je n'etais pas sure de moi...

Cela semble fonctionner : l'email de semble plus partir si le paiement a été refusé,
maintenant il me faut attendre une commande par CB validée pour voir si il part quand tout va bien... o)
Je poste ici si ça ne marche pas...

Edit... il me semble que c'est ce que j'avais avant et qu'en rajoutant cela j'ai 2 fois le mail de confirmation de paiement.
C'est que cette ligne est déjà dans mon fichier Paypal, et elle gere aussi les passage manuel au statut payé des paiement par chèque et virement.

Désolée...

Last edited by tetedelard (19-01-2009 15:44:02)


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


Est ce que dans le cas précis d'ATOS il ne faudrais pas plutot allez voir du coté du fichier call_autoresponse.php ?

Dans cette partie la ? :

$commande->charger_trans($transaction_id);
	if($response_code == "00"){
	 $commande->statut = 2;
	 $commande->genfact();
	}
	
	$commande->maj();
	
	modules_fonction("confirmation", $commande);

peut etre inclure les 2 lignes du bas dans le if response_code ?

(je dis ça, je dis rien... je suis une buse en php, ai-je besoin de préciser...)


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


Bon... encore moi...
Ce petit detail m'enerve, mais ça doit etre que chez moi et je dois avoir un schmilblick quelque part car je me suis aperçue que le statut des commandes payées par paypal ne se met plus a jour correctement... alors que l'email est bien envoyé.

Je resume : Paiement par Atos : mail de confirmation de paiement envoyé sur tout les retour de la banque, mise a jour du statut des commandes dans thélia correct.
Paiement par Paypal : mail de confirmation correctement envoyé si le payement est confirmé mais sans le numero de commande dans l'intitulé du mail, et pas de mise a jour du statut de la commande.

Ce sont des petits details mais ça m'enquiquine.
J'ai regardé dans mes logs php :  Atos ne me dit rien mais surprise paypal me dit :
"HP Warning:  mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/tdl/shop/client/plugins/atos/Atos.class.php on line 112"

Alors... je regarde mes fichiers paypal a la loupe pour voir a quel moment il peut bien essayer d'utiliser la classe Atos, et rien...
Je regarde sur les fichiers aatos, rien non plus qui me parle de paypal..
et la classe plugin paiement non plus.

Comprend pas d'ou vient le schmilblick.
Pourriez vous m'aiguiller sur les fichiers qui entrent en jeu dans le règlement (autre que ceux précités ) que je trouve la source de ces erreurs ?

MERCIIII


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

  • manu
  • faï tot petar miladiu

Offline


Ce sont des petits details mais ça m'enquiquine.
J'ai regardé dans mes logs php :  Atos ne me dit rien mais surprise paypal me dit :
"HP Warning:  mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/tdl/shop/client/plugins/atos/Atos.class.php on line 112"

en fait, lors d'un retour de paiement (n'importe quel paiement), on a mis en place dans le plugin du paiement (call_autoresponse.php pour atos, confirmation.php pour cic, etc) l'appel de la fonction confirmation.

Cet appel ce fait via la fonction modules_fonctions qui peut prendre 3 paramètres :
- la fonction à appeler (ici confirmation)
- les données que l'on passe à cette fonction (ici l'objet rempli $commande), paramètre facultatif.
- le nom du plugin auquel ca doit s'appliquer. Ce 3è paramètre est facultatif. Si il n'est pas renseigné (ce qui est le cas par défaut) le moteur (ou plutôt cette fonction) va parcourir tous les plugins qui ont la méthode confirmation d'implémenté.

Donc pour ton cas, il rentre dans atos car il y a la méthode confirmation dans celui-ci.

Quel est l'intérêt d'un tel comportement de cette fonction? Pouvoir personnalisé au cas par cas pour chaque paiement.

Si on ne veut pas personnaliser et n'envoyer qu'un seul type de mail, on implémente la fonction confirmation dans un seul plugin et ca fait tout tout seul.

On veut personnaliser le message en fonction du type de paiement? on renseigne ce 3è paramètre qui permet une personnalisation plus poussé smile (par ex si je paye par paypal on dit au client on a bien recu votre paiement via paypal etc)


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Merci beaucoup Mr manu,
c'est beaucoup plus clair comme ça.


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


j'ai l'impression que tu as utilisé les 2 méthodes alors que c'est l'une ou l'autre non ??

J'essaye aussi la modif de manu, j'espere que ca va marcher.. pas vraiment de moyen de tester sans passer commande lol...



bjm wrote:

Pardon de mon retard!!!!

Voici le contenu de ma page : Paypal.class.php

<?php

	include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsPaiements.class.php");
	include_once(realpath(dirname(__FILE__)) . "/../../../classes/Message.class.php");
	include_once(realpath(dirname(__FILE__)) . "/../../../classes/Messagedesc.class.php");
	include_once(realpath(dirname(__FILE__)) . "/../../../classes/Client.class.php");
	include_once(realpath(dirname(__FILE__)) . "/../../../classes/Commande.class.php");
	include_once(realpath(dirname(__FILE__)) . "/../../../classes/Variable.class.php");
	
	class Paypal extends PluginsPaiements{

		function init(){
			$this->ajout_desc("Paypal", "Paypal", "", 1);
	
		}

		function Paypal(){
			$this->PluginsPaiements("paypal");
		}
		
		function mail($commande){
		}
		function confirmmail($commande){
//copié le contenu de la fonction mail du fichier classes/PluginsPaiements.class.php)
			$sujet=""; 
			$corps="";

			/* Message client */
			$msg = new Message();
			$msg->charger("sujetcommande");
			$msgdesc = new Messagedesc();
			$msgdesc->charger($msg->id);
			$sujet = $msgdesc->description . " " . $commande->ref;
			$msg->charger("corpscommande1");
			$msgdesc = new Messagedesc();                
			$msgdesc->charger($msg->id);
			$corps = $msgdesc->description;
			$corps = $this->substitmail($corps, $commande);

			/* Message admin */
        	$msg->charger("corpscommande2");
        	$msgdesc = new Messagedesc();
        	$msgdesc->charger($msg->id);
			$corps2 = $msgdesc->description;
		
			$emailcontact = new Variable();
			$emailcontact->charger("emailcontact");	
			$corps2 = $this->substitmail($corps2, $commande);

			//$client = new Client();
			//$client->charger_id($commande->client);
			
			//mail($client->email , "$sujet", "$corps", "From: $emailcontact->valeur");
				mail($_SESSION['navig']->client->email , "$sujet", "$corps", "From: $emailcontact->valeur");
			mail($emailcontact->valeur , "$sujet", "$corps2", "From: $emailcontact->valeur");	
			
		}
		
		function confirmation($commande){
		$this->confirmmail($commande);
		}
		function statut($commande){
            if($commande->statut == 2){
                $this->confirmmail($commande);
            }
        }
		
	
		function paiement($commande){

			header("Location: " . "client/plugins/paypal/paiement.php");			
		}
	
	}

?>

En espérant que ma réponse n'arrive pas trop tard.

Offline


Bonsoir,

j'essaie depuis deux jours de "deplacer le moment d'envoi du mail de commande" pour un plugin ATOS. J'ai lu les différents posts existants et j'ai suivi -je pense à la lettre-  la méthode de Manu mais rien n'y fait.  Il semble que l'administrateur recoive le mail de confirmation (et ce même si le paiement n'est pas passé), par contre le client ne reçoit jamais de mail que le paiement soit effectué ou non.
Voici une copie de mon fichier atos.class.php (pr info je suis en 1.3.8 en mutu chez OVH et ac un paiement sherlock en prédeploiement qui me permet de simuler des paiements acceptés ou refusés) , je ne pense hélas pas que le problème vienne de là:

    include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsPaiements.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Message.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Messagedesc.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Client.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Variable.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Commande.class.php");
               
   
    class Atos extends PluginsPaiements{

        function init(){
            $this->ajout_desc("CB", "CB", "", 1);
   
        }

        function Atos(){
            $this->PluginsPaiements("atos");
        }
       
   
    function mail($commande){
    }
    function confirmmail($commande){
//copié le contenu de la fonction mail du fichier classes/PluginsPaiements.class.php)
            $sujet="";
            $corps="";

            /* Message client */
            $msg = new Message();
            $msg->charger("mailconfirmcli");
            $msgdesc = new Messagedesc();               
            $msgdesc->charger($msg->id);
            $sujet = $this->substitmail($msgdesc->titre, $commande);
           
            $corps = $msgdesc->description;
            $corps = $this->substitmail($corps, $commande);

            /* Message admin */
            $msg->charger("mailconfirmadm");
            $msgdesc = new Messagedesc();
            $msgdesc->charger($msg->id);
            $corps2 = $msgdesc->description;
       
            $emailcontact = new Variable();
            $emailcontact->charger("emailcontact");   
            $sujet2 = $this->substitmail($msgdesc->titre, $commande);
            $corps2 = $this->substitmail($corps2, $commande);
            $corps2 = str_replace("\n", "", $corps2);
            $client = new Client();
            $client->charger_id($commande->client);
           
            //mail($client->email , "$sujet", "$corps", "From: $emailcontact->valeur");   
              mail($_SESSION['navig']->client->email , "$sujet", "$corps", "From: $emailcontact->valeur");
            mail($emailcontact->valeur , "$sujet2", "$corps2", "From: $emailcontact->valeur");   
}
        function confirmation($commande){
        $this->confirmmail($commande);
        }
        function statut($commande){
            if($commande->statut == 2){
                $this->confirmmail($commande);
            }
        }
       
function paiement($commande){

            header("Location: " . "client/plugins/atos/paiement.php");           
        }
   

    }

Jasposiris

Offline


Juste une question à la cantonnade :
Au lieu de recopier la methode mail() pourquoi ne pas mettre simplement :

function confirmmail($commande){
parent::mail($commande);
}

Last edited by jhr (01-03-2009 10:47:10)

  • manu
  • faï tot petar miladiu

Offline


Pour ce qui sont encore en php4 ca marchera pas.

Après pour ceux qui ont en php5, à essayer. Je ne sais pas ce que ca peut donner étant donnée que la syntaxe des classes thelia est encore en php4. Leur passage en php5 vas demander beaucoup de travail et ca sera un des prochains gros chantiers de Thelia.

Mais chaque chose en son temps, la on se concentre sur l'admin pour la sortir le plus vite possible.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Bien que ce ne soit pas très clair, d'après fr.php.net/manual/fr, parent fonctionne sous php4 ce que j'ai vérifié sous easy php 1.8 (php 4.3.10)

Offline


Jasposiris wrote:

include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsPaiements.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Message.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Messagedesc.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Client.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Variable.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Commande.class.php");
               
   
    class Atos extends PluginsPaiements{

        function init(){
            $this->ajout_desc("CB", "CB", "", 1);
   
        }

        function Atos(){
            $this->PluginsPaiements("atos");
        }
       
   
    function mail($commande){
    }
    function confirmmail($commande){
//copié le contenu de la fonction mail du fichier classes/PluginsPaiements.class.php)
            $sujet="";
            $corps="";

            /* Message client */
            $msg = new Message();
            $msg->charger("mailconfirmcli");
            $msgdesc = new Messagedesc();               
            $msgdesc->charger($msg->id);
            $sujet = $this->substitmail($msgdesc->titre, $commande);
           
            $corps = $msgdesc->description;
            $corps = $this->substitmail($corps, $commande);

            /* Message admin */
            $msg->charger("mailconfirmadm");
            $msgdesc = new Messagedesc();
            $msgdesc->charger($msg->id);
            $corps2 = $msgdesc->description;
       
            $emailcontact = new Variable();
            $emailcontact->charger("emailcontact");   
            $sujet2 = $this->substitmail($msgdesc->titre, $commande);
            $corps2 = $this->substitmail($corps2, $commande);
            $corps2 = str_replace("\n", "", $corps2);
            $client = new Client();
            $client->charger_id($commande->client);
           
            //mail($client->email , "$sujet", "$corps", "From: $emailcontact->valeur");   
              mail($_SESSION['navig']->client->email , "$sujet", "$corps", "From: $emailcontact->valeur");
            mail($emailcontact->valeur , "$sujet2", "$corps2", "From: $emailcontact->valeur");   
}
        function confirmation($commande){
        $this->confirmmail($commande);
        }
        function statut($commande){
            if($commande->statut == 2){
                $this->confirmmail($commande);
            }
        }
       
function paiement($commande){

            header("Location: " . "client/plugins/atos/paiement.php");           
        }
   

    }

Jasposiris

2 differences par rapport a chez moi :

Le " function paiement($commande){header("Location: " . "client/plugins/atos/paiement.php");} " est situé avant la fonction de confirmation.


Ensuite a la fin il n'y a que :
        function confirmation($commande){
        $this->confirmmail($commande);
        }
dans le cas d'Atos ou de paypal, qui mettent automatiquement le statut a jour.

La function statut($commande) n'est a mettre que dans le cas d'une mise a jour manuelle du statut du paiement, comme le cheque ou le virement.
Et n'est a mettre que dans 1 des fichiers class de paiement offline.
Elle vaudra pour TOUT les paiements ou le statut passera a 2 (payé) qu'ils soient manuels ou automatiques...

Voila...


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


Merci Tetedelard,
le fait de mixer les deux (envoi du mail si atos renvoie le statut payé et envoi du mail si passage manuel de non payé à payé) rendait en fait "instable" l'envoi du mail.
Depuis que je n'ai mis qu'une fonction tout fonctionne.
Merci encore pour la promptitude de ta réponse!

Offline


Bonjour

J'ai inclus le code de bjm et apparemment OUI on ne reçoit plus de message dés que l'on choisi le mode de paiement, cependant je m'inquiète de savoir maintenant si l'acheteur reçoit bien le mail de confirmation une fois qu'il a régler sur Paypal.

Je sais vous allez me dire "t'as qu'a faire un test avec la Sandbox de Paypal pour contrôler", mais je n'ai pas réussi à me créer de compte Acheteur pour Sandbox pour contrôler sad

  • MM
  • Membre

Offline


Petite question qui me gratouille, tant que nous sommes en version test à la banque, au niveau du BO les commandes réglées "virtuellement" peuvent t elles avoir un statut de de payés ??
Chez moi elle restent non payées et du coup pas de émail.

Offline

Offline


Salut à tous.

Bon moi je n'y comprend rien aux languages, pouvez-vous me donner le code complet de la page atos.class.php pour que les mails ne soient envoyés et recu que lors du paiement validé?

Merci d'avance.

Offline


Bonjour, alors pour ceux qui comme moi ne comprennent rien au php, voici la copie de atos.class.php qui fonctionne correctement :

<?php

    include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsPaiements.class.php");
   
    class Atos extends PluginsPaiements{

        function init(){
            $this->ajout_desc("Carte Bancaire", "Carte Bancaire", "", 1);
            rename("../client/plugins/atos/conf/htaccess", "../client/plugins/atos/conf/.htaccess");
   
        }

        function Atos(){
            $this->PluginsPaiements("atos");
        }
       
   
        function paiement($commande){

            header("Location: " . "client/plugins/atos/paiement.php");           
        }
       
       
        function mail($commande){
        }
       
       
        function confirmmail($commande){
        //copié le contenu de la fonction mail du fichier classes/PluginsPaiements.class.php)
            $sujet="";
            $corps="";

            /* Message client */
            $msg = new Message();
           
            $msg->charger("mailconfirmcli");
            $msgdesc = new Messagedesc();               
            $msgdesc->charger($msg->id);
            $sujet = $this->substitmail($msgdesc->titre, $commande);
           
            $corps = $msgdesc->description;
            $corps = $this->substitmail($corps, $commande);

            /* Message admin */
            $msg->charger("mailconfirmadm");
            $msgdesc = new Messagedesc();
            $msgdesc->charger($msg->id);
            $corps2 = $msgdesc->description;
       
            $emailcontact = new Variable();
            $emailcontact->charger("emailcontact");   
            $sujet2 = $this->substitmail($msgdesc->titre, $commande);
            $corps2 = $this->substitmail($corps2, $commande);

            $client = new Client();
            $client->charger_id($commande->client);
           
            $nomsite = new Variable();
            $nomsite->charger("nomsite");   
           
           
            //envoi du mail au client
            $mailclient = new PHPMailer();
            $mailclient->IsMail();
            $mailclient->FromName = $nomsite->valeur;
            $mailclient->From = $emailcontact->valeur;
            $mailclient->Subject = $sujet;
            $mailclient->MsgHTML($corps);
            $mailclient->AddAddress($client->email,$client->nom." ".$client->prenom);
           
            $mailclient->send();
           
            //envoi du mail a l'admin
            $mail = new PHPMailer();
            $mail->IsMail();
            $mail->FromName = $nomsite->valeur;
            $mail->From = $emailcontact->valeur;
            $mail->Subject = $sujet2;
            $mail->MsgHTML($corps2);
            $mail->AddAddress($emailcontact->valeur,$nomsite->valeur);
           
            $mail->send();
        }
   
       
       
        function confirmation($commande){
            if($commande->statut == 2){
            $this->confirmmail($commande);
             }
        }

    }

?>

Offline


Et pour PayPal y'a du nouveau ?

Offline


gzmo26 wrote:

Et pour PayPal y'a du nouveau ?

Petit UP !


Shauna

Offline


Bonjour,

Je rouvre ce post sur lequel je planche depuis des heures et des heures, sans arriver à faire ce que je souhaite...

Mon problème est le suivant : après un paiement Paypal qui s'est bien passé, le statut de la commande ne passe pas automatiquement à 2 comme il le devrait et aucun mail n'est généré...

En revanche, si je mets à jour manuellement le status à Payé (2), les mails partent correctement.

J'ai suivi scrupuleusement les conseils des uns et des autres, fait des tonnes d'essais, mais rien n'y fait...

Si quelqu'un a une idée... Voici mon code du Paypal.class.php :

    include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsPaiements.class.php");
   
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Message.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Messagedesc.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Client.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Variable.class.php");
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/Commande.class.php");

    class Paypal extends PluginsPaiements
    {
      function init(){
            $this->ajout_desc("Paypal", "Paypal", "", 1);
        }

        function Paypal(){
            $this->PluginsPaiements("paypal");
        }
       
        function paiement($commande){
            header("Location: " . "client/plugins/paypal/paiement.php");           
        }

    function mail($commande)
    {
    }

    function confirmmail($commande)
    {
      parent::mail($commande);
    }
   
    function confirmation($commande)
    {
      $this->confirmmail($commande);
    }

    function statut($commande)
    {
      if($commande->statut == 2)
      {
          $this->confirmmail($commande);
      }
    }
    }