De foutmelding "Er zijn geen verzendopties gevonden voor je locatie" betekent dat WooCommerce zijn verzendzones heeft vergeleken met het adres van de klant en geen overeenkomende zone met een actieve verzendmethode heeft gevonden, of een overeenkomende zone vond maar alle methoden erin nul tarieven retourneerden. Het op een na meest voorkomende symptoom is het verschijnen van het verkeerde tarief — de klant ziet een tarief van een onverwachte zone omdat WooCommerce's zonematching anders werkt dan de meeste mensen aannemen.
Hoe WooCommerce verzendzones werken
Een verzendzone is een geografisch gebied (landen, provincies of postcodebereiken) met een of meer verzendmethoden eraan gekoppeld. WooCommerce matcht een klant aan een zone door het verzendadres te vergelijken met de zonedefinities, in de volgorde waarin de zones in de lijst staan bij WooCommerce > Instellingen > Verzending.
Dit is het cruciale punt dat de meeste mensen missen: WooCommerce gebruikt de eerste overeenkomende zone, niet de meest specifieke. Als een klant in Amsterdam overeenkomt met zowel een "Nederland"-zone op positie 1 als een "Amsterdam-regio"-zone op positie 3, krijgt hij de tarieven van de "Nederland"-zone. De specifiekere zone wordt nooit geëvalueerd.
De laatste zone in de lijst is altijd "Locaties die niet worden gedekt door je andere zones" (de rest-van-de-wereld-terugval). Deze zone kan niet worden verwijderd, hernoemd of verplaatst. Als het adres van een klant niet overeenkomt met een andere zone, wordt deze terugvalzone gebruikt. Als de terugvalzone geen actieve verzendmethoden heeft, ziet de klant "Geen verzendopties gevonden."
Regels voor zonevolgorde
- Specifiekere zones (stad, postcodebereik) moeten boven minder specifieke zones (land, continent) in de lijst staan
- Sleep zones in de juiste volgorde bij WooCommerce > Instellingen > Verzending
- De terugvalzone staat altijd onderaan en kan niet worden verplaatst
- Een zone zonder actieve verzendmethoden is voor klanten die erin vallen gelijk aan helemaal geen zone
"Geen verzendopties gevonden": de meest voorkomende oorzaken
1. Geen verzendmethode toegevoegd aan de overeenkomende zone
Een zone zonder verzendmethoden levert nul tarieven op. Ga naar WooCommerce > Instellingen > Verzending, klik op de overeenkomende zone en controleer of minstens één methode (Vast tarief, Gratis verzending, Lokale afhaling) in de lijst staat en is ingeschakeld.
2. Het adres van de klant komt met geen enkele zone overeen
Als het land of de postcode van de klant niet door een zone wordt gedekt, valt WooCommerce terug op "Locaties die niet worden gedekt door je andere zones." Als die terugvalzone geen methoden heeft, verschijnen er geen tarieven.
Controleer: staat het facturatie- of verzendland van de klant in minstens één zone? Zo niet, voeg het land toe aan een bestaande zone of voeg een methode toe aan de terugvalzone.
3. Zonevolgorde plaatst een bredere zone eerst
Een "Europa"-zone op positie 1 vangt elke Europese klant op voordat een "Nederland"-zone op positie 2 wordt geëvalueerd. De Nederland-zone is dan dood gewicht — hij bestaat maar wordt nooit gematcht.
Oplossing: sleep de Nederland-zone boven de Europa-zone.
4. Voorwaarden voor gratis verzending zijn niet voldaan
Een zone met alleen een Gratis-verzendmethode toont geen opties als de voorwaarden voor gratis verzending niet zijn voldaan. Gratis verzending vereist dat alle geconfigureerde voorwaarden waar zijn:
- Minimaal bestelbedrag: het winkelmandtotaal (voor of na kortingen, afhankelijk van de instelling) moet de drempel halen
- Coupon: een coupon met "Gratis verzending toestaan" aangevinkt moet zijn toegepast
- Beide: beide voorwaarden moeten tegelijk waar zijn
Als het winkelmand niet aan de voorwaarden voldoet en Gratis verzending de enige methode in de zone is, toont WooCommerce geen opties. De oplossing is een Vast tarief-methode toevoegen als terugval, of de gratis-verzendvoorwaarden aanpassen.
5. Verzendklasse-conflicten
Verzendklassen groeperen producten op verzendkostenprofiel (bijv. "omvangrijk," "breekbaar," "digitaal"). Wanneer een verzendmethode kosten per verzendklasse definieert, kan een product zonder verzendklasse wegvallen als het veld "Kosten zonder verzendklasse" leeg is.
Controleer: WooCommerce > Instellingen > Verzending > [Zone] > [Methode] > Verzendklasse-kosten. Als een product in het winkelmand tot een niet-genoemde klasse behoort, of als het veld "Kosten zonder verzendklasse" leeg is, kan die methode geen tarief retourneren.
Gecachete verzendtarieven die niet worden bijgewerkt
WooCommerce cacht verzendtarieven met behulp van WordPress-transienten. Wanneer je een verzendzone, methode of tarief wijzigt, kunnen de oude tarieven blijven hangen tot de transient verloopt. Dit is de reden dat een instellingswijziging soms niet onmiddellijk effect heeft.
Verzendtransienten wissen
Optie A — WooCommerce ingebouwde tool:
Ga naar WooCommerce > Status > Hulpmiddelen en klik op "Transients wissen." Dit verwijdert alle WooCommerce-transienten, inclusief gecachete verzendtarieven.
Optie B — WP-CLI:
wp transient delete --all
Optie C — Databasequery (als niets anders werkt):
DELETE FROM wp_options WHERE option_name LIKE '_transient_wc_ship%';
Test na het wissen van transienten de afrekenpagina in een incognitovenster om eventuele browser- of paginacache te omzeilen.
De ingebouwde shipping debug-modus inschakelen
WooCommerce heeft een shipping debug-modus die het cachen van verzendtarieven uitschakelt. Dit is handig tijdens configuratie maar moet in productie worden uitgeschakeld.
Ga naar WooCommerce > Instellingen > Verzending > Verzendopties en vink "Debug-modus inschakelen (alleen zichtbaar voor beheerders)" aan. Terwijl de debug-modus actief is:
- Verzendtarieven worden bij elke paginaweergave opnieuw berekend (geen transient-cache)
- Een debugmelding toont welke zone is gematcht en welke methoden zijn geëvalueerd
- Alleen beheerders zien de debug-uitvoer; klanten zien normaal gedrag
Schakel debug-modus uit nadat je hebt geverifieerd dat de tarieven kloppen. In productie laten staan veroorzaakt onnodige databasequeries bij elke afrekenpaginaweergave.
Vast tarief vs. gratis verzending vs. lokale afhaling: wanneer welke geldt
WooCommerce wordt geleverd met drie ingebouwde verzendmethoden. Elke heeft eigen gedrag:
Vast tarief: een vaste prijs, optioneel met per-artikel of per-klasse aanpassingen. Het formuleveld ondersteunt [qty] (aantal artikelen) en [cost] (artikelprijs) als placeholders. Voorbeeld: 10 + ( 2 * [qty] ) rekent een basis van 10 plus 2 per artikel.
Gratis verzending: nul kosten, maar alleen als aan de voorwaarden is voldaan (minimumbedrag, coupon of beide). Als niet aan de voorwaarden is voldaan, retourneert de methode niets — er is geen terugval naar een tarief. Combineer Gratis verzending altijd met een Vast tarief in dezelfde zone, zodat klanten onder de drempel nog een optie hebben.
Lokale afhaling: geen verzendkosten, met een optioneel kostenveld. WooCommerce slaat het verzendadresformulier over wanneer de klant Lokale afhaling kiest. Btw wordt berekend op basis van het winkeladres, niet het verzendadres van de klant.
Wat een ontbrekende verzendoptie NIET is
- Niet automatisch de meest specifieke zonematch. WooCommerce matcht niet de "beste" zone — het matcht de eerste in de lijst. Zonevolgorde is het allerbelangrijkste configuratiedetail en de meest voorkomende bron van verkeerde tarieven.
- Niet op te lossen door alleen een minimaal bestelbedrag in te stellen. Gratis verzending met een minimumbedrag en geen terugval op een vast tarief laat klanten onder de drempel met nul opties achter. De oplossing is een tweede methode toevoegen, niet de drempel verlagen.
- Niet onmiddellijk bijgewerkt na het wijzigen van instellingen. Transient-caching betekent dat oude tarieven uren kunnen blijven hangen. Wis altijd transienten na verzendwijzigingen en test in een incognitovenster.