Bonjour,
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
Merci par avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 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; } }
Partager