pipo83 | Bonsoir,
J'ai un petit soucis sur lequel je planche depuis des heures sans en trouver la solution !
Pour un système de panier j'ai besoin de (pré)stocker en session les frais de port de chaque produit.
Pour être concret, je souhaite faire la chose suivante:
Ma variable $_SESSION['ship'] doit retourner un array() avec id du produit en KEY et le montant des frais de port en VALUE.
Si $_SESSION['ship'][id du produit] n'existe pas == on crée cette variable
Si $_SESSION['ship'][id du produit] existe == rien à faire
Voici mon code actuel qui fonctionne à qui me retourne une erreur
Code :
- for ($i=0, $n=sizeof($products); $i<$n; $i++) {
- $id = $products[$i]['id'];
- $shippingCost = getShippingCost($id); // calcul le montant des frais de port du produit
- $shippingMethods = getShippingMethods($id); // récupère les modes de livraison valables pour ce produit
- $methods = explode(";", $shippingMethods); // retourne "spu" pour Sur Place et "flat" pour Colissimo
- if( $_SESSION['ship'] && (!in_array($id, array_keys($_SESSION['ship']))) ) { // je pense que l'erreur vient d'ici !?
- if( (in_array('flat', $methods)) && (in_array('spu', $methods)) ) {
- $_SESSION['ship'][$id] = $shippingCost;
- } elseif( (!in_array('flat', $methods)) && (in_array('spu', $methods)) ) {
- $_SESSION['ship'][$id] = 0;
- } elseif( (in_array('flat', $methods)) && (!in_array('spu', $methods)) ) {
- $_SESSION['ship'][$id] = $shippingCost;
- } else {
- $_SESSION['ship'][$id] = 0;
- }
- }
|
Merci par avance ! |