THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


Est-ce que quelqu'un est parvenu à utiliser le parrainage sur Thelia ?
Pour moi dès la soumission du formulaire d'inscription le parrain n'est pas pris en compte :

<label for="parrain">Adresse e-mail de votre parrain</label>
<input type="text" name="parrain" value="#PARRAIN_EMAIL" />

Je suis sur 1.4.3.1

Offline


Je ne parviens pas à renseigner un parrain dans la base, table client.
Ça c'est en dehors du plugin et le plugin s'en sert pour récupérer l'id du client parrain.
Code dans le formulaire, page connexion (la variable est bien substituée, sinon je rentre un mail connu dans la base) :

<label for="parrain">Adresse e-mail de votre parrain</label>
<input type="text" name="parrain" value="#PARRAIN_EMAIL" />

Code dans fonctions/action.php :

$testcli = new Client();
		if($parrain != "") 
			if($testcli->charger_mail($parrain)) $parrain=$testcli->id;
			else $parrain=-1;
		else $parrain=0;

		if($testcli->id != "") $client->parrain=$testcli->id;

Le plugin, lui affecte 5€ au filleul, sans qu'aucun parrain n'apparaisse où que ce soit.

Je veux bien que juste quelqu'un me dise s'il arrive à rentrer un parrain à la création d'un compte client... (on à la liste des filleuls dans le BO sur les pages clients).

Merci d'avance !

Offline


Personne ne peut me dire si l'ajout d'un parrain lors de la création d'un client fonctionne chez-lui en 1.4.3.1 svp ?

Offline


J'ai localisé le problème c'est la valeur de parrain qui est envoyée vide, donc le problème devrait crever les yeux !

Offline


Dans moteur.php, ligne 150, je trouve :

if(!isset($_REQUEST['parrain'])) $parrain=""; else $parrain=lireParam("parrain", "int");

Si dans mon formulaire d'inscription, je mets adresse e-mail du parrain : 1, la fonction creercompte reçoit bien 1. SI je mets une adresse mail, c'est vide ...

Offline


.
Ce n'est pas un plugin mais ça fait partie du coeur de Thélia (tu as aussi un plugin "parrainage") , mais d'après ce que tu as écrit :

1 - Vérifie que tu as bien un champ "parrain" dans ta table "client"

2 - modifie les lignes de ton code suivant :
dans --> fonctions / action.php , ligne ~418 :

		//****    © Captain FLAM - 06/2010    ****//
		if ($parrain != "") {
			$testcli = new Client();
			if ($testcli->charger_mail(strip_tags($parrain)))
				$parrain = $testcli->id;
			else
				$parrain = -1;
		}
		else $parrain = 0;

		if ($parrain > 0) $client->parrain = $parrain;
		//****************************************//

dans --> admin / ajoutcli.php , ligne ~38 , ET admin / client_creer.php , ligne ~

	//****    © Captain FLAM - 06/2010    ****//
	if ($parrain != "") {
		$testcli = new Client();
		if ($testcli->charger_mail(strip_tags($parrain)))
			$client->parrain = $testcli->id;
		else
			$client->parrain = -1;
	}
	else $client->parrain = 0;
	//****************************************//

dans --> fonctions / moteur.php , ligne ~ 150 :

	//****    © creu - 06/2010    ****//
	if(!isset($_REQUEST['parrain'])) $parrain=""; else $parrain=lireParam("parrain", "string+\@\.");

Teste et dis-moi ...

Last edited by Captain_FLAM (07-06-2010 10:22:09)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


Salut Captain_FLAM, merci pour ta réponse.

Mon problème se situe avant même l'utilisation du plugin parrainage.
Celui-ci utilise les données de parainage existante dans un thelia d'origine.

J'ai bien un champ "parrain" dans ma table "client", tout est à zéro, j'ai viré la valeur par défaut pour tester.

J'ai testé tes modifs (et bien d'autres), mais le problème persiste, puisqu'il se situe avant.
En fait j'ai mis un echo $parrain; exit; en début de fonction creercompte et sa valeur est vide si j'ai mi un mail, remplie si je mets un nombre.

Donc mon formulaire est correct.
C'est la variable $parrain qui pose problème, je ne sais pas si c'est du à la ligne de moteur.php que j'ai mise au-dessus (#5).

Je découvre le coeur de Thelia, j'en bave un peu...!

Offline


.
J'étais en train de poster en même temps ... lol

Reprends mon post juste au dessus ... des nouvelles modifs à faire ...

Et je viens de voir où se situe le problème (encore un bug ... big_smile)

creu wrote:

Dans moteur.php, ligne 150, je trouve :

if(!isset($_REQUEST['parrain'])) $parrain=""; else $parrain=lireParam("parrain", "int");

à remplacer (voir ci-dessus) , et ça devrait marcher ... cool
.

Last edited by Captain_FLAM (07-06-2010 09:58:27)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


Ok ! avec ça ça marche :

if(!isset($_REQUEST['parrain'])) $parrain=""; else $parrain=lireParam("parrain", "string+\@\.");

Je craignais que ça mette la pagaille puisque la table attend un nombre (un id), mais en fait il automatiquement convertit en ce nombre, ça a l'air bon.

Avec toutes les modifs que j'ai fais dans le noyau, je crains les prochains mises à jours ....

Merci beaucoup pour ton aide !

Offline


.
Décidément ... je viens de poster la réponse juste au dessus !! lol

