31. juli 2005 - 15:56
Der er
1 kommentar
Sende variabler i mail
Hej,
Jeg kæmper med at få sendt de rigtige variabler i en mail, når der er foretaget bestilling i min webshop. Der er netop tilføjet en produktkonfigurator, der gør det muligt, at tilvælge diverse ting og sager til den enkelte vare. Det bliver fint nok udskrevet til skærm, registreret korrekt i databasen osv., men jeg kan ikke få det rigtigt i min mail, der sendes automatisk efter gennemført bestilling.
Eksempel: Der er købt to varer, hvoraf der er tilvalgt et eller andet ved den første. Mailen skal dermed se sådan her ud:
1 stk. t-shirt a kr. 99,00 i alt 99,00 (selve varen)
størrelse L (tilvalget)
2 stk. bælte sort a kr. 149,00 i alt 298,00
Det jeg modtager på mailen er følgende:
1 stk. t-shirt a kr. 99,00 i alt 99,00
størrelse L
2 stk. bælte sort a kr. 149,00 i alt 298,00
størrelse L
Der bliver altså i alle tilfælde medsendt tilvalget fra den første vare under alle de andre.... Det er skidt :-(
Er der nogen der ved, hvordan man løser den?
Her er koden, der forsøger at definere layoutet i mailen:
// Definerer bestillingen
include("admin/connect.php");
$bestilling = "$shoptekster[antal]\t\t$shoptekster[varetekst]\t\t$shoptekster[pris_stk]\t$shoptekster[pris_i_alt]\n";
$varer = array();
$konfigurationer = array();
$kurvensindhold = mysql_query("SELECT * FROM varekurv WHERE ordrenr = '$alinfo[ordrenr]'");
while($kurv = mysql_fetch_array($kurvensindhold)) {
$pris_total = $kurv[antal]*$kurv[pris];
$q_varenavn = mysql_query("SELECT varenavn FROM varer_flex WHERE vareid = '$kurv[vareid]' AND sprogid = '$sprog'"); // Jeg tror godt du kan spare denne query væk og joine dig til den i $kurvensindhold
$varenavn = mysql_fetch_assoc($q_varenavn);
$kurv['varenavn'] = $varenavn['varenavn'];
$varer[$kurv['id']] = $kurv; // Brug samme nøgle i begge arrays
if($_SESSION[konfigurator] == '1') {
// Henter eventuelle konfigurationer
$q_konfemner = mysql_query("SELECT * FROM varekurv_konf INNER JOIN konfiguratoremner ON varekurv_konf.emneid = konfiguratoremner.konfemne_id WHERE varekurv_konf.id_varekurv = '$kurv[id]'");
while($konfemner = mysql_fetch_assoc($q_konfemner)) {
$konfigurationer[$kurv['id_varekurv']] = $konfemner; // Brug samme nøgle i begge arrays
}
}
}
mysql_close($connection);
foreach($varer as $kurv) {
if($kurv[antal] == '0.50') { // Tager højde for ikke-antalsafhængige emner
$pris_total = $kurv[pris];
} else {
$pris_total = $kurv[antal]*$kurv[pris];
}
$bestilling .= $kurv['antal']."\t\t".$kurv['varenavn']."\t\t".number_format($kurv['pris'], 2, ',','.')."\t".number_format($pris_total, 2, ',','.')."\n";
if(!empty($konfigurationer[$kurv['id_varekurv']])) { // Tilføj et isset() check hvis du kører strict
$konfemner = $konfigurationer[$kurv['id_varekurv']];
if($konfemner[antal] < '1') {
$emneantal = '';
$emneantal_beregning = 1;
} else {
$emneantal = number_format($konfemner[antal], 0,',','.');
}
if($konfemner[pris] > '0') {
$pris = number_format($konfemner[pris], 2,',','.');
} else {
$pris = '';
}
if(($pris*$emneantal) > '0') {
$pris_ia = number_format(($pris*$emneantal), 2,',','.');
} else {
$pris_ia = '';
}
if($emneantal_beregning == 1) { // Overstyrer beregningen ovenfor, så prisen ikke bliver halveret (antal = 0.50)
if(($pris*$emneantal_beregning) > '0') {
$pris_ia = number_format(($pris*$emneantal), 2,',','.');
} else {
$pris_ia = '';
}
}
$bestilling .= $emneantal."\t\t".$konfemner[emnenavn]."\t\t".$pris."\t".$pris_ia."\n";
}
}