THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Je voudrai m'adresser à Voxpax ou à une autre personne qui aurait une idée.
j'utilise le plugin VADS pour le paiement CB (cyberplus). Mon souci est que je n'arrive pas à modifier l'envoi du mail.
Dans ce plugin nous avons 2 fichiers l'un se nomme vad_api.php et vads.class.php
j'ai l’impression que c'est le fichier vad_api.php qui contient toutes les fonctions "utiles" . Mais c'est le fichier   vads.class.php qui est un extension du plugin de paiement pourtant cette classe n'est jamais inclut dans les fichier confirmation ou autre.

Suite au modification que j'effectue je ne reçoit plus de mail et lorsque je fais retour à la boutique, le retour ne se fait pas je reste bloqué sur l'interface cyberplus qui a l'air de mouliner.

Merci pour votre aide

Offline


Bonjour WebThelia (t'aurais pu te creuser un peu plus la tête pour le pseudo.. ^^'),

Le fichier "vads.class.php" est automatiquement inclus par Thélia. C"est le principe même des plugins. Thélia va chercher dans le dossier de ton plugin et inclure le fichier en ".class.php".
Quelles modifications as-tu effectué au juste ?
Je te conseille de réinstaller ton plugin de manière propre, de faire attention aux modifications que tu effectues et de les noter rigoureusement.

Nyro


Nytro Nytropeu !

Multi-squelettes <= all
Connexionauto <= all

Offline


Bonsoir Nyro,

Désolé pour le retard de réponse, j'ai du oublier de cocher la case pour être averti lors d'un nouveau message.
En effet pour le pseudo je e suis pas trop fatigué...

J'ai fait une sauvegarde de mon ancien plugin et mes modifications sont ceux cité dans cette discussion.

J'ai ajouté les fonctions suivantes en fin du  fichier vads.class.php

function mail($commande)
        {
            // Vide -> le mail est envoyé après confirmation
        }
                        
        function confirmation($commande)
        {
            parent::mail($commande);
        }
            
        function statut($commande)
        {
            if($commande->statut == 2)
            {
                parent::mail($commande);
            }
        }

Le mail ne part pas  suite à cette modification, et lorsque je clique retour à la boutique sa tourne en rond et sa plante.

je reste à ta disposition si tu veux plus d'information

Merci de ton aide.

Last edited by WebThelia (23-12-2010 22:16:05)

Offline


Hellow,

Et lorsque tu réinstalles proprement cela donne quoi ?
Je ne parviens pas à mettre la main sur le plugin que tu utilises donc ça va être compliqué de t'aider pour l'instant.

Nyro


Nytro Nytropeu !

Multi-squelettes <= all
Connexionauto <= all

Offline


Salut,

Avec le plugin propre, le mail part dès que je clique sur paiement CB.


Le plugin est disponible à cette adresse : http://contrib.thelia.fr/spip.php?article167

Encore merci de ton aide.

Offline


Que voudrais-tu faire exactement ? Que le mail s'envoie après confirmation de quoi, de bonne réception ?


Nytro Nytropeu !

Multi-squelettes <= all
Connexionauto <= all

Offline


Il faudrait que le mail de confirmation parte après que le paiement soit fait. Donc quand la banque appel la page confirmation.php et que le statut  = 2

Par défaut le mail part dès que l'on clique sur le bouton payé par CB.
Quand je mets les fonctions citées dans ce post dans la page vads.class.php j'ai plus de mail qui part (normal ça devrait partir une fois le paiement fait) mais quand je fais retour à la banque j'ai plus accès à ma boutique le code le fait planter.

Offline


J'ai du mal à regarder ton problème (trop de choses à faire) mais, j'ai remarqué que dans confirmation.php, à la ligne 49 il y avait ceci :

$commande->statut = 2;	// statut "payé"

Je me dis que si tu envoies ton mail à cet endroit là ce sera bon. smile
Il faut juste supprimer l'autre envoie de mail que je n'arrive pas à trouver.
Enjoy.

P.S.:Ah j'oubliais, pour palier à toutes demande concernant le format d'envoie du mail, il y a ce post. Au cas où les mails s'envoyent en texte et que tu veuilles changer cela.

Last edited by Nyro (27-12-2010 15:14:14)


Nytro Nytropeu !

Multi-squelettes <= all
Connexionauto <= all

Offline


Oui c'est à ce moment que ma commande passe au statut payé.
Avant tout l'envoie de mail ce fait via le plugin paiement de Thélia.
Donc pour remédier à cela je le surcharge dans ma classe et là commence mes problèmes.

Quand je le surcharge pas d'envoi de mail quand je clique sur payé par CB.
Mais quand je fais un retour à la boutique après le paiement , le retour se fait pas, reste bloqué sur l'interface de la banque comme si mon site n'était plus accessible.

Et si je fais pas cette surcharge de la fonction mail comme décrit au début du post eh bien le mail s'envoie au clic sur paiement par CB.

Merci pour le temps que tu passe sur mon problème , je comprends bien que tu as bien mieux à faire.

Offline


