Categorieën
WooCommerce

Van WooCommerce naar Woo en terug

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ën
E-commerce Gravity Forms iDEAL WooCommerce WordPress

Hoe kan ik Mollie koppelen aan WordPress of 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.

Categorieën
PHP WordPress

Namespace in WordPress filter/action hooks

In februari stuitte ik op een bericht van Tanner Record waarin hij het gebruik van slashes in WordPress filter- en action-hooks voorstelde. Hij suggereert bijvoorbeeld de volgende conventie te volgen:

apply_filters( '{prefix}/{plugin}/{hook-name}', $data );

Gebruik in populaire WordPress plugins

Ik was een vergelijkbare notatie al wel tegen gekomen in populaire plugins zoals “Query Monitor” en “Advanced Custom Fields”:

Query Monitor

// Start the 'foo' timer:
do_action( 'qm/start', 'foo' );

// Run some code
my_potentially_slow_function();

// Stop the 'foo' timer:
do_action( 'qm/stop', 'foo' );

https://querymonitor.com/wordpress-debugging/profiling-and-logging

Advanced Custom Fields

add_action('acf/init', 'my_acf_init');

function my_acf_init() {
    // Get ACF version.
    $version = acf_get_setting('version');

    // Do something.  
}

Andere plugins

Mijn collega Reüel kwam nog met een reguliere expressie Github-zoekopdracht om het gebruik van deze notatie op te speuren in GitHub-repositories:

