WooCommerce gebruikers hebben misschien wel iets voorzij zien komen over de naamswijziging van WooCommerce naar Woo. Op 31 oktober 2023 kondigde David Callaway in het bericht “Say hello to Woo.com” officieel de naamswijziging aan. In de weken hiervoor zagen we bij Pronamic al dat Automattic bezig was met de voorbereidingen hiervan. Inmiddels is de naamswijziging weer teruggedraaid, maar wat is het verhaal hier achter? In dit bericht een korte uitleg met tijdlijn.
Categorie: WooCommerce
Het koppelen van Mollie aan WordPress of WooCommerce is goed mogelijk en er zijn verschillende oplossingen beschikbaar. Welke optie het beste is, hangt af van verschillende factoren. Wil je Mollie aan WordPress of WooCommerce koppelen? Hier vind je alle benodigde informatie.
De ontwikkelingen binnen de WooCommerce webwinkel plugin gaan razendsnel. Er wordt o.a. hard gewerkt aan betere ondersteuning voor de WordPress “Full Site Editing” (FSE) functionaliteiten en de blok-editor. Op 9 januari werd WooCommerce versie 8.5.0 gelanceerd en op 15 februari werd versie 8.6.0 alweer uitgebracht. En de 8.7.0 release kan er ook op elk moment aankomen. Hartstikke mooi natuurlijk dat de ontwikkelingen zo snel gaan, maar het gaat ook wel gepaard met de nodige problemen. Binnen de “WordPress Nederland” workspace op Slack was daar dan ook al een kleine discussie over:
Hey, de 8.x releases van WooCommerce verliepen -op z’n zachts gezegd- niet zo denderend. Naar mijn mening ligt het tempo met de maandelijkse update te hoog. Maar ik ben benieuwd naar jullie mening. Ik heb een open vraag gesteld in het core-channel van WooCommerce Slack, dus benieuwd naar andere meningen. Deel ze gerust daar. Merci!
Dave Loodts – https://wpnl.slack.com/archives/C016TSB5GV9/p1708338050376959
Gelukkig zijn de Woo-ontwikkelaars wel bezig om documentatie en changelogs e.d. verder te verbeteren. Maar grotere webwinkels kan het ook wel veel tijd en geld kosten om mee te gaan in alle ontwikkelingen. Daarnaast lijkt Automattic met de rebranding van WooCommerce naar Woo ook de prijzen van verschillende plugins flink verhoogd te hebben. Op X gaf Ryan Waterbury hierover bijvoorbeeld het volgende aan:
In eerste instantie lijkt de gratis webwinkel plugin WooCommerce een voordelige keuze, maar in de praktijk zie je toch ook wel snel dat er allerlei betaalde plugins en diensten nodig zijn om een succesvolle webwinkel te kunnen draaien. Als je bijvoorbeeld de “Woo Subscriptions” plugin gebruikt dan komt de “AutomateWoo” plugin vaak ook wel van pas.
- Woo Subscriptions → $ 279 per jaar
https://woo.com/products/woocommerce-subscriptions/ - AutomateWoo → $ 159 per jaar
https://woo.com/products/automatewoo/
En zo kan het qua licenties voor plugins al snel optellen tot een aanzienlijk maand/jaarbedrag. Voor degenen die voor de keuze staan tussen bijvoorbeeld WooCommerce en Shopify kan dat wel iets zijn om rekening mee te houden.
Een aantal maanden geleden kwam ik op het idee om per WooCommerce-bestelling de ‘referrer’ bij te gaan houden. Op die manier zou ik per bestelling kunnen bekijken vanaf welke website de koper op mijn webwinkel is gekomen en vervolgens een bestelling heeft geplaatst. Voor dit idee heb ik uiteindelijk de experimentele plugin “Pronamic Order Referrer for WooCommerce” geschreven. En nu lijkt het er op dat WooCommerce een vergelijkbare functionaliteit heeft geïntroduceerd. Toevallig zag ik vorige week namelijk een bericht van James Kemp, een WooCommerce productleider, op X over een nieuwe ‘order attribution tracking’ functionaliteit in WooCommerce:
Meer informatie over WooCommerce order attribution tracking is te lezen op: https://woo.com/document/order-attribution-tracking/ 🎉. Deze functionaliteit is toegevoegd vanaf WooCommerce versie 8.5.0, gelanceerd op dinsdag 9 januari 2024. Het originele ‘pull request’ voor het toevoegen van deze functionaliteit dateert al vanaf 12 augustus 2023: https://github.com/woocommerce/woocommerce/pull/39701.
Omdat we bij Pronamic betaaloplossingen ontwikkelen voor payment providers zoals Mollie, Buckaroo, Pay.nl, etc. zijn we vaak partner van deze organisaties. In sommige gevallen krijgen we commissie voor succesvolle betalingen die via de Pronamic Pay plugin zijn opgestart. De payment providers betalen ons maandelijks of per kwartaal de opgebouwde commissie uit. Voor de boekhouding ontvangen we dan vaak een zogenaamde self-billing factuur. Waar voorheen nog wel eens creditnota’s werden verstuurd lijken de payment providers nu over te stappen naar self-billing facturen. Ik was tot vandaag niet heel bewust van dit concept. In dit bericht wat meer informatie over het self-billing principe.
WordPress en PHP Exception
Binnen WordPress core wordt nog niet heel veel gebruik gemaakt van PHP Exceptions. In plaats daarvan wordt er veel gebruik gemaakt van de WP_Error class. Binnen de populaire webwinkel plugin WooCommerce is de overstap naar PHP Exceptions echter al wel gemaakt. Afgelopen maanden zijn we ook binnen de Pronamic Pay plugin de overstap naar PHP Exceptions aan het maken. In het artikel “Modern WordPress Development: You should throw an exception when you encounter a WP_Error” zijn enkele argumenten te vinden voor PHP Exceptions. Ook vond ik de Stack Overflow vraag “Best practices: Use of @throws in php-doc, and how it could be handle” en antwoorden interessant om te lezen. Ik denk dat het voor veel WordPress ontwikkelaars interessant is om (meer) gebruik te maken van PHP Exceptions.
In het bericht “WooCommerce ‘Toevoegen aan winkelwagen’ tekst wijzigen” beschrijf ik hoe binnen WooCommerce de ‘Toevoegen aan winkelwagen’ tekst gewijzigd kan worden. Helaas heeft WooThemes in versie 2.1 van de WooCommerce plugin wijzigingen doorgevoerd waardoor deze oplossing niet meer werkt.
Vanaf WooCommerce 2.1 is namelijk de ‘add_to_cart_text’ filter verwijderd:
https://github.com/woothemes/woocommerce/blob/v2.0.20/templates/loop/add-to-cart.php#L46
In plaats daarvan is er in WooCommerce 2.1 de ‘woocommerce_product_single_add_to_cart_text’ filter:
https://github.com/woothemes/woocommerce/blob/v2.1.0/includes/abstracts/abstract-wc-product.php#L449
function prefix_add_to_cart_text( $text ) {
$text = __( 'Add', 'text_domain' );
return $text;
}
add_filter( 'woocommerce_product_single_add_to_cart_text', 'prefix_add_to_cart_text' );
Bovenstaande code kan toegevoegd worden aan het WordPress functies thema bestand (functions.php). Vaak kan de code zonder problemen aan het eind van dit bestand toegevoegd worden. Als je niet werkt met een maatwerk thema dan kan het overigens handig zijn om deze toevoeging binnen een child thema of plugin te definiëren. Op die manier kun je zonder problemen je thema blijven bijwerken.
| Tekst | Filter | GitHub |
|---|---|---|
| Add to cart | woocommerce_product_single_add_to_cart_text | GitHub |
| Read more | woocommerce_product_add_to_cart_text | GitHub |
Een aantal WordPress gebruikers die met WooCommerce een webwinkel hebben opgezet en een iDEAL Basic aansluiting hebben zullen opgemerkt hebben dat betaalde bestellingen soms automatisch geannuleerd worden. Dit wordt veroorzaakt een automatisch systeem van WooCommerce die bestellingen met de status ‘in afwachting’ (pending) na een bepaalde tijd annuleert.
De WooCommerce ‘woocommerce_cancel_unpaid_orders()‘ functie regelt het annuleren van bestellingen met de status ‘in afwachting’. De werking van deze functie is te beïnvloeden met 2 instellingen, namelijk de ‘Voorraadbeheer’ (Manage Stock) en ‘Voorraad behouden (minuten)’ (Hold Stock (minutes)) instellingen. Op het moment dat voorraadbeheer is ingeschakeld en het aantal minuten van het vasthouden van de voorraad groter is dan 0 zullen bestellingen de status ‘in afwachting’ automatisch geannuleerd worden.
In principe zou een succesvolle iDEAL-betaling er direct voor moeten zorgen dat de WooCommerce bestellingstatus wordt bijgewerkt van ‘in afwachting’ (pending) naar ‘in verwerking’ (processing). In het geval van iDEAL Basic gebeurd dit echter niet als bezoekers vanuit iDEAL niet terug keren naar de webwinkel. WooCommerce gebruikers die werken met de iDEAL Basic variant adviseer ik daarom om de “Voorraad behouden (minuten)” instelling uit te schakelen.
Voorraad behouden (voor onbetaalde bestellingen) voor x minuten. Wanneer deze limiet is bereikt zal de in afwachting bestelling geannuleerd worden. Laat leeg om uit te schakelen.
Het is immers niet netjes als klanten na een succesvolle iDEAL-betaling een uur later de melding krijgen dat de bestelling is geannuleerd.
WooCommerce ‘Sale!’ tekst wijzigen
In het bericht “WooCommerce ‘Toevoegen aan winkelwagen’ tekst wijzigen” beschreef ik al hoe de “Toevoegen aan winkelwagen” tekst gewijzigd kan worden. In dit bericht is te lezen hoe de “Sale!” tekst gewijzigd kan worden.
De WooCommerce ontwikkelaars passen de filter ‘woocommerce_sale_flash’ toe op de “Sale!” tekst waardoor deze eenvoudig is aan te passen. In onderstaande code fragment is te zien hoe dit gerealiseerd kan worden:
Bovenstaande code kan toegevoegd worden aan het WordPress functies thema bestand (functions.php). Vaak kan de code zonder problemen aan het eind van dit bestand toegevoegd worden. Als je niet werkt met een maatwerk thema dan kan het overigens handig zijn om deze toevoeging binnen een child thema of plugin te definiëren. Op die manier kun je zonder problemen je thema blijven updaten.
WooCommerce LESS compile fout
Onlangs werden we bij Pronamic benaderd door een WooCommerce gebruiker die na een WooCommerce update van 2.0.12 naar 2.0.14 de volgende foutmelding te zien kreeg:
Kon woocommerce.less niet compileren: expected color value: failed at `color:fade( desaturate( @highlight, 75% ), 50% );` /wp-content/plugins/woocommerce/assets/css/woocommerce.less on line 181
Na een lange zoektocht kwamen we bij de WooCommerce ‘woocommerce_compile_less_styles’ functie terecht:
https://github.com/woothemes/woocommerce/blob/v2.0.14/admin/woocommerce-admin-functions.php#L415
Deze functie moet LESS omzetten naar CSS, maar daar ging blijkbaar iets fout met de ‘highlight’ kleur.
Na wat debug werk kwamen we er achter dat $colors variabele als volgt was gevuld:
array 'primary' => string '#9D3ED5' (length=7) 'secondary' => string '#EF7425' (length=7) 'highlight' => string '#cccc' (length=5) 'content_bg' => string '#ffffff' (length=7) 'subtext' => string '#777777' (length=7)
De ‘highlight’ kleur bevatte een ongeldig kleur waarde ‘#cccc’, hier ontbraken twee tekens. Door de hightlight kleur even tijdelijke in te programmeren kon dit probleem opgelost worden:
$colors['highlight'] = '#CCCCCC';
Vervolgens konden we via de WordPress admin omgeving en WooCommerce instellingen pagina de foutieve kleur corrigeren.


