Avatar billede kasp Nybegynder
22. marts 2010 - 22:14 Der er 11 kommentarer og
1 løsning

Minus i indkøbskurv

Hej,
Jeg har et problem med en indkøbskurv jeg er ved at lave.

Jeg vil gerne have den til at trække et fast beløb fra total beløbet i indkøbskurven, da kunden vil opnå fri fragt over en vis grænse. Jeg har skrevet dette indtil videre men det er kun de 700 der fremkommer hele tiden.

        <?php
        $fragt = 700;
        $pris = $total_price;
        $total = $pris - $fragt;
       
       
        echo "K&oslash;b for "; echo $total; echo " og f&aring; gratis levering" ?>

Er der nogen der kan fortælle mig hvad jeg gør galt?

Nu vi er ved det :). Er det så muligt at oprette en hvis-sætning, således at når der er købt for over 700 kr. vil stå "Gratis fragt" i kurven?
Avatar billede repox Seniormester
22. marts 2010 - 22:21 #1
Det er en minimalistisk stump kode; hvis ikke det er fordi du ikke har styr på navngivningen af dine variabler, så sker din fejl tidligere i koden.

Og din hvis-sætning:
$fragt = 45;
if( $pris > 700 )
  $fragt = 0;
$total = $pris - $fragt;
Avatar billede kasp Nybegynder
22. marts 2010 - 23:05 #2
Hej igen
tak for et hurtigt svar.
Jeg tror ikke helt jeg er med.

Hvis jeg kun benytter $total_price kommer der fint nok et tal frem. Godt nok stor der kr. foran kan det have indflydelse? Hvis jeg f.eks. skriver 800 istedet for $total_price, regnes der rigtigt nok.

Mht. til hvis-sætningen er det da muligt at gøre som følger?:

hvis indkøb over 700 skrives:
"Gratis fragt"

hvis indkøb under 700.
Du manger at købe for x (det er her udregningen kommer ind) for at opnå gratis fragt.
Avatar billede wanze Nybegynder
23. marts 2010 - 01:43 #3
"Godt nok stor der kr. foran kan det have indflydelse?

Hvis din variabel fx indeholder "800 kr.", så kan du ikke bruge den, da PHP tolker det som en tekst. Du skal sørge for, at din streng er et tal.
23. marts 2010 - 06:57 #4
Du kan som wanze siger ikke bruge $total_pris i dine beregninger.  Der maa i din kode eksistere en variabel, lad os sige $sum, som opsummerer priserne paa de enkelte varer i indkoebskurven.  Brug den i stedet.

Videre vil jeg foreslaa at du laver en variabel for graensen for gratis fragt.  Saa bliver det ogsaa nemmere at aendre den hvis du skulle have brug for det.

Saa jeg vil foreslaa at du accepterer repox's kodeforslag som startgrundlag og bygger videre for eksempel saaledes.  Dette er ikke tested fordi jeg staar og skal afsted.  Hvis der er syntax fejl skal jeg rette dem i aften.

$fragt = 45; (eller hvad det nu er)
$graense = 700;
if($sum >= $graense)
{
  $fragt = 0;
  $besked = "Gratis fragt!";
}
else
{
  $forskel = $graense - $sum;
  $besked = "Du mangler at koebe for " . $forskel . " kr. for at opnaa gratis fragt."
}
$total = $sum - $fragt;

echo "total beloeb: " . $total . " kr.";
echo $besked;
26. marts 2010 - 06:18 #5
kasp, fik du mit indlaeg?  Var det nyttigt?  Eller har jeg misforstaaet problemet?  Lad mig faa en tilbagemelding.
29. marts 2010 - 05:30 #6
Kasp, har du mistet interessen for denne traad?  I saa fald, kan jeg bede dig lukke den?  Det giver god orden, og saa staar spoergsmaalet ikke laengere som aabent i min (og andres) liste af indlaeg.

Jeg sender dette som svar fordi jeg mener at have bidraget til loesning af problemet.  Du boer saa indhente svar fra de andre der ligeledes har bidraget.
Avatar billede kasp Nybegynder
29. marts 2010 - 16:04 #7
Hej Christian.
Sorry den sene tilbagemelding. Jeg har ledt og ledt i de forskellige variable i Virtuemart for at finde den pågældende sum variabel, men desværre uden held. Jeg vil naturlig vis gerne give både dig og repox.
Avatar billede kasp Nybegynder
29. marts 2010 - 16:06 #8
Svar godtaget
29. marts 2010 - 18:40 #9
Hvordan opstaar $total?  Hvor i koden naevnes $total foerste gang?  $total bestaar, siger du, af et tal og en tekst ("kr") saa der maa vaere en kodelinie noget i retning af

$total = $et_eller_andet . " kr" 

Det er saa $et_eller_andet du skal have fat paa.
Avatar billede kasp Nybegynder
29. marts 2010 - 19:03 #10
Hej
Jeg ved godt jeg nok er lidt langsom i optrækket men jeg syntes ikke jeg kan finde noget der ligner dette i koden:

<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );

if ($empty_cart) {
    echo "";
} else {
    // Loop through each row and build the table
    foreach( $minicart as $cart ) {        
        foreach( $cart as $attr => $val ) {
            // Using this we make all the variables available in the template
            // translated example: $this->set( 'product_name', $product_name );
            $this->set( $attr, $val );
        }

        if(!$vmMinicart) { // Build Minicart
            ?>
            <div class="cart-listings">
                <div class="cart-qty">
                <?php echo $cart['quantity'] ?>&nbsp;x&nbsp;<a href="<?php echo $cart['url'] ?>"><?php echo $cart['product_name'] ?></a>
                </div>
                <div class="cart-price">
                <?php echo $cart['price'] ?>
                </div>
                <?php echo $cart['attributes'];
                echo "</div>";
        }
    }
   
    if(!$vmMinicart) { ?>
        <div style="clear: both;"></div>
    <?php } ?>
    <div class="cart-totals">
        <div class="cart-qty" >
            <?php echo "<span class=\"total_products\">$total_products</span>"; ?>
        </div>
        <div class="cart-price">
            <?php echo $total_price ?>
        </div>
    </div>
    <?php if (!$empty_cart && !$vmMinicart) { ?>
        <div class="show-cart-button"><?php echo $show_cart ?></div>
    <?php }
}
echo $saved_cart;
?>
29. marts 2010 - 20:26 #11
Nej, med de kode-udsnit maa jeg ogsaa give op.  Du viser linien <?php echo $total_price ?> men ingen steder hvordan den er dannet.
Avatar billede kasp Nybegynder
29. marts 2010 - 20:58 #12
ja jeg ved det. Det er en del af VirtueMart som er et modul til Joomla, koden må stå et andet sted men kan ikke lige se hvor. Nå det må jeg kigge videre efter.
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