/do_action(\s['"]\w+\/\w+['"]\s(,.*?))/ language:PHP

Op basis hiervan heb ik al wel eens overwogen om een vergelijkbare notatie te introduceren in Pronamic-plugins. In de reacties op het bericht van Tanner worden echter ook een aantal nadelen genoemd.

Waarschuwing door “WordPress Coding Standards for PHP_CodeSniffer”

Bij het gebruik van de volgende notatie zal de “WordPress Coding Standards for PHP_CodeSniffer” bibliotheek een waarschuwing geven:

do_action( 'pronamic/plugin/init' );
Words in hook names should be separated using underscores. Expected: 'pronamic_plugin_init', but found: 'pronamic/plugin/init'.

De WordPress.NamingConventions.ValidHookName.UseUnderscores sniff waarschuwt hierover:

https://github.com/WordPress/WordPress-Coding-Standards/blob/29488feb64b723674fe463e691a4f83682c2dd5e/WordPress/Sniffs/NamingConventions/ValidHookNameSniff.php#L31

In de “Coding Standards Handbook” staat namelijk het volgende vermeld:

Use lowercase letters in variable, action/filter, and function names (never camelCase). Separate words via underscores.

https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/#naming-conventions

Nou is het prima mogelijk om af te wijken van de “WordPress Coding Standards”. Bij Pronamic hanteren we ook een eigen standaard, die op een paar punten afwijken van de “WordPress Coding Standards”: https://github.com/pronamic/wp-coding-standards.

Lastiger te selecteren en kopieren

Bij het dubbel klikken op een tekst zoals pronamic_plugin_init zal direct de hele tekst geselecteerd worden. Bij het dubbel klikken op de tekst pronamic/plugin/init zal alleen een deel tussen de slashes geselecteerd worden. Dit maakt het dat ik voor nu nog de pronamic_plugin_init notatie zal aanhouden.

Categorieën
Geen categorie

Afstappen van Google Authenticator

Als trouwe gebruiker van Google Authenticator heb ik gemerkt dat de app, naarmate ik meer codes toevoeg voor verschillende diensten, steeds minder handig wordt. Het vinden van de juiste code wordt een steeds grotere uitdaging. Daarom ben ik gaan onderzoeken of er alternatieve apps zijn die misschien handiger zijn in gebruik.

Een vraag die bij me opkwam was: hoe kan ik mijn bestaande codes uit Google Authenticator halen? Gelukkig heeft Google in mei 2020 een functie geïntroduceerd waarmee het overzetten van codes naar een ander apparaat mogelijk is. Voor deze overdracht genereert de Google Authenticator app een QR-code (of meerdere) waarin meerdere authenticator-codes zijn gecodeerd. Met een andere Google Authenticator app is het mogelijk om deze QR-code te scannen en zo de codes over te zetten.

Na een korte zoektocht stuitte ik op de volgende bibliotheek op GitHub: dim13/otpauth. Deze bibliotheek is in staat om de gegevens van de QR-code voor het overzetten van Google Authenticator uit te lezen. Met behulp van de volgende stappen kunnen de authenticator-codes van Google Authenticator geëxporteerd worden:

  1. Maak een schermafbeelding van de Google Authenticator overzetten QR-code.
  2. Scan de schermafbeelding met de QR-code scanner functionaliteit van je telefoon.
    • Dit kan eventueel ook via CLI op je computer met bijvoorbeeld de mchehab/zbar-bibliotheek: zbarimg qrcode.jpeg.
  3. Kopieer de volledig tekst uit de QR-code.
    • Deze tekst begint met otpauth-migration://offline?data=….
  4. Gebruik de https://github.com/dim13/otpauth tool via het volgende commando:
    ~/go/bin/otpauth -link "~/go/bin/otpauth -link "otpauth-migration://offline?data=…"

De bibliotheek is ook in staat om nieuwe authenticator-QR-codes te genereren via de -qr-parameter. Deze zijn vervolgens weer te scannen met een andere authenticator app.

Categorieën
iDEAL

Currence publiceert iDEAL-tarieven voor licentiehouders, certificaathouders en geaccrediteerde partijen

Via Google Alerts werd ik geattendeerd op de volgende webpagina: https://ideal.nl/ideal-tarieven. Op deze pagina zijn de iDEAL-tarieven die Currence rekent aan licentiehouders, certificaathouders en geaccrediteerde partijen. Opvallend vond ik dat Currence een extra vergoeding rekent voor het insturen van de bankkeuze (issuer_id) van kopers. In het nieuwe iDEAL 2.0 komt dit te vervallen en blijkbaar rekent Currence er maar een extra vergoeding voor. Waarschijnlijk om grote payment providers zoals Buckaroo, Mollie, Pay·, etc. te stimuleren om de bankkeuze niet langer aan te bieden op hun betaalpagina’s.

Categorieën
iDEAL

Aantal iDEAL-transacties en totaal bedragen volgens het CBS t/m februari 2024

Het Centraal Bureau voor de Statistiek (CBS) publiceerde op 28 maart 2024 weer een tabel met betalingstransacties naar betaalmethode per maand. In het bericht “Betalingstransacties naar betaalmethode, aantallen en bedragen per maand” kan het Excel-document met de details gedownload worden. Voor iDEAL staat het er als volgt voor.

201920202021202220232024

aantalaantalaantalaantalaantalaantal

× 1000× 1000× 1000× 1000× 1000× 1000






Januari52.30063.70096.800101.660109.408120.200
Februari45.90058.20088.30088.25198.685110.690
Maart50.60062.80096.900100.206111.149
April50.40069.40093.50098.168108.449
Mei56.80075.80096.000106.171117.559
Juni56.10076.20095.800104.643115.533
Juli56.90077.70092.600103.210116.945
Augustus54.10074.80089.20097.744109.665
September56.80073.70089.200100.779111.175
Oktober59.70081.10096.100105.855118.212
November62.70084.100101.100112.556
December64.50092.900107.313113.507
Aantal betalingstransacties met iDEAL per maand
201920202021202220232024

mln euromln euromln euromln euromln euromln euro






Januari4.2945.4918.2579.64010.45712.180
Februari3.5294.7047.5287.5828.72910.440
Maart3.9525.8198.3238.67710.158
April4.0015.0128.3638.3369.120
Mei4.6605.4439.1379.58610.755
Juni4.4215.6828.1179.23910.909
Juli4.5405.8267.5548.77710.531
Augustus4.2715.3797.4278.4109.928
September4.4295.3537.3978.4629.468
Oktober4.5675.8477.9188.80710.810
November4.8746.7128.9679.581
December5.8178.1819.06010.233
Totaal bedrag betalingstransacties met iDEAL per maand

Daarmee lijkt januari 2024 in de boeken te gaan als de meest succesvolle maand voor de iDEAL-betaalmethode. In totaal ruim 120.200.000 iDEAL-transacties met een totaalbedrag van € 12.180.000.000, dat is een gemiddelde van ~ € 101,33 per iDEAL-transactie.

Categorieën
WordPress

Website vertalen, meer verkoop?

Een website in meerdere talen: een uitdaging voor websitebouwers en klanten. De verleiding van een meertalige website is groot. Klanten hopen op een eenvoudige manier hun doelgroep in verschillende landen te kunnen bedienen. Maar is het opzetten van een meertalige website wel zo eenvoudig? Technisch gezien zijn er verschillende oplossingen beschikbaar. Plugins zoals WPML, MultilingualPress, TranslatePress, GTranslate, Polylang, etc. beloven een eenvoudige vertaling van je website. Maar schijn bedriegt. In de praktijk blijken deze plugins vaak wel complex of te buggy te zijn. Bij Pronamic zetten we een meertalige WordPress website vaak op met behulp van een WordPress multisite. Deze constructie biedt meer flexibiliteit en controle, en is minder gevoelig voor technische problemen. Toch is een WordPress multisite niet voor elke klant de juiste oplossing. Bepaalde klanten willen namelijk zo weinig mogelijk werk hebben van de vertalingen. Er lijkt wat dat betreft soms ook wat te makkelijk gedacht te worden over het opzetten van een website in meerdere talen. Zo zette het volgende bericht van Mark Zahra op X me ook aan het nadenken:

Who here has added translations to their digital product website and seen a resultant increase in sales? 🧐

Mark Zahra / RebelCode

Helaas werd er niet heel veel op gereageerd, maar Rogier Lankhorst van Really Simple Plugins (o.a. de maker van de Complianz GDPR/CCPA plugin) liet het volgende weten:

We tried it once on Complianz, with German, as a lot of customers are from Germany. It didn’t increase sales, but cost a lot of work to keep up to date. We dropped it after a while.

Rogier Lankhorst / Really Simple Plugins

Rogier noemt in een vervolgreactie ook dat automatische (slechte) vertalingen er ook voor kunnen zorgen dat je vertrouwen verliest. Nou ben ik zelf niet heel fanatiek bezig marketingwerkzaamheden, maar zie ik wel ook steeds vaker de term E-E-A-T (Experience, Expertise, Authoritativeness, and Trust) voor bij komen. Op basis daarvan kun je je misschien wel afvragen hoe slim het is om je website (geautomatiseerd) in meerdere talen aan te bieden. Kan een (automatische) vertaalde website in het Duits er voor zorgen dat je vertrouwen verliest waardoor ook je Nederlandse en/of Engelse website minder goed gaat scoren? En zorgt zo’n Duitse website wel daadwerkelijk voor meer verkoop? Of kun je met een een goede Engelse website hetzelfde resultaat behalen?

Categorieën
Geen categorie

Het werk is nooit alleen ‘het werk’

Inmiddels ben ik al ruim 20 jaar bezig met het ontwikkelen van websites en webapplicaties. Daarmee heb ik ook wel wat ervaring opgedaan in het maken van ureninschattingen. Toch blijkt het nog wel eens lastig om een juiste ureninschatting te maken. Zo maakte een collega recent de inschatting dat iets 5 à 6 uren aan tijd zou kosten om te ontwikkelen. Uiteindelijk bleken er heel wat meer uren nodig te zijn om het gewenste resultaat te ontwikkelen. De opdrachtgever vroeg zich natuurlijk af hoe dit kwam. Bepaalde onderdelen bleken aanzienlijk lastiger dan vooraf voorzien. Kort hierna kwam ik ook het volgende bericht tegen op X:

Webontwikkelaar Dave Stewart heeft hier een interessant artikel over geschreven: “The work is never just “the work”“. De volgende afbeelding geeft aan hoe het in de praktijk kan gaan:

Categorieën
E-commerce WooCommerce WordPress

WooCommerce: meer betalen en meer issues

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.

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.

Categorieën
Geen categorie

Consistente personen in Midjourney

Afgelopen maandag schreef ik in het bericht “Kunstmatige intelligentie (AI) inzetten voor generen foto’s” nog over ‘character consistency’ bij het generen van van afbeeldingen met AI. Gisteren ging het op X los over de nieuwe ‘karakterconsistentie’ functionaliteit binnen Midjourney. Via de parameter --cref gevolgd door een link (URL) naar een afbeelding van een karakter/persoon kan Midjourney deze karakter/persoon verwerken in de te genereren afbeeldingen. De --cref staat in dit geval voor ‘Character Reference’. Vergelijkbaar met de --sref parameter die staat voor ‘Style Reference’.