Bonjour,
je souhaite calculer mes frais de port avec deux differents produits table et transat.
tout fonctionne a part si dans le panier le client mais plus de deux table de categories différentes restant des tables je veux additioner la quantite pour calculer le frais de port sur la totalite des tables meme differentes voici mon code qui se met pas dans le if mais dans else.
Je pense que c'est parce que je n'arrive pas recuperer les nom des codes de table pour voir si ce sont que des tables.
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| $total = 0; //set initial total value
$b = 0; //var for zebra stripe table
foreach ($_SESSION["cart_products"] as $cart_itm)
{
//set variables to use in content below
$product_name = $cart_itm["product_name"];
$product_qty = $cart_itm["product_qty"];
$product_price = $cart_itm["product_price"];
$product_code = $cart_itm["product_code"];
$product_finition = $cart_itm["product_finition"];
$product_color = $cart_itm["product_color"];
$subtotal = ($product_price * $product_qty); //calculate Price x Qty
$qtetotal += $cart_itm["product_qty"];
$bg_color = ($b++%2==1) ? 'odd' : 'even'; //class for zebra stripe
echo '<tr class="'.$bg_color.'">';
echo '<td><input type="text" size="2" maxlength="2" name="product_qty['.$product_code.']" value="'.$product_qty.'" /></td>';
echo '<td>'.$product_name.'</td>';
echo '<td>'.$product_price.$currency.'</td>';
echo '<td>'.$subtotal.$currency.'</td>';
echo '<td>'.$product_finition.' '.$product_color.'</td>';
echo '<td><input type="checkbox" name="remove_code[]" value="'.$product_code.'" /></td>';
echo '</tr>';
$total = ($total + $subtotal); //add subtotal to total var
}
print_r($product_code);
/*si table orphe et table orphe avec plexi on additione les quantites*/
if($product_code == "table-orphe")
{
if($qtetotal >= 1 && $qtetotal <= 2)
{
$shipping_cost_table=20;
}
if($qtetotal >= 3 && $qtetotal <= 4)
{
$shipping_cost_table=30;
}
if($qtetotal >= 5 && $qtetotal <= 10)
{
$shipping_cost_table=60;
}
if($qtetotal >10)
{
$shipping_cost_table=0;
}
}
else
{
echo'2';
/*si table orphe ou table orphe avec plexi mais pas les deux en même temps*/
if($product_qty >= 1 && $product_qty <= 2)
{
$shipping_cost_table=20;
}
if($product_qty >= 3 && $product_qty <= 4)
{
$shipping_cost_table=30;
}
if($product_qty >= 5 && $product_qty <= 10)
{
$shipping_cost_table=60;
}
if($product_qty >10)
{
$shipping_cost_table=0;
}
} |
voici ce que retourne le print_r($_SESSION["cart_products"]); en dehors du foreach
Array ( [table-orphe] => Array ( [product_finition] => Miroir [product_qty] => 3 [product_code] => table-orphe [product_name] => Table basse Orphée sans plexi [product_price] => 590.00 ) [table-orphe-avec-plexi] => Array ( [product_finition] => Miroir [product_color] => Noir [product_qty] => 8 [product_code] => table-orphe-avec-plexi [product_name] => Table basse Orphée avec plexi [product_price] => 809.00 ) )
et le print_r($product_code); en dehors du forreach
je n'ai qu'un code alors qu'il devrait en avoir 2 je sais que c'est parce qu'il doit etre recuperer dans le foreach mais meme en le mettant dans une session des que je sort du foreach ca marche plus soucis la quantite totale $qtetotal += $cart_itm["product_qty"]; ne donne que le bonne valeur hors foreach.
merci pour votre aide.
Partager