Et bien une solution pourrait être d'attendre la v.1.4.4.0 qui inclura peut être (je dis bien peut être) des points d'entrés vers les mails pour les plugins. A part cela je vois ce que tu essayes de faire et le plus simple serait de remonter à la source pour la couper. C'est une bonne idée de surcharger mais apparemment ça ne fonctionne pas du tout.
Je ne pense pas pouvoir t'aider plus je suis navré. Bon courage à toi.

Amicalement,

Nyro


Nytro Nytropeu !

Multi-squelettes <= all
Connexionauto <= all

Offline


Il y en a qui on réussi avec la surcharge de la fonction mail. Je continue à chercher.
Merci quand même pour ton aide.

Offline


Pour moi le code que tu as donné ici devrait fonctionner correctement, je l'utilise (avec une petite différence) sur quelques boutiques.


OpenStudio Toulouse

Offline


D'après les messages de tous les utilisateurs dans ce post ça devrait fonctionner.
Mais moi quand je clique sur retour à la boutique dans l'interface de la banque et bien j'ai mon site qui devient inaccessible. Je reste bloqué sur l'interface de la banque qui tourne en rond en essayant de joindre mon site.
En plus ma classe n'a pas l'air d'être appelé dans ma page confirmation, je vois pas comment ça fonctionne.

  • yoan
  • Cofondateur Thelia

Offline


Quelle url est appelée ?


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline


Bonjour,

La page appelé est confirmation.php du plugin.
Quand je ne fais pas de modification tout fonctionne impeccable, j'ai pas de problème de chemin car le statut de la commande passe bien en payé.

nom_du_site/client/plugins/vads/confirmation.php

Offline


Bonjour ,
Un petit mot concernant le plugin paypal2.

lorsque je modifie le fichier Paypal2.class.php afin de modifié le moment d'envoi du mail selon la méthode ci-dessous, et en y ajoutant :

 
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);
            $corpstext = $msgdesc->descriptiontext;
            $corpstext = $this->substitmail($corpstext,$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);
            $corpstext2 = $msgdesc->descriptiontext;
            $corpstext2 = $this->substitmail($corpstext2,$commande);
            

            $client = new Client();
            $client->charger_id($commande->client);
            
            $nomsite = new Variable();
            $nomsite->charger("nomsite");    
            
            
            //envoi du mail au client
            $mailclient = new Mail();
            $mailclient->IsMail();
            $mailclient->FromName = $nomsite->valeur;
            $mailclient->From = $emailcontact->valeur;
            $mailclient->Subject = $sujet;
            $mailclient->MsgHTML($corps);
            $mailclient->AltBody = $corpstext;
            $mailclient->AddAddress($client->email,$client->nom." ".$client->prenom);

            $mailclient->send();
            
            //envoi du mail a l'admin
            $mail = new Mail();
            $mail->IsMail();
            $mail->FromName = $nomsite->valeur;
            $mail->From = $emailcontact->valeur;
            $mail->Subject = $sujet2;
            $mail->MsgHTML($corps2);
            $mail->AltBody = $corpstext2;
            $mail->AddAddress($emailcontact->valeur,$nomsite->valeur);

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

le mail de confirmation commande (client + bo) part deux fois   >>>> POUR LES REGLEMENTS PAR CHEQUES OU PAR Paypal !! alors que je n'ai pas modifié le plugin chèque.

si j'enlève les fonctions

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

et que je ne laisse que la fonction mail, plus de doublon, mais je perds la possibilité d'envoi du mail en passant la commande en statut"2".

Je cale.... Merci de vos commentaires.
Thelia 1.4.3.1

Offline


Oui, car les méthodes statut() de tous les plugins sont appellées lors du paqssage en statut payé.

Il te faut vérifier, dans chaque méthode statut de tes plugins de paiement, que le type de paiement de la commande correspond au plugin.


OpenStudio Toulouse

Offline


Bonjour et merci pour ta réponse.


roadster31 wrote:

Oui, car les méthodes statut() de tous les plugins sont appellées lors du paqssage en statut payé.

Il te faut vérifier, dans chaque méthode statut de tes plugins de paiement, que le type de paiement de la commande correspond au plugin.

C'est à dire renseigner pour chaque plugin  dans son fichier class la fonction statut?

Dans mon plugin chèque j'ai mis :

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

Mais je reçois toujours en doublon.

je comprends que ces doublons c'est deux fonctions qui s'appellent en même temps celle de la confirmation commande et celle de la mise à jour statut mais j'arrive pas à comprendre pourquoi les infos renseignées dans un plugin particulier s'active dans un autre plugin qui devrait pour les fonctions non renseignées (comme dans le cas de chèque) se référer à celle du PluginsPaiements.class.php..

... ceci dit je suis pas très forte en programmation ... hmm

Offline


Après réflexion et un café,
voilà ce que j'ai fait :

