Fout in if/else ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sefanja Brouwer

Sefanja Brouwer

15/06/2021 17:17:04
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>';
                        }


Dat is mijn code, als ik een fout heb gemaakt hoor ik dat uiteraard graag!
 
PHP hulp

PHP hulp

22/09/2021 04:29:37
 
Adoptive Solution

Adoptive Solution

15/06/2021 17:37:38
Quote Anchor link
Als de voorraad 0 is, dan is het minder dan wat in het karretje zit, en wordt er nageleverd.
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.
 
Sefanja Brouwer

Sefanja Brouwer

15/06/2021 17:42:27
Quote Anchor link
Dat snap ik, het gaat mij puur om die else if die ik er heb staan, die wordt nu nooit weergeven.
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.
 
Adoptive Solution

Adoptive Solution

15/06/2021 17:53:34
Quote Anchor link
Je zou de test kunnen omdraaien.
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.
 
Sefanja Brouwer

Sefanja Brouwer

15/06/2021 17:59:12
Quote Anchor link
Ik heb de code omgedraaid en nu werkt alles zoals het moet.
Bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.