Een klant vroeg ons waarom, bij het selecteren van een producteigenschap in WooCommerce, de overige eigenschappen niet werden bijgewerkt. Dit leidde tot verwarring en frustratie, omdat bezoekers alle eigenschappen konden kiezen, ook als bepaalde combinaties niet beschikbaar waren.
De oorzaak achterhalen
Bij het inspecteren van de productpagina zagen we dat de parameter data-product_variations
de waarde false
had. Normaal bevat deze parameter informatie over de beschikbare variaties van het product, die ervoor zorgt dat alleen bestaande combinaties geselecteerd kunnen worden.
WooCommerce gebruikt de functie woocommerce_variable_add_to_cart()
om variabele producten weer te geven. Deze functie haalt eerst het aantal variaties op en bepaalt vervolgens, op basis van het aantal variaties, via het filter woocommerce_ajax_variation_threshold
, of deze informatie wordt meegestuurd. Standaard ligt deze drempel op 30 variaties. Het aantal variaties van het product van onze klant was meer dan 100. Dit was dan ook de reden dat WooCommerce geen filtering meer toepast op de beschikbare variaties.
De oplossing(en)
Omdat WooCommerce standaard bij meer dan 30 variaties geen variatiegegevens meestuurt naar de productpagina, werden de combinaties niet goed bijgewerkt. Er zijn verschillende manieren om dit probleem op te lossen. Een paar opties zijn:
- Drempel verhogen: Door de waarde van het filter
woocommerce_ajax_variation_threshold
te verhogen, kunnen meer variaties worden weergegeven. - Variaties beperken: Het aantal variaties terugbrengen tot 30 of minder, zodat ze allemaal automatisch zichtbaar zijn.
- Alternatieve productweergave: Het product omzetten naar een gegroepeerde productstructuur of een andere opzet, waardoor de eigenschappen op een andere manier worden weergegeven.
Welke oplossing de beste is, ligt uiteraard geheel aan de situatie en aan de wensen van de klant.