Aller au contenu

Appel fonction d'une classe


xpatval

Sujets conseillés

Bonjour, matin,

Dans un traitement e-commerce, je souhaite modifier le montant global d'un achat en fonction du montant total. Autrement dit, si ce total dépasse par exemple 500 euros, je souhaite appliquer une réduction de 10%.

L'appel au calcul du prix se fait de la façon suivante:

<?php echo"<td>". $currencies->display_price($products[$i]['final_price'] ."</td>"; ?>

Vous passant les conditions de la classe currencies (pour celle-ci, no problemo), voici la fonction du calcul du prix avant que je modifie:

$this->total += tep_add_tax($products_price, $products_tax) * $qty;

Je rajoute donc ma petite fonction (de test pour le moment) et ajoute un appel à cette dernière:

Nouvelle fonction:

	function moderate($total)
{
 if ($total > 700.00) $total = $total / 1.10;
 return $total;
}

Et modifie la fonction de calcul de cette manière:

$this->total = $this->moderate($total);

=> Echec.

J'ai tenté aussi cela:

$this->moderate->total += tep_add_tax($products_price, $products_tax) * $qty;

Echec encore, puisque, et dans les deux cas, je me retrouve avec un prix égal à zéro :nono:

Bref, où merdoie-je ?

Merci,

xpatval

Lien vers le commentaire
Partager sur d’autres sites

hmu hum... bizarre :)

Es-tu sur que la valeur que tu donne à moderate est plus grande que 0 ? Ne vaudrait-il mieux pas arrondir à l'aide d'une méthode le calcul (en effet, 700/1.1 = 636.363636.... pas très pratique).

Peux-tu faire un affichage de total avant, après, que ce passe-t'il si tu envoie une valeur ? Es-tu sur que tu stocke la valeur correctement ?

Sans un brin plus de code... ça risque d'être difficile :)

Lien vers le commentaire
Partager sur d’autres sites

$this->total = $this->moderate(tep_add_tax($products_price, $products_tax) * $qty);

Tout simplement non ?

<{POST_SNAPBACK}>

:whistling: Ben quoi, j'vais retourner boire un Kakolak....

Merci à vous deux,

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Sinon ton erreur vient d'avoir mis

$this->total = $this->moderate($total);

au lieu de

$this->total = $this->moderate($this->total);

;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...