Fout in if/else ?
Met het volgende statement laat ik het systeem checken of minder voorraad is dan wat mensen in hun winkelmand hebben gestopt. De code werkt ook dus dat is goed.
We willen ook dat als het product niet op voorraad is dat er een andere tekst wordt laten zien dan wat we nu doen. Ik dacht dat ik dit eenvoudig met een elseif kon oplossen maar op de een of andere manier pakt die hem niet. Trek ik de else los en plaats ik 2 keer een if statement dat laat de code het wel goed zien.
Code (php)
1
2
3
4
5
2
3
4
5
if ( $_product->get_stock_quantity() < $cart_item['quantity'] ) {
echo '<p class="stock_message_cart">Wij kunnen ' . $_product->get_stock_quantity() . ' artikel(en) direct leveren. Je bestelling wordt wel verstuurd maar de overige (' . $product_calc_total . ') artikel(en) worden nageleverd.</p>';
} else if ( $_product->get_stock_quantity() == 0 ) {
echo '<p class="stock_message_cart">Dit product is niet op voorraad.</p>';
}
echo '<p class="stock_message_cart">Wij kunnen ' . $_product->get_stock_quantity() . ' artikel(en) direct leveren. Je bestelling wordt wel verstuurd maar de overige (' . $product_calc_total . ') artikel(en) worden nageleverd.</p>';
} else if ( $_product->get_stock_quantity() == 0 ) {
echo '<p class="stock_message_cart">Dit product is niet op voorraad.</p>';
}
Dat is mijn code, als ik een fout heb gemaakt hoor ik dat uiteraard graag!
De test op geen voorraad wordt dan niet uitgevoerd.
En als er wel voorraad is, maar minder dan in het karretje wordt ook nageleverd.
En als er meer voorraad is dan in het karretje is de test voorraad == 0 altijd FALSE.
Kortom, wel of geen voorraad, er wordt (na)geleverd.
Maar als de voorraad dus gelijk is (en het liefste ook als die lager is) aan 0 zou die de 2e tekst moeten laten zien in plaats van de eerste.
Misschien snap ik je niet helemaal maar het probleem zit hem niet in de eerste if die we zien want die werkt gewoon zoals die zou moeten doen.
Eerst kijken of er voorraad is.
Zo ja dan kijken of de voorraad minder is dan de inhoud van het karretje.
De huidige test kijkt ook of er minder voorraad is dan een leeg karretje.
Dan wordt er nageleverd.
Iets wat niet besteld wordt, wordt nageleverd.
Wellicht ook eerst kijken of er iets in het karretje zit.
Bedankt!