Par contre, je pense que @... derrière string n'est pas forcément utile. (c'est juste pour la vérif de la validité du mail ... mais pourquoi pas ...)

Et puis tu as aussi les modifs de l'admin à faire ...

EDIT : je viens d'intégrer ta modif wink

creu wrote:

Avec toutes les modifs que j'ai fais dans le noyau, je crains les prochains mises à jours ....

Merci beaucoup pour ton aide !

Ben, c'est pour ça que j'encadre le code que je modifie avec des commentaires et des ©

Comme ça, avec WinMerge , pas de problème !!

De rien cool
.

Last edited by Captain_FLAM (07-06-2010 10:24:40)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


Reste plus qu'à  débugger le plugin, youpi....

Offline


A l'aide des infos postées ci-dessus, j'ai réussi à faire fonctionner le plugin parrainage sur V1.4.3.1 . Merci pour le coup de main !

Par contre dans la boucle suivante:

<THELIA_histo type="PARRAINAGE" client="#CLIENT_ID" historique="1">
         #DATE  #GAIN #FILLEUL <br />
</THELIA_histo>

#FILLEUL, me renvoie l'ID du filleul et non son adresse mail.

Auriez vous une petite idée pour moi ?

Offline


Aucunes idées ? Personne n'a rencontré se problème ?

Offline


Bonjour,

Ben avec l'id du filleul et une boucle client, tu vas récupérer l'adresse email du filleul cool

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


Merci Alfouine,

Je ne cherchais pas dans la bonne direction.

Je poste mon code pour les suivants:

<THELIA_gaindispo type="PARRAINAGE" client="#CLIENT_ID" historique="0">
		<h3>Vos bon d'achat</h3>
        <p>Vous bénéficierez de #CREDIT_CUR &euro de remise gràce à vos filleuls lors de votre prochaine commande.</p>
</THELIA_gaindispo><br />


<h3>Vos Filleuls</h3>
<THELIA_histo type="PARRAINAGE" client="#CLIENT_ID" historique="1" tri="filleul">

      <THELIA_mail type="CLIENT" id="#FILLEUL">#EMAIL</THELIA_mail>  <br> 
</THELIA_histo>

  <THELIA_client type="CLIENT" client="#FILLEUL"> </THELIA_client><br />


		<h3><br />Parrainez vos ami(e)s</h3>
		<p>Pour vous, 5 € de remise au premier achat de chacun de vos filleuls.</p>
		<form action="parrainage.php" method="post" /> 
	<input type="hidden" name="action" value="parrainage_mail" />
	

	
	<p><label for="prenom_filleul">Prénom de votre ami : </label><input type="text" name="prenom_filleul" /></p>
	
	<p><label for="nom_filleul">Nom de votre ami : </label><input type="text" name="nom_filleul" /></p>
	
	<p><label for="mail_filleul">E-Mail de votre ami :</label> <input type="text" name="mail_filleul" />	</p>
	
	<p class="derniereLigne"><button type="submit" class="bouton"><span><span>Valider</span></span></button></p>
</form>
  • MM
  • Membre

Offline


Bonjour

je viens d appliquer à la lettre ces modifs et mon resutat est pour le moins curieux !

1) dans le BO onglet client
> le parrain à bien un filleul

2) dans le bo onglet modules/Gestion de parrainage/Liste des comptes parrain 

> le parrain à son compte à zero,
> un id vide est creé dans la base de données et dans le Bo

idvide.th.jpg




sad wahooo

Last edited by MM (30-10-2010 09:22:47)

  • MM
  • Membre

Offline


La nuit portant conseil
je suis reparti de zéro
cela à l'air de fonctionner à présent à part la création de cet id vide !

Offline


Bonjour,
je galère sur ce plugin parrainage, j'ai fait toutes les modifs ci-dessus mais lorsque qu'un filleul passe une commande le parrain se retrouve bien avec un filleul mais tout le reste ne fonctionne pas :
La liste des comptes parrain est vide, rien n'est pris en compte.

Je ne vois pas ce qu'il faut faire, avez-vous une piste ?

Merci

Précision, je suis en 1.4.3.1

  • manu
  • faï tot petar miladiu

Offline


dans le fichier fonctions/moteur.php

cherches cette ligne :

if(!isset($_REQUEST['parrain'])) $parrain=""; else $parrain=lireParam("parrain", "int");

et remplaces par cette ligne :

if(!isset($_REQUEST['parrain'])) $parrain=""; else $parrain=lireParam("parrain", "string+\@\.");

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

  • manu
  • faï tot petar miladiu

Offline


ah mince j'avais pas vu la liste de modif du dessus :-)

mes excuses


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

Offline


J'ai trouvé pourquoi rien ne se passait, il fallait juste changer le statut de la commande en "payé" et non pas en "envoyé"…

Sinon j'ai un autre bug :

Au 1er achat du filleul, le parrain est bien crédité d'une somme.
Au 2e achat (et suivants) du filleul, c'est le filleul et non plus le parrain qui se retrouve crédité.

Est-ce que ce bug se retrouve chez vous également ?

Merci

  • manu
  • faï tot petar miladiu

Offline


tu peux régler ça dans l'admin (modules->parrainage-> gestion des tranches)

ce plugin permet de rémunérer le client à chaque commande et de facon progressif. Plus il commande plus ca lui rapporte.

Passe toutes les tranches à 0 € et ton problème sera réglé


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

Offline


OK merci. Je cogite tout ça.