THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


Bonjour à tous !
J'ai développé une boutique sous thelia 1.5.4 et je dois dire que je suis super content de ce CMS qui est vraiment top ! Vu que je travaille déjà beaucoup sur spip je n'ai pas été trop dépaysé avec le langage de boucle de thelia smile

Ceci dit, venons en au cœur du sujet : sur la boutique je vends uniquement des fichiers musicaux sous forme MP3 (j'utilise le plugin produits virtuels) et tout marche très bien. Une fois qu'un internaute a choisi un ou plusieurs fichiers, il valide sa commande, il paye et reçoit par mail le fichier commandé. A ce niveau là tout est ok.

Le seul point qui me gène un peu (beaucoup), c'est que lorsqu'un internaute clique sur "finaliser la commande" puis finalement décide de ne pas payer il reçoit un mail de confirmation comme quoi il a bien passé commande.

J'ai parcouru le forum en long et en large et visiblement plusieurs personnes ont rencontré ce même problème. Sur un autre post, ROADSTER31 proposait d'ajouter ce code sur le fichier paypal2.class.php

// On envoie le mail après confirmation du paiement
    function mail ($commande) {
    	// Ne rien faire.
    }

    function confirmation($commande) {
    	// On envoie le mail de confirmation sur paiement réussi
    	// Et si c'est ce module qui a été utilisé pour le paiement
    	if ($commande->statut == 2 && $this->est_module_de_paiement_pour($commande)) {
    		parent::mail($commande);
    	}
    }
}
?>

Quand j'ajoute ce code, ma boutique disparaît, page blanche et code source vide. Lorsque j'efface la modif la boutique se charge à nouveau. Cela fait plusieurs jours que je cherche en vain une solution, j'ai testé plein de bidouilles mais sans succès. J'en suis venu à me demander s'il ne serait pas possible de supprimer l'envoi du mail de confirmation de commande dans la mesure ou de toute façon le client reçoit après paiement un mail avec le fichier qu'il vient d'acheter.

Tous vos conseils seront les bienvenus smile Merci d'avance !

Offline


Quand j'ajoute ce code, ma boutique disparaît, page blanche et code source vide

Page blanche = Erreur PHP. Active l'affichage des erreurs, ou consulte le error.log de Apache.


OpenStudio Toulouse

Offline


Merci pour ton aide ROADSTER31 ! Comme tu me l'as conseillé j'ai essayé d'afficher les erreurs PHP mais je n'y parviens pas : je n'ai pas accès au log APACHE et lorsque  j'essaie d'ajouter un bout de code pour forcer l'affichage des erreurs je n'ai rien qui s'affiche. J'ai aussi essayé firebug mais sans succès. Toujours la page blanche.

Voici le fameux code Paypal2.class.php qui provoque un big bug sur ma boutique (toutes les pages blanches) :

<?php



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

	

	class Paypal2 extends PluginsPaiements{



		function init(){

			

			$paypal2 = new Variable();

			if(! $paypal2->charger("paypal2")){

				$paypal2->nom = "paypal2";

				$paypal2->valeur = "";

				$paypal2->add();

			}

			$devise_paypal2 = new Variable();

			if(! $devise_paypal2->charger("devise_paypal2")){

				$devise_paypal2->nom = "devise_paypal2";

				$devise_paypal2->valeur = "";

				$devise_paypal2->add();

			}

			$code_langue_paypal2 = new Variable();

			if(! $code_langue_paypal2->charger("code_langue_paypal2")){

				$code_langue_paypal2->nom = "code_langue_paypal2";

				$code_langue_paypal2->valeur = "";

				$code_langue_paypal2->add();

			}

			$serveur2 = new Variable();

			if(! $serveur2->charger("serveur2")){

				$serveur2->nom = "serveur2";

				$serveur2->valeur = "";

				$serveur2->add();

			}

			$this->ajout_desc("Paypal", "Paypal", "", 1);

		}

		

		function destroy(){

		

		}		



		function Paypal2(){

			$this->PluginsPaiements("Paypal2");

		}

		

	

		function paiement($commande){

			header("Location: " . "client/plugins/paypal2/paiement2.php");			

		}

	

// On envoie le mail après confirmation du paiement
    function mail ($commande) {
    	// Ne rien faire.
    }

    function confirmation($commande) {
    	// On envoie le mail de confirmation sur paiement réussi
    	// Et si c'est ce module qui a été utilisé pour le paiement
    	if ($commande->statut == 2 && $this->est_module_de_paiement_pour($commande)) {
    		parent::mail($commande);
    	}
    }
}
?>

Je suis une grosse bille en php et j'ai peut-fait une big boulette en modifiant le code. Je ne sais plus où chercher, je ne suis plus très loin de capituler mais si vous avez une idée du problème ce génial !

Bon week-end à tous

Offline


Merci pour le lien, mais hier soir quand tu m'as dit qu'il fallait afficher les erreurs php, j'ai fait quelques recherches sur google et je suis tombé sur ce tuto. Mais même après l'ajout de ce code ça ne fonctionne pas. Pour en  être certain je viens juste de refaire un test. Toujours la page blanche et aucune erreur qui s'affiche...

Offline


est-ce que le problème pourrait venir d'une incompatibilité entre deux plugins ? Je n'arrive pas à comprendre comment l'ajout d'une ligne de code sur un fichier d'un plugin peut provoquer un bug général sur l'ensemble de la boutique...