Decimaalscheidingsteken-fouten (WooCommerce)
(Doorverwezen vanaf Verkeerde prijzen (WooCommerce))
Naar navigatie springen
Naar zoeken springen
Het probleem
Dit betreft een casus uit okt. 2021: De prijzen van sommige artikelen zijn 100x te hoog. Ik heb flink met SQL huisgehouden in deze database, maar toch verklaart dat niet deze storing.
Diagnose
- In de database zijn alle prijzen op dezelfde manier weergegeven: Met een komma als scheidingsteken
- Dit betreft een site die onlangs is geklooned van NL naar EN, waarbij het scheidingsteken in de backend (
wp-admin » WooCommerce » Settings » General: Currency options
) is aangepast van "," naar ".". Het blijkt dat het scheidingsteken in de database daarbij niet wordt aangepast. - Test: Op het moment dat ik in de backend het decimaalscheidingsteken terugverander in ",", zijn er geen problemen.
Oorzaak
Het komt door het aanpassen van het decimaalscheidingsteken van ,
naar .
. WooCommerce probeert daar rekening mee te houden, maar dat lijkt niet altijd goed te gaan.
Oplossing
Aanpassing prijzen in database
Pas het decimaalscheidingsteken aan in prijzen in de database:
update wp_postmeta set meta_value = replace(meta_value, ",", ".") where meta_key="_price" or meta_key="_regular_price";
Check de site
Prijzen op de site zijn nog gewoon. Of vanwege caching, maar vermoedelijk (mede) doordat WooCommerce zelf rekening houdt met de situatie dat het decimaalscheidingsteken in de database afwijkt van de site.
Pas decimaalscheidingsteken aan
Pas decimaalscheidingsteken aan - wp-admin » WooCommerce » Settings » General: Currency options
Check de site
- Gewoon: Kloppen de bedragen?
- En na legen transients? (er was geen andere vorm van caching actief):
wp transient delete --all
?