dans mon plugin chèque (cheque.class.php

dans la fonction paiement j'ai en levé la ligne :

 modules_fonction("confirmation", $commande);

et j'ai mis

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

donc plus de doublon et le mail arrive bien avec un statut non payé pour le chèque.

J'espère que je n'ai pas fait de bêtises! tongue

Merci.

Offline


Salut à tou(te)s !

Les modifications sont rapportées au Plugin Paypal2011.

Merci à tou(te)s les contribu(trices)teurs de ce topic smile

Les sources : http://www.ergonoshop.com/composants-gr … 83646.html

La démo : http://templates-thelia.com/demonstration/windowshop/
Pour voir le plugin en action ou plus justement voir que vous ne recevez pas d'e-mail client confirmant votre fausse commande,.

Je vous conseille de :

1) - Vous inscrire ( http://templates-thelia.com/demonstrati … nexion.php ) avec une adresse e-mail valide (je vous rassure) le but n'est pas de monter une mailing liste pirate, mais juste démontrer que le plugin fonctionne en production. Vous pouvez aussi télécharger le plugin et le tester chez vous, c'est aussi simple smile

2) - Effectuer une commande fictive avec votre nouveau profil allant jusqu'au paiement Paypal. Pour les paiements "chèque et virement" l'envoi de l'e-mail de confirmation est à contrario immédiat après votre commande.

3) - Une fois sur la page Paypal de paiement, cliquer sur le lien "Annuler et revenir au emailcompte@paypal.com", vous serez rediriger vers la page "regret.php".

Si je valide "dans l'admin, le BO" (ce qui sera pas le cas) la commande manuellement, nous recevrons (vous et moi) alors un e-mail qui confirme votre commande. En sachant que tous achats réellement effectués via le plugin sur Paypal et validés seront automatiquement en statut "payé" dans votre BO, ce qui déclenchera automatiquement l'envoi des e-mails pour confirmer la commande pour votre client et la personne responsable des paiements du site. Suivi d'une confirmation Paypal validant le dépôt du paiement sur votre compte Paypal.

Pour info : les plugins de paiements suivants ont été modifiés et mise à jour pour être compatibles à 100% avec paypal2011 et éviter les doublons d'envois de l'e-mail suite à la commande (Statut par défaut : Non payé) :

- cheque2011 : http://www.ergonoshop.com/composants-gr … 50529.html
- virement2011 : http://www.ergonoshop.com/composants-gr … 23715.html

++

Last edited by glums (20-02-2011 14:14:39)

Offline


Bonsoir,
et merci pour ce travail.

J'ai essayé le plugin paypal2011 en suivant scrupuleusement le indications dans le fichier texte.

Alors si j'ai bien compris ce nouveau plugin me créer 4 pages dont la page paypal.php qui est appelée quand je valide mon choix paiement paypal.

les erreurs: lorsque j'active le plugin une page blanche apparait avec un message d'erreur : "impossible d'ouvrir le fichier php :"
les droits sur le plugin sont OK.

aucune page paypal.php (ou autre) n'a été créée à la racine du site d'où l'impossibilité de poursuivre mon paiement. (erreur 404)

quelqu'un a t-il eu ce problème ?

Merci.

Offline


bjm wrote:

Alors si j'ai bien compris ce nouveau plugin me créer 4 pages dont la page paypal.php qui est appelée quand je valide mon choix paiement paypal.

Oui !

bjm wrote:

les erreurs: lorsque j'active le plugin une page blanche apparait avec un message d'erreur : "impossible d'ouvrir le fichier php :"
les droits sur le plugin sont OK.
aucune page paypal.php (ou autre) n'a été créée à la racine du site d'où l'impossibilité de poursuivre mon paiement. (erreur 404)

Tu n'as pas eu des soucis de transfert FTP ??? Tu as installé le plugin directement de ton admin ou via ton client FTP ? Efface ton dossier paypal2011 et réinstalle le avec ton client FTP.

Merci de ton retour !!!

++

Offline


glums wrote:

Tu n'as pas eu des soucis de transfert FTP ??? Tu as installé le plugin directement de ton admin ou via ton client FTP ? Efface ton dossier paypal2011 et réinstalle le avec ton client FTP.

Bonjour Non pas d'erreur FTP. C'est d'ailleurs par FTP que j'ai mis le plugin en place et positionné les bons droits.

je vais le tester sur une autre boutique en dev.

Sinon pour mon mess du 17-02-2011 11:31:09

pour éviter l'envoi en double du mail pour paiement par chèque j'ai enlevé la ligne

 
modules_fonction("confirmation", $commande);

dans le plugin chèque .
je précise plugin chèque original et pas le chèque2011 que je n'ai pas encore testé.
Voilà et tout fonctionne.

Merci !

Offline


Merci à toi pour tes retours smile

++

Offline


Bonjour!

Je viens de faire la modification sur mon site et le plugin bluepaid.

Le mail de confirmation est bien envoyé après le paiement mais reste un petit problème, mes clients arrivent sur la page regret.php même si le paiement a réussi, cela alors que le statut de la commande passe bien en "payé".

Le problème semble venir de la page redir.php qui ne semble pas récupérer la valeur "état" de la commande.

auriez vous une idée ??
MErci d'avance

Mat