Avatar billede steenolsen1 Nybegynder
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?
Avatar billede steenolsen1 Nybegynder
31. juli 2005 - 15:57 #1
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";
                }
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester