Version complète: sur le forum Webmaster Hub : Appel fonction d'une classe
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
xpatval
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:
CODE
<?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:
CODE
$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:
CODE
    function moderate($total)
    {
     if ($total > 700.00) $total = $total / 1.10;
     return $total;
    }

Et modifie la fonction de calcul de cette manière:
CODE
$this->total = $this->moderate($total);
=> Echec.
J'ai tenté aussi cela:
CODE
$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
Antoine Cailliau
hmu hum... bizarre smile.gif

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 smile.gif
dièse
Bonjour,


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

Tout simplement non ?
xpatval
CITATION(dièse @ lundi 16 janvier 2006, 11h33)
CODE
$this->total = $this->moderate(tep_add_tax($products_price, $products_tax) * $qty);

Tout simplement non ?
*


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

Merci à vous deux,

xpatval
Dan
Sinon ton erreur vient d'avoir mis
CODE
$this->total = $this->moderate($total);

au lieu de
CODE
$this->total = $this->moderate($this->total);

wink.gif
xpatval
'veulent me ridiculiser ..... wacko.gif

dan, me semblait l'avoir essayé, mais c'est bon aussi

xpatval
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.