<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pronamic</title>
	<atom:link href="https://www.pronamic.nl/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.pronamic.nl/</link>
	<description>Internet, marketing &#38; WordPress experts</description>
	<lastBuildDate>Fri, 09 Jun 2023 07:34:54 +0000</lastBuildDate>
	<language>nl-NL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
<site xmlns="com-wordpress:feed-additions:1">30420954</site>	<item>
		<title>Verbeterde integratie met Visma EasyCruit voor WordPress</title>
		<link>https://www.pronamic.nl/2023/02/verbeterde-integratie-met-visma-easycruit-voor-wordpress/</link>
		
		<dc:creator><![CDATA[Leo]]></dc:creator>
		<pubDate>Mon, 20 Feb 2023 09:52:57 +0000</pubDate>
				<category><![CDATA[Algemeen]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=29498</guid>

					<description><![CDATA[Veel organisaties zijn op zoek naar personeel die vaak moeilijk te vinden is. Oorzaak hiervan is dat de werkloosheid in Nederland in jaren niet zo laag is geweest. Zogenaamde ‘werken bij’ websites schieten dan ook als paddenstoelen uit de grond.… <a href="https://www.pronamic.nl/2023/02/verbeterde-integratie-met-visma-easycruit-voor-wordpress/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Veel organisaties zijn op zoek naar personeel die vaak moeilijk te vinden is. Oorzaak hiervan is dat de werkloosheid in Nederland in jaren niet zo laag is geweest. Zogenaamde ‘werken bij’ websites schieten dan ook als paddenstoelen uit de grond. Veel Human Resource afdelingen maken gebruik van recruitmentsoftware zoals EasyCruit. Pronamic verbetert de synchronisatie met de 2.0 versie van <a href="https://www.pronamic.nl/wordpress/plugins/easycruit-voor-wordpress/">Pronamic Visma EasyCruit</a> plugin. Zodat deze o.a. beter integreert met de blok-editor van WordPress. In dit bericht beschrijven we de belangrijkste wijzigingen.</p>



<h2 class="wp-block-heading" id="h-ingebouwde-berichttype-voor-vacatures">Ingebouwde berichttype voor vacatures</h2>



<p class="wp-block-paragraph">Vanaf versie 2.0 is een ‘Vacatures’ berichttype ingebouwd in de plugin, net als de bijhorende taxonomieën. Dit is de eenvoudigste manier om jouw vacatures op een website te publiceren! Bij de instellingen van de plugin kun je aangeven welk berichttype je wilt gebruiken voor je vacatures. Je kunt dus ook een eigen berichttype gebruiken. </p>



<p class="wp-block-paragraph">Een ‘taxonomie’ is een ‘categorie’ type, waarmee je je vacatures kunt onderverdelen. Denk bijvoorbeeld aan ‘Locaties’ of ‘Werkgebieden’ of ‘Werkniveaus’. Veel van deze EasyCruit categorieën soorten kun je optioneel synchroniseren naar WordPress taxonomieën voor als je deze nodig hebt.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="620" height="386" src="https://www.pronamic.nl/wp-content/uploads/2023/02/Ingebouwde-Vacature-berichttype-620x386.png" alt="WordPress Visma EasyCruit: Ingebouwde Vacature berichttype" class="wp-image-29502" srcset="https://www.pronamic.nl/wp-content/uploads/2023/02/Ingebouwde-Vacature-berichttype-620x386.png 620w, https://www.pronamic.nl/wp-content/uploads/2023/02/Ingebouwde-Vacature-berichttype-300x187.png 300w, https://www.pronamic.nl/wp-content/uploads/2023/02/Ingebouwde-Vacature-berichttype-768x479.png 768w, https://www.pronamic.nl/wp-content/uploads/2023/02/Ingebouwde-Vacature-berichttype-320x199.png 320w, https://www.pronamic.nl/wp-content/uploads/2023/02/Ingebouwde-Vacature-berichttype-770x480.png 770w, https://www.pronamic.nl/wp-content/uploads/2023/02/Ingebouwde-Vacature-berichttype.png 1454w" sizes="(max-width: 620px) 100vw, 620px" /></figure>
</div>


<h2 class="wp-block-heading">Integratie met Yoast SEO</h2>



<p class="wp-block-paragraph">Maak je gebruik van de plugin Yoast SEO, dan voegt de EasyCruit plugin nu de schema.org/JobPosting data toe aan de gestructureerde data opmaak van Yoast. Gestructureerde data via de Schema.org standaard zorgt er voor dat computers, zoals zoekmachines van Google en Bing, beter begrijpen waar een pagina/bericht over gaat. Zo kan Google bijvoorbeeld vacatures apart uitlichten en deze opnemen in haar Google Jobs zoekmachine.</p>



<h2 class="wp-block-heading">Gutenberg blok voor EasyCruit vacature omschrijving</h2>



<p class="wp-block-paragraph">De plugin is nu voorzien van een Gutenberg blok voor de WordPress blok-editor. Hiermee kun je de beschrijving van een vacature nu plaatsen op iedere gewenste plek binnen een vacature. Daarbij houden we rekening met de mogelijkheid om de tekst op de website te kunnen aanpassen. Daarna wordt deze tekst namelijk niet meer meegenomen in de synchronisatie met EasyCruit. Zo heb je altijd de teksten op je website die je wilt.</p>



<h2 class="wp-block-heading">Update nu naar Pronamic Visma EasyCruit 2.0 plugin voor WordPress</h2>



<p class="wp-block-paragraph">Wil je gebruik maken van de beste integratie voor EasyCruit met WordPress. Schaf de plugin aan via <a href="https://www.pronamic.shop/product/pronamic-visma-easycruit/">pronamic.shop</a> en start met het aanbieden van vacatures op jouw website vanuit de EasyCruit recruitmentsoftware! Heb je de plugin reeds aangeschaft, dan kan je de nieuwste versie downloaden in jouw Pronamic account.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">29498</post-id>	</item>
		<item>
		<title>Betalen in andere valuta’s met behulp van Multicurrency</title>
		<link>https://www.pronamic.nl/2019/10/betalen-in-andere-valutas-met-behulp-van-multicurrency/</link>
					<comments>https://www.pronamic.nl/2019/10/betalen-in-andere-valutas-met-behulp-van-multicurrency/#comments</comments>
		
		<dc:creator><![CDATA[Erwin]]></dc:creator>
		<pubDate>Tue, 22 Oct 2019 14:46:11 +0000</pubDate>
				<category><![CDATA[Algemeen]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=27584</guid>

					<description><![CDATA[Steeds meer mensen kopen hun producten online en het komt steeds meer voor dat deze producten gekocht worden in een buitenlandse webshop. Het kan dan ook zomaar zijn dat jouw webshop internationale klanten heeft. Met behulp van Multicurrency kun je… <a href="https://www.pronamic.nl/2019/10/betalen-in-andere-valutas-met-behulp-van-multicurrency/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Steeds meer mensen kopen hun producten online en het komt steeds meer voor dat deze producten gekocht worden in een buitenlandse webshop. Het kan dan ook zomaar zijn dat jouw webshop internationale klanten heeft. Met behulp van Multicurrency kun je ervoor zorgen dat deze klanten producten kunnen afrekenen in de voor hen bekende valuta.</strong></p>



<p class="wp-block-paragraph">Als je internationale klanten hebt is het verstandig om een buitenlandse of internationale betaalmethode aan te bieden, bijvoorbeeld PayPal of creditcard. Doordat de internationale markt echter steeds verder groeit, is het aanbieden van meerdere betaalmethoden niet meer voldoende. Om het aantal verkopen in de webshop te verhogen, dien je je klanten de mogelijkheid te geven om af te rekenen in de eigen valuta. Dit geeft ze een gevoel van vertrouwen waardoor de kans groter is dat ze daadwerkelijk een bestelling plaatsen. Het kunnen afrekenen in meerdere valuta’s, dan bijvoorbeeld alleen de euro, noemen we Multicurrency.</p>



<p class="has-light-background-background-color has-background wp-block-paragraph">Bekijk ook onze oplossing om <a href="https://www.pronamic.eu/plugins/pronamic-pay-paypal-add-on/">PayPal te koppelen aan o.a. WooCommerce</a>.</p>



<h2 class="wp-block-heading" id="hoe-werkt-multicurrency">Hoe werkt Multicurrency?</h2>



<p class="wp-block-paragraph">Wanneer je een webshop hebt of als je op een andere manier betalingen mogelijk maakt op je website, dan worden deze betalingen waarschijnlijk gedaan in euro’s. Met behulp van Multicurrency kan je er voor zorgen dat deze betalingen ook in bijvoorbeeld ponden of dollars gedaan worden. Hiervoor kijkt de betalingsprovider naar de actuele wisselkoersen op het moment dat een betaling opgestart wordt door de klant. Deze wisselkoers wordt vastgehouden tot het moment dat de betaling verwerkt is. Doordat wisselkoersen continu veranderen, is het ontzettend lastig om vast te stellen welke wisselkoers toegepast moet worden op een betaling. Zodra de betaling verwerkt is, ontvang je in het dashboard van de betalingsprovider een overzicht met daarin het bedrag dat jij ontvangt in euro’s en het bedrag in de ‘vreemde’ valuta.</p>



<p class="wp-block-paragraph">Het is het op dit moment alleen mogelijk om Multicurrency in te zetten als je Mollie gebruikt als betalingsprovider. Het kunnen aanbieden van meerdere valuta’s is opgenomen in de V2 API van Mollie. Momenteel worden er meer dan 25 verschillende valuta’s ondersteund. Bekijk de <a href="https://docs.mollie.com/payments/multicurrency">documentatie van Mollie</a> voor een overzicht van de valuta&#8217;s en welke betaalmethode je per valuta kunt gebruiken.</p>



<h2 class="wp-block-heading" id="gebruik-maken-van-meerdere-valuta">Gebruik maken van meerdere valuta</h2>



<p class="wp-block-paragraph">Je kunt op twee manieren gebruik maken van Multicurrency op je website. Zo kun je klanten laten betalen in één vaste valuta, bijvoorbeeld in dollars. Dit kan meestal ingesteld worden binnen de algemene instellingen van de plugin die je gebruikt. Wanneer je bijvoorbeeld gebruik maakt van een WordPress multisite constructie, kun je de valuta op de Engelse website instellen op ponden en voor de Nederlandse website kun je dan kiezen voor euro’s.</p>



<p class="wp-block-paragraph">Naast het aanbieden van één vaste valuta, kun je de klant ook zelf laten kiezen in welke valuta hij wil afrekenen. De valuta stel je standaard in op bijvoorbeeld de euro en met behulp van een extra plugin geef je je klanten de optie om te betalingen in dollars of ponden te doen, aan de hand van een zogeheten ‘currency switcher’. Voorbeelden van plugins hiervoor zijn ‘<a href="https://gravityplus.pro/gravity-forms-multi-currency-selector/" target="_blank" rel="noreferrer noopener" aria-label=" (opent in een nieuwe tab)">Multi Currency Selector’</a> voor Gravity Forms en ‘<a href="https://nl.wordpress.org/plugins/woo-multi-currency/" target="_blank" rel="noreferrer noopener" aria-label="Multi Currency for WooCommerce (opent in een nieuwe tab)">Multi Currency for WooCommerce</a>’ voor WooCommerce.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pronamic.nl/2019/10/betalen-in-andere-valutas-met-behulp-van-multicurrency/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">27584</post-id><enclosure url="https://www.pronamic.nl/wp-content/uploads/2019/10/Betalen-in-andere-valuta’s-met-behulp-van-Multicurrency-1-620x288.jpg" type="image/jpeg" />	</item>
		<item>
		<title>Strong Customer Authentication, wat houdt het in?</title>
		<link>https://www.pronamic.nl/2019/10/strong-customer-authentication-wat-houdt-het-in/</link>
		
		<dc:creator><![CDATA[Erwin]]></dc:creator>
		<pubDate>Tue, 01 Oct 2019 08:00:00 +0000</pubDate>
				<category><![CDATA[Algemeen]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[iDEAL]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=27349</guid>

					<description><![CDATA[Sinds 14 september is de tweede Payment Service Directive (PSD2) van kracht, een Europese wetgeving met als doel om betalingen makkelijker en veiliger te maken. Onderdeel van deze wetgeving is de Strong Customer Authentication (SCA): een twee factor authenticatie waarmee… <a href="https://www.pronamic.nl/2019/10/strong-customer-authentication-wat-houdt-het-in/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Sinds 14 september is de tweede Payment Service Directive (PSD2) van kracht, een Europese wetgeving met als doel om betalingen makkelijker en veiliger te maken. Onderdeel van deze wetgeving is de Strong Customer Authentication (SCA): een twee factor authenticatie waarmee gebruikers beter beschermd worden tegen online fraude.</strong></p>



<p class="wp-block-paragraph">Tot voor de invoering van deze nieuwe wetgeving was het relatief eenvoudig om een online betaling te doen. Wanneer je bijvoorbeeld ging betalen met creditcard was het voldoende om de gegevens van je creditcard in te voeren en kon je afrekenen. Met het ingaan van de Strong Customer Authentication is dit veranderd en moet je gebruik maken van een tweede authenticatiemiddel. Het alleen invoeren van de creditcard gegevens is dus niet meer voldoende. De SCA heeft verplicht dat in ieder geval twee van de volgende drie manieren geverifieerd moet worden bij een betaling:</p>



<ul class="wp-block-list"><li>Iets dat je weet, bijvoorbeeld een wachtwoord of pincode.</li><li>Iets dat je hebt, bijvoorbeeld een telefoon.</li><li>Iets dat je bent, bijvoorbeeld een vingerafdruk of gezichtsherkenning.</li></ul>



<p class="wp-block-paragraph">Een goed voorbeeld van wanneer je voldoet aan de SCA is een betaling met je mobiel. De mobiel is het eerste authenticatiemiddel (iets dat je hebt) en aan de hand van een pincode (iets dat je weet) of je vingerafdruk (iets dat je bent) kun je het tweede authenticatiemiddel toepassen.&nbsp;</p>



<p class="wp-block-paragraph">Belangrijk om te weten is dat al veel betaalmethoden gebruik maken van een twee factor authenticatie en zo dus voldoen aan de Strong Customer Authentication. Ook de overgrote meerderheid van de betaalmethodes, via de verschillende betalingsproviders, die door de Pronamic Pay plugin ondersteunt worden voldoen al aan deze regelgeving. Zo maakt Rabobank gebruik van de Rabo Scanner als tweede authenticatiemiddel en kun je bij de betaalmethode iDEAL QR je mobiel als tweede middel inzetten.</p>



<h2 class="wp-block-heading"><strong>Er zijn uitzonderingen</strong></h2>



<p class="wp-block-paragraph">Als gevolg van de invoering van de Strong Customer Authentication moet je als gebruiker een extra stap doorlopen alvorens je de betaling kunt verrichten. Om te voorkomen dat betalingen hierdoor voortijdig beëindigd worden heeft SCA een aantal uitzonderingen gemaakt. Een tweede authenticatiemiddel is bijvoorbeeld niet vereist wanneer het totaal af te rekenen bedrag onder de € 30 ligt. Wanneer er echter meer dan vijf betalingen worden gedaan en het totaalbedrag daardoor boven de € 100 uitkomt, dien je wel te voldoen aan de SCA. Ook voor terugkerende betalingen van hetzelfde bedrag, aan dezelfde organisatie, is het geen verplichting om te voldoen aan de nieuwe wetgeving. Voor je abonnement op Netflix is dus geen tweede verificatiemiddel nodig.<br></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">27349</post-id><enclosure url="https://www.pronamic.nl/wp-content/uploads/2019/09/PSD2-620x288.jpg" type="image/jpeg" />	</item>
		<item>
		<title>WordPress en (gratis) Google Maps alternatieven</title>
		<link>https://www.pronamic.nl/2019/06/wordpress-en-gratis-google-maps-alternatieven/</link>
		
		<dc:creator><![CDATA[Remco]]></dc:creator>
		<pubDate>Mon, 24 Jun 2019 07:41:05 +0000</pubDate>
				<category><![CDATA[Ontwikkeling]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=26374</guid>

					<description><![CDATA[Vanaf 11 juni 2018 is het verplicht om voor het gebruik maken van de Google Maps API een factureringsaccount te koppelen aan je Google Cloud Platform project. In de praktijk komt het er op neer dat je een creditcard koppelt… <a href="https://www.pronamic.nl/2019/06/wordpress-en-gratis-google-maps-alternatieven/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Vanaf 11 juni 2018 is het verplicht om voor het gebruik maken van de Google Maps API een factureringsaccount te koppelen aan je Google Cloud Platform project. In de praktijk komt het er op neer dat je een creditcard koppelt zodat Google bij het overschrijven van bepaalde limieten kosten in rekening kan brengen. Voor veel website beheerders is dit wat te veel van het goede. Gelukkig zijn er nog wel alternatieven beschikbaar, in dit blog bericht een overzichtje.</p>



<h2 class="wp-block-heading">Google Maps <code>&lt;iframe&gt;</code></h2>



<p class="wp-block-paragraph">De eenvoudigste methode om een Google Maps kaart op je website te zetten is via een <code>&lt;iframe&gt;</code>. Via&nbsp;<a rel="noreferrer noopener" href="https://www.google.nl/maps" target="_blank">https://www.google.nl/maps</a>&nbsp;kun je naar de gewenste kaartweergave navigeren en via menu kiezen voor &#8220;Kaart delen of insluiten&#8221;. Vervolgens kun je kiezen voor &#8220;Een kaart insluiten&#8221; en krijg je de <code>&lt;iframe&gt;</code> code te zien. Voor eenvoudige kaarten die gericht zijn op 1 locatie is dit vaak een prima oplossing.</p>



<h2 class="wp-block-heading">Google My Maps</h2>



<p class="wp-block-paragraph">Via <a href="https://www.google.com/mymaps">Google My Maps</a> kun je zelf Google Maps kaarten maken en voorzien van verschillende lagen met markeringen, lijnen en routebeschrijving. Deze kaarten kun je vervolgens delen, maar ook via een <code>&lt;iframe&gt;</code> insluiten binnen je website. Je kunt de kaart ook delen met andere Google Accounts zodat andere personen ook wijzigingen kunnen doorvoeren. Zo kun je bijvoorbeeld als website ontwikkelaar een kaart helemaal klaar zetten voor je klant en je klant later toegang geven. Maar ook is het vaak handig dat binnen één organisatie meerdere personen de mogelijkheid hebben om dergelijke kaarten te beheren.</p>



<h2 class="wp-block-heading">OpenStreetMap</h2>



<p class="wp-block-paragraph"><a href="https://www.openstreetmap.org/">OpenStreetMap</a> heeft net als Google de mogelijk om kaarten via een <code>&lt;iframe&gt;</code> in te sluiten binnen je website. Binnen&nbsp;OpenStreetMap heb je ook de mogelijkheid om kaartweergave te exporteren naar een afbeelding. Je hebt dan geen interactieve kaart, maar je bent niet afhankelijk van de OpenStreetMaps service. Voor een interactieve maatwerk kaart kun je gebruik maken van&nbsp;<a rel="noreferrer noopener" href="https://wiki.openstreetmap.org/wiki/OpenLayers" target="_blank">OpenLayers</a>&nbsp;of Leaflet. En voor geocoderen of decoderen kun je gebruik maken van&nbsp;<a href="https://nominatim.openstreetmap.org/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Nominatim</a>.</p>



<h2 class="wp-block-heading">Leaflet</h2>



<p class="wp-block-paragraph"><a href="https://leafletjs.com/">Leaflet</a> is een opensource JavaScript-bibliotheek voor mobielvriendelijke interactieve kaarten. Het leuke van Leaflet is dat het overweg kan met verschillende kaartservers (ook wel tile-servers). Een kaart wordt vaak opgebouwd met behulp van allerlei kleine afbeeldingen, ook wel tegels (Engels &#8217;tiles&#8217;) genoemd. Binnen Leaflet kun je opgeven vanaf welke &#8217;tile-server&#8217; deze kaart afbeeldingen opgehaald moet worden. Je kunt bijvoorbeeld gebruik maken van OpenStreetMap, MapBox,&nbsp;<a rel="noreferrer noopener" href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>, CARTO, etc. Op de <a href="https://wiki.openstreetmap.org/wiki/Tile_servers">wiki van OpenStreetMap</a>&nbsp;en <a href="http://leaflet-extras.github.io/leaflet-providers/preview/index.html">GitHub pagina van Leaflet</a>&nbsp;staan overzichten van verschillende tile-servers. Via de Leaflet JavaScript-bibliotheek kun je de kaart verder voorzien van verschillende lagen, markeringen, lijnen, etc. Er zijn ook veel <a href="https://leafletjs.com/plugins.html">plugins</a> beschikbaar, o.a. voor bijvoorbeeld geocoderen.</p>



<h2 class="wp-block-heading">Conclusie</h2>



<p class="wp-block-paragraph">Er zijn genoeg mogelijkheden om Google Maps gratis te blijven gebruiken. Mochten de gratis Google Maps opties niet toereikend zijn dan kun je altijd nog gebruik maken van Leaflet en gratis (of gelimiteerde) tile-servers. Mocht je vragen hebben over het gebruik van Google Maps of andere kaartoplossingen binnen WordPress neem dan gerust <a href="https://www.pronamic.nl/contact/">contact</a> met ons op. </p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">26374</post-id>	</item>
		<item>
		<title>Efficiënter designen en ontwikkelen met de juiste kleur variabele namen</title>
		<link>https://www.pronamic.nl/2019/04/efficienter-designen-en-ontwikkelen-met-de-juiste-kleur-variabele-namen/</link>
		
		<dc:creator><![CDATA[Karel-Jan]]></dc:creator>
		<pubDate>Mon, 01 Apr 2019 09:47:19 +0000</pubDate>
				<category><![CDATA[Algemeen]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=25584</guid>

					<description><![CDATA[Variabelen geven structuur aan je Sass-bestanden. Dat geldt ook voor kleurvariabelen. Op deze manier hoef je je kleuren slechts één keer te definiëren en weet je zeker dat je niet allerlei verschillende kleuren gebruikt. Welke naam geef je echter deze… <a href="https://www.pronamic.nl/2019/04/efficienter-designen-en-ontwikkelen-met-de-juiste-kleur-variabele-namen/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Variabelen geven structuur aan je Sass-bestanden. Dat geldt ook voor kleurvariabelen. Op deze manier hoef je je kleuren slechts één keer te definiëren en weet je zeker dat je niet allerlei verschillende kleuren gebruikt. Welke naam geef je echter deze variabelen? Dat is nog niet zo eenvoudig. Je wilt een naamgeving die duidelijk, generiek en schaalbaar is. In deze blog deel ik mijn voorkeur.</p>



<h2 class="wp-block-heading">Kleurnamen in je variabelen</h2>



<p class="wp-block-paragraph">Misschien wel de meest voordehandliggende oplossing, het gebruik van kleurnamen in je variabelen. Denk hierbij aan <code>$red-color</code>, <code>$blue-color</code> en <code>$green-color</code>. In de basis een prima oplossing. Het is echter ook direct de minst schaalbare oplossing.</p>



<p class="wp-block-paragraph">Wat als de rode kleur in een later stadium toch oranje moet worden? De variabele naam <code>$red-color</code> is dan onhandig gekozen. Het zou betekenen dat je de gerelateerde declaraties in alle Sass-bestanden moet aanpassen. Om het ontwikkelproces te versnellen werken we met een eigen starter thema. Dat zou betekenen dat we bij elk project de variabelen namen en declaraties in de Sass-bestanden moeten aanpassen. Onhandig en inefficiënt.</p>



<h2 class="wp-block-heading">Een betere naamgeving&#8230;</h2>



<p class="wp-block-paragraph">Oké, geen kleurnamen in je variabelen. Maar wat dan wel? Een beschrijvende variabele naam zou een goede oplossing kunnen zijn. Dat betekent dat je specifieke kleurvariabelen maakt voor elementen en secties in je thema. Denk hierbij aan:</p>



<ul class="wp-block-list"><li><code>$input-border-color;</code></li><li><code>$body-text-color;</code></li><li><code>$header-background-color;</code></li><li><code>$footer-background-color;</code></li></ul>



<p class="wp-block-paragraph">Een mooie oplossing. Bij grote projecten resulteert dit echter gauw in een overload aan variabelen. Dit komt de beheersbaarheid en schaalbaarheid niet te goede. De kracht van variabelen gaat verloren. Gezien deze naamgeving wel erg handig is, gebruiken we het wel in onze thema&#8217;s. Daarover later meer.</p>



<p class="wp-block-paragraph">Voor onze basiskleuren gebruiken we echter een andere naamgeving. Een naamgeving die niet zozeer beschrijft voor welke element de variabele bedoeld is maar wel generiek ingezet kan worden. Voorheen gebruikten we variabelen namen als <code>$primary-color</code>, <code>$secondary-color</code> en <code>$alternative-color</code>.</p>



<p class="wp-block-paragraph">In de praktijk levert dit echter ook problemen op. Wat als je meer dan 6 verschillende kleuren hebt.  Hoe noem je die dan? Het resultaat is al gauw een inconsistente naamgeving.</p>



<h2 class="wp-block-heading">Keep it simple</h2>



<p class="wp-block-paragraph">Juist, we houden het simpel, een variabele naam waarbij elke extra kleur een opeenvolgend nummer krijgt. Voor zwart en wit maken we een uitzondering aangezien die kleuren altijd hetzelfde zullen zijn. De HEX-codes voor die kleuren zullen nooit wijzigen (<code>#fff</code> voor wit en <code>#000</code> voor zwart).</p>



<ul class="wp-block-list"><li><code>$base-color</code></li><li><code>$black-color</code></li><li><code>$white-color</code></li><li><code>$brand-color</code></li><li><code>$brand-color-2</code></li><li><code>$brand-color-3</code></li><li><code>$brand-color-4</code></li><li>Etc.</li></ul>



<p class="wp-block-paragraph">Het grote voordeel van deze naamgeving is dat we voor elk project exact dezelfde naamgeving gebruiken. Daarnaast hoef je nooit meer na te denken over welke naam je een variabele geeft. Bij het vaker toepassen van deze naamgeving merk je al snel dat het front-end werk sneller gaat.</p>



<h2 class="wp-block-heading">Kleurtinten en transparatie</h2>



<p class="wp-block-paragraph">Voor de kleurtinten en transparante kleuren gebruiken we ook een generieke naamgeving:</p>



<ul class="wp-block-list"><li><code>$brand-alpha-20</code></li><li><code>$brand-alpha-60</code></li><li><code>$brand-alpha-80</code></li><li><code>$brand-2-alpha-20</code></li><li><code>$brand-2-alpha-60</code></li><li><code>$brand-2-alpha-80</code></li></ul>



<p class="wp-block-paragraph">De naamgeving is vrij eenduidig. De basis kleur inclusief een suffix met de mate van transparantie (procentueel). Voor alternatieve tinten van een basiskleur hanteren we de volgende notatie:</p>



<ul class="wp-block-list"><li><code>$black-color-100</code></li><li><code>$black-color-300</code></li><li><code>$black-color-600</code></li><li><code>$black-color-900</code></li></ul>



<p class="wp-block-paragraph">In dit geval bepaald de suffix hoe donker of licht een steunkleur is. Hoe lager het getal hoe lichter de kleur. Je kan dit vergelijken met hoe het <a href="https://www.w3schools.com/cssref/pr_font_weight.asp">font-weight</a> attribuut werkt. Daarnaast wordt deze notatie ook veel gebruikt bij <a href="https://v0.material-ui.com/#/customization/colors">material design</a>. Het grote voordeel van deze naamgeving is dat het direct iets zegt over hoe donker of licht een kleur is. Als je uit gaan van deze naamgeving <code>$light-black-color</code>, <code>$lighter-black-color</code> is het bijvoorbeeld lastig inschatten hoe licht <code>$lighter-black-color</code> is. Als er een nieuwe kleurtint bij komt kan je die ook eenvoudig tussen het bestaande kleurenpallet plaatsen, bijv: <code>$black-color-200</code>.</p>



<h2 class="wp-block-heading">Semantische naamgeving</h2>



<p class="wp-block-paragraph">Ik noemde eerder al even dat een semantische naamgeving voordelen biedt. Het is pas echt krachtig als je het combineert met de eerder genoemde naamgeving. Dat resulteert in een constructie waarbij je eerst de kleuren definieert en dit vervolgens aan specifieke elementen koppelt. Zoals:</p>



<pre class="wp-block-code"><code>$black-color: #000;
$black-color-100: #f9f9f9f;

$section-background-color: $black-color-100;</code></pre>



<h2 class="wp-block-heading">Van design naar ontwikkeling</h2>



<p class="wp-block-paragraph">Onze designs maken we in Sketch. Hierbij maken we ook gebruik van ontwerpsjablonen. Dit bespaart kostbare tijd. In dit sjabloon zitten exact dezelfde kleurvariabelen verwerkt als in de WordPress template. Deze kleurvariabelen zijn verwerkt in <a href="https://sketchapp.com/docs/styling/shared-styles/">Layer Styles</a> (sinds Sketch 52). Dit maakt het mogelijk om met één druk op de knop de kleuren in alle pagina templates aan te passen. Het basis kleurenpallet ziet er als volgt uit:</p>



<figure class="wp-block-image"><img decoding="async" width="620" height="621" src="https://www.pronamic.nl/wp-content/uploads/2019/01/colors-620x621.png" alt="Kleurenpallet in Sketch" class="wp-image-25659" srcset="https://www.pronamic.nl/wp-content/uploads/2019/01/colors-620x621.png 620w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors-100x100.png 100w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors-300x300.png 300w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors-768x769.png 768w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors-360x360.png 360w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors-180x180.png 180w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors-770x771.png 770w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors-385x385.png 385w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors-320x320.png 320w, https://www.pronamic.nl/wp-content/uploads/2019/01/colors.png 937w" sizes="(max-width: 620px) 100vw, 620px" /><figcaption>Kleurenpallet in Sketch.</figcaption></figure>



<p class="wp-block-paragraph">De vertaalslag naar techniek is hierdoor een peuleschil. Een ontwikkelaar ziet in één oogopslag welke kleuren gebruikt worden en welke variabelen daar bij horen. Nog niet overtuigd van deze naamgeving?</p>



<h2 class="wp-block-heading">De voordelen nogmaals op een rijtje:</h2>



<ul class="wp-block-list"><li>Werk razendsnel vanuit een basis template.</li><li>Kopieer al je variabelen in één keer naar een child thema zonder wijzigingen te hoeven doen.</li><li>Denk nooit meer na over de naamgeving van je variabelen.</li><li>100% schaalbaar.</li><li>Wijzig eenvoudig je variabele namen zonder dat dit invloed heeft op de declaraties in de Sass-bestanden.</li><li>Zie in een oogopslag welke kleuren in het thema gebruikt worden.</li><li>Maak een super snelle vertaalslag van design naar ontwikkeling.</li></ul>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">25584</post-id>	</item>
		<item>
		<title>Bulk variaties beheren in WooCommerce</title>
		<link>https://www.pronamic.nl/2019/02/bulk-variaties-beheren-in-woocommerce/</link>
		
		<dc:creator><![CDATA[Jelke]]></dc:creator>
		<pubDate>Thu, 28 Feb 2019 13:45:40 +0000</pubDate>
				<category><![CDATA[Algemeen]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=23595</guid>

					<description><![CDATA[WooCommerce is één van de voornaamste en meest gebruikte e-commerce platformen van WordPress. Het faciliteert het volledige pakket aan functionaliteiten voor een volwaardige webwinkel. Ook enkele klanten van Pronamic maken al jaren dankbaar gebruik van deze open-source e-commerce plugin. Beheer… <a href="https://www.pronamic.nl/2019/02/bulk-variaties-beheren-in-woocommerce/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WooCommerce is één van de voornaamste en meest gebruikte e-commerce platformen van WordPress. Het faciliteert het volledige pakket aan functionaliteiten voor een volwaardige webwinkel. Ook enkele klanten van Pronamic maken al jaren dankbaar gebruik van deze open-source e-commerce plugin.</p>



<h2 class="wp-block-heading">Beheer van variabele producten binnen WooCommerce</h2>



<p class="wp-block-paragraph">Met de variabele attributen van WooCommerce kun je eenvoudig producteigenschappen toekennen. Hierbij kun je denken aan een kleur of maat. Aan elk attribuut, of combinatie van attributen, kun je vervolgens een prijs toekennen.&nbsp;Een handige functie om productvariaties op te zetten. Maar wat als een product honderden of misschien zelfs duizenden variaties kent? Je wilt als beheerder niet alle variaties handmatig invoegen en beheren. WooCommerce zelf heeft hier geen oplossing voor.</p>



<p class="wp-block-paragraph">Een klant van ons die al enige tijd WooCommerce gebruikt vroeg ons hier in mee te denken. Hoe zijn een groot aantal productvariaties op een eenvoudige manier te beheren? We gingen op onderzoek uit maar konden geen extensie of plugin vinden die een oplossing bood. Wel kwamen we veel soortgelijke vragen tegen van WooCommerce gebruikers.</p>



<p class="wp-block-paragraph">Na overleg met de klant hebben we ervoor gekozen hier zelf een extensie voor te schrijven. Met als resultaat <a href="https://www.pronamic.eu/plugins/woocommerce-bulk-product-variations/" target="_blank" rel="noreferrer noopener" aria-label="de WooCommerce CSV bulk variaties plugin (opens in a new tab)">de WooCommerce CSV bulk variaties plugin</a>.</p>



<h2 class="wp-block-heading">WooCommerce CSV bulk variaties</h2>



<p class="wp-block-paragraph">De plugin maakt het mogelijk om een CSV-bestand te koppelen aan een willekeurig variabel product.&nbsp;De regels binnen dit CSV-bestand worden vervolgens uitgelezen en als variatie aan de bezoeker gepresenteerd.&nbsp;</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" width="620" height="191" src="https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-variaties-620x191.jpg" alt="" class="wp-image-24160" srcset="https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-variaties-620x191.jpg 620w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-variaties-300x93.jpg 300w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-variaties-768x237.jpg 768w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-variaties-320x99.jpg 320w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-variaties-1540x475.jpg 1540w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-variaties-770x238.jpg 770w" sizes="(max-width: 620px) 100vw, 620px" /><figcaption>Koppelen van CSV-spreadsheet aan WooCommerce product.</figcaption></figure></div>



<h3 class="wp-block-heading">Opmaak van het CSV-bestand</h3>



<p class="wp-block-paragraph">Elke kolom in het CSV-bestand zal als variabel attribuut op de website getoond worden. Elke rij is een combinatie van opties die uiteindelijk zal leiden tot de totaalprijs.</p>



<h3 class="wp-block-heading">Voorbeeld van variatietabel</h3>



<p class="wp-block-paragraph">Hieronder een voorbeeld van hoe het CSV-bestand opgemaakt kan worden. De plugin maakt op basis van dit voorbeeld een uitschuifkeuzelijst voor merk en model. De derde prijskolom zal, in combinatie met voorgaande selecties, als productprijs gehanteerd worden.</p>



<table class="wp-block-table is-style-stripes"><tbody><tr><td><strong>Merk</strong></td><td><strong>Model</strong></td><td><strong>Prijs</strong></td></tr><tr><td>Audi</td><td>A3</td><td>€ 499,95</td></tr><tr><td>Audi</td><td>A4</td><td>€ 516,95</td></tr><tr><td>Audi</td><td>A5</td><td>€ 526,95</td></tr><tr><td>BMW</td><td>X1</td><td>€ 489,95</td></tr><tr><td>BMW</td><td>X2</td><td>€ 549,95</td></tr></tbody></table>



<p class="wp-block-paragraph">Gelijke waarden binnen een kolom worden automatisch onder één optie geplaatst. Naar bovenstaand voorbeeld krijgt de bezoeker als eerste optie dus maar twee keuzevarianten, Audi of BMW.</p>



<p class="wp-block-paragraph">Op basis van de eerste keuze van de bezoeker zullen de opties in de tweede uitschuifkeuzelijst automatisch bijgewerkt worden. Geen onnodige opties, de bezoeker krijgt alleen relevante keuzes.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="620" height="510" src="https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-product-variaties-620x510.jpg" alt="" class="wp-image-24162" srcset="https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-product-variaties-620x510.jpg 620w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-product-variaties-300x247.jpg 300w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-product-variaties-768x631.jpg 768w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-product-variaties-320x263.jpg 320w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-product-variaties-770x633.jpg 770w, https://www.pronamic.nl/wp-content/uploads/2018/12/woocommerce-bulk-product-variaties.jpg 1406w" sizes="auto, (max-width: 620px) 100vw, 620px" /><figcaption>WooCommerce demo product met gekoppeld CSV-bestand.</figcaption></figure></div>



<h3 class="wp-block-heading">Plugin in actie</h3>



<p class="wp-block-paragraph">Wil je de plugin in actie zien? Dat kan, onze klant DS Covers heeft inmiddels de plugin in gebruik genomen. Bekijk bijvoorbeeld <a href="https://www.dscovers.nl/product/autohoes-op-maat-indoor/" target="_blank" rel="noreferrer noopener" aria-label="Wil je de plugin in actie zien? Dat kan, onze klant DS Covers heeft inmiddels de plugin in gebruik genomen. Bekijk bijvoorbeeld de indoor autohoes Luxx. Hier zie je de vele productvariaties die vanuit het gekoppelde CSV-bestand ingeladen worden. (opent in een nieuwe tab)">de indoor autohoes Luxx</a>. Hier zie je de vele productvariaties die vanuit het gekoppelde CSV-bestand ingeladen worden.</p>



<p class="wp-block-paragraph">Ben je geïnteresseerd in deze door ons ontwikkelde WooCommerce extensie, neem dan <a href="https://www.pronamic.nl/contact/">contact met ons</a> op. Wij beantwoorden graag jouw vragen en helpen je indien nodig met de installatie en configuratie.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">23595</post-id>	</item>
		<item>
		<title>Nieuwe tarieven voor Google G Suite</title>
		<link>https://www.pronamic.nl/2019/02/nieuwe-tarieven-voor-google-g-suite/</link>
		
		<dc:creator><![CDATA[Jelke]]></dc:creator>
		<pubDate>Fri, 22 Feb 2019 12:06:25 +0000</pubDate>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[G Suite]]></category>
		<category><![CDATA[GMail]]></category>
		<category><![CDATA[google]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=25681</guid>

					<description><![CDATA[Update donderdag 4 april 2019: De exacte prijs voor de Benelux is sinds 2 april 2019 bekend en staat voor een G Suite Basic account op € 5,20 per maand oftewel € 62,40 per jaar! Google heeft aangegeven de tarieven… <a href="https://www.pronamic.nl/2019/02/nieuwe-tarieven-voor-google-g-suite/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><ins datetime="2019-04-04T11:39:15+00:00"><strong>Update donderdag 4 april 2019:</strong> De exacte prijs voor de Benelux is sinds 2 april 2019 bekend en staat voor een G Suite Basic account op € 5,20 per maand oftewel € 62,40 per jaar!</ins></p>



<p class="wp-block-paragraph">Google heeft aangegeven <a rel="noreferrer noopener" aria-label="de tarieven voor G Suite (opens in a new tab)" href="https://gsuiteupdates.googleblog.com/2019/01/g-suite-price-change.html" target="_blank">de tarieven voor G Suite</a> te verhogen. Deze wijziging wordt wereldwijd doorgevoerd met enkele uitzonderingen per regio/land. De exacte prijs die voor de Benelux zal gelden is nog niet bekend. Waarschijnlijk wijzigt de prijs van een G Suite Basic jaarlicentie van € 40 naar <del>€ 52 excl. btw</del> € 62,40 (€ 5,20 per maand).</p>



<p class="wp-block-paragraph">Google geeft de volgende verklaring voor deze wijziging:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>We hebben de oorspronkelijke versie van <a rel="noreferrer noopener" href="https://gsuite.google.com/" target="_blank">G Suite</a>, waaronder Gmail en Google Agenda, meer dan tien jaar geleden geïntroduceerd. Sindsdien hebben we allerlei nieuwe G Suite-services toegevoegd, waaronder <a rel="noreferrer noopener" href="https://www.blog.google/products/g-suite/get-same-page-new-google-docs-features-power-team-collaboration/" target="_blank">realtime samenwerking</a> (Documenten, Spreadsheets, Presentaties) en <a rel="noreferrer noopener" href="https://www.blog.google/products/g-suite/introducing-new-enterprise-ready-tools-google-drive/" target="_blank">flexibele opslag</a> (Drive), krachtige <a rel="noreferrer noopener" href="https://www.blog.google/products/g-suite/bring-teams-together-new-g-suite-integrations/" target="_blank">videoconferencecalls</a> (Hangouts Meet), <a rel="noreferrer noopener" href="https://www.blog.google/products/g-suite/move-projects-forward-one-placehangouts-chat-now-available/" target="_blank">veilig berichten verzenden binnen een team</a> (Hangouts Chat) en zakelijke <a rel="noreferrer noopener" href="https://www.blog.google/products/g-suite/introducing-google-cloud-search-g-suite/" target="_blank">zoekmogelijkheden</a> (Cloud Search). We hebben onze producten ook voorzien van geavanceerde <a rel="noreferrer noopener" href="https://www.blog.google/products/g-suite/how-machine-learning-g-suite-makes-people-more-productive/" target="_blank">artificial intelligence</a> zodat u gemakkelijker kunt <a rel="noreferrer noopener" href="https://www.blog.google/products/gmail/subject-write-emails-faster-smart-compose-gmail/" target="_blank">reageren op e-mails</a>, <a rel="noreferrer noopener" href="https://www.blog.google/products/docs/explore-docs-sheets-and-slides/" target="_blank">insights uit gegevens kunt verzamelen</a> en wordt <a rel="noreferrer noopener" href="https://www.blog.google/products/g-suite/helping-g-suite-customers-stay-secure-new-proactive-phishing-protections-and-management-controls/" target="_blank">beschermd tegen phishingaanvallen</a> voordat ze plaatsvinden.</p><p>Vanaf 2 april 2019 verhogen we de catalogusprijzen van G Suite Basic en  Business om gelijke tred te houden met de waarde die G Suite heeft voor  klanten.</p></blockquote>



<p class="wp-block-paragraph">De wijziging zal voor jaarabonnementen ingaan op de eerstvolgende verlenging na 2 april 2019.</p>



<h2 class="wp-block-heading">Ontwikkeling van G Suite sinds 2006</h2>



<p class="wp-block-paragraph">Sinds de introductie van G Suite in 2006 is de dienst steeds doorontwikkeld. In onderstaande infographic een helder overzicht van de ontwikkeling van het platform. Gmail, het populairste onderdeel van G Suite, kent ondertussen 1.5 biljoen actieve gebruikers.</p>



<figure class="wp-block-image"><a href="https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline.pdf" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="620" height="922" src="https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline-620x922.png" alt="De geschiedenis en ontwikkeling van Google G Suite." class="wp-image-25714" srcset="https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline-620x922.png 620w, https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline-202x300.png 202w, https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline-768x1143.png 768w, https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline-320x476.png 320w, https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline-1540x2291.png 1540w, https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline-770x1146.png 770w, https://www.pronamic.nl/wp-content/uploads/2019/02/google-g-suite-timeline.png 1720w" sizes="auto, (max-width: 620px) 100vw, 620px" /></a><figcaption>Infographic van de Google G Suite ontwikkelingen.</figcaption></figure>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">25681</post-id>	</item>
		<item>
		<title>5 must-know filters en hooks voor ElasticPress</title>
		<link>https://www.pronamic.nl/2018/11/5-must-know-filters-en-hooks-voor-elasticpress/</link>
		
		<dc:creator><![CDATA[Karel-Jan]]></dc:creator>
		<pubDate>Fri, 23 Nov 2018 14:47:52 +0000</pubDate>
				<category><![CDATA[Algemeen]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=23725</guid>

					<description><![CDATA[ElasticPress is een snelle en flexibele zoek- en query-engine voor WordPress. ElasticPress integreert met het WP_Query-object en retourneert resultaten vanuit Elasticsearch in plaats van MySQL. ElasticPress biedt voldoende hooks en filters om de zoekresultaten te beïnvloeden. Eerder schreef ik al… <a href="https://www.pronamic.nl/2018/11/5-must-know-filters-en-hooks-voor-elasticpress/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ElasticPress is een snelle en flexibele zoek- en query-engine voor WordPress. <a href="https://nl.wordpress.org/plugins/elasticpress/">ElasticPress</a> integreert met het WP_Query-object en retourneert resultaten vanuit Elasticsearch in plaats van MySQL. ElasticPress biedt voldoende hooks en filters om de zoekresultaten te beïnvloeden. Eerder schreef ik al een een <a href="https://www.pronamic.nl/2018/10/een-verbeterde-wordpress-zoekfunctionaliteit-met-elasticsearch/">introductie over Elasticsearch</a>. Deze blog is wat technischer van aard en behandel ik de 5 meest interessante filters en hooks.</p>



<h2 class="wp-block-heading">ep_elasticpress_enabled</h2>



<p class="wp-block-paragraph">Alle queries met de <code>s</code> parameter maken automatisch gebruik van Elasticsearch. Evenals de post type archief pagina&#8217;s. Mocht je Elasticsearch voor een specifieke post type archief pagina willen uitschakelen is dat eenvoudig mogelijk met de <code>ep_elasticpress_enabled</code> filter.</p>



<pre class="wp-block-code"><code>add_filter( 'ep_elasticpress_enabled', 'yourtheme_disable_ep_query', 10, 2 );

function yourtheme_disable_ep_query( $enabled, $query ) {
	if ( $query->is_post_type_archive( 'your_post_type' ) ) {
		return false;
	}

	return $enabled;
}</code></pre>



<h2 class="wp-block-heading">ep_prepare_meta_allowed_protected_keys</h2>



<p class="wp-block-paragraph">Verborgen metavelden worden standaard niet geïndexeerd door ElasticPress. Verborgen metavelden zijn velden met een underscore voor de naam. Bijvoorbeeld <code>_yourtheme_post_rating</code>.</p>



<p class="wp-block-paragraph">Mocht je de resultaten willen sorteren op basis van de waarde van een verborgen metaveld, is dat standaard niet mogelijk. Gelukkig geeft ElasticPress de mogelijkheid om verborgen metavelden toe te voegen aan de index met de&nbsp;<code>ep_prepare_meta_allowed_protected_keys</code> filter.</p>



<pre class="wp-block-code"><code>add_filter( 'ep_prepare_meta_allowed_protected_keys', 'yourtheme_ep_meta_fields', 10, 2 );

function yourtheme_ep_meta_fields( $protected_keys, $post ) {
	$protected_keys[] = '_yourtheme_post_rating';

	return $protected_keys;
}</code></pre>



<h2 class="wp-block-heading">ep_search_fields</h2>



<p class="wp-block-paragraph">ElasticPress zoekt standaard in de titel, samenvatting en content van een bericht. Je kan echter zelf bepalen in welke data gezocht mag worden. Het is bijvoorbeeld mogelijk het samenvattingsveld uit te sluiten en te zoeken in tags. De <code>ep_search_fields</code> filter is je vriend.</p>



<pre class="wp-block-code"><code>add_filter( 'ep_search_fields', 'yourtheme_ep_search_fields', 10, 2 );

function yourtheme_ep_search_fields( $search_fields, $args ) {
	unset( $search_fields['post_excerpt'] );

	$search_fields[] = 'terms.post_tag.name';

	return $search_fields;
}</code></pre>



<h2 class="wp-block-heading">ep_fuzziness_arg</h2>



<p class="wp-block-paragraph">Met zogenaamde <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html">fuzzy queries</a> kunnen de zoekresultaten beïnvloed worden. Bij fuzzy search kunnen bijvoorbeeld spelfouten worden opgespoord om zo toch de juiste resultaten te tonen. Deze fuzzy queries kunnen echter ook resulteren in ongewenste resultaten. ElasticPress geeft de optie om fuzziness in te stellen met de&nbsp;<code>ep_fuzziness_arg</code>&nbsp;filter.</p>



<pre class="wp-block-code"><code>add_filter( 'ep_fuzziness_arg', 'yourtheme_disable_ep_fuzziness', 10, 3 );

function yourtheme_disable_ep_fuzziness( $fuzziness, $search_fields, $args ) {
	return 0;
}</code></pre>



<h2 class="wp-block-heading">ep_formatted_args</h2>



<p class="wp-block-paragraph">Bij een zoekopdracht met meerdere woorden vindt Elasticsearch alle berichten waarin deze woorden voorkomen. Je kan dit beïnvloeden door de query operator te wijzigen naar &#8216;and&#8217; in plaats van &#8216;or&#8217;. Elasticsearch zal nu alleen berichten vinden die exact overeenkomen met de zoekopdracht.</p>



<pre class="wp-block-code"><code>add_filter( 'ep_formatted_args', 'yourtheme_set_es_search_args', 10, 2 );

function yourtheme_set_es_search_args( $ep_formatted_args, $args ) {
	$ep_formatted_args['query']['bool']['should'][0]['multi_match']['operator'] = 'and';
	$ep_formatted_args['query']['bool']['should'][1]['multi_match']['operator'] = 'and';
	$ep_formatted_args['query']['bool']['should'][2]['multi_match']['operator'] = 'and';

	return $ep_formatted_args;
}</code></pre>



<p class="wp-block-paragraph">Deze hooks en filters zouden je op weg moeten helpen om de Elasticsearch zoekresultaten te beïnvloeden. Ook interesse in een razendsnelle zoekfunctie? Neem <a href="https://www.pronamic.nl/contact/">contact</a> met ons op.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">23725</post-id><enclosure url="https://www.pronamic.nl/wp-content/uploads/2018/09/es-620x288.jpg" type="image/jpeg" />	</item>
		<item>
		<title>Gutenberg blocks met Advanced Custom Fields</title>
		<link>https://www.pronamic.nl/2018/11/gutenberg-blocks-met-advanced-custom-fields/</link>
		
		<dc:creator><![CDATA[Karel-Jan]]></dc:creator>
		<pubDate>Fri, 02 Nov 2018 10:49:09 +0000</pubDate>
				<category><![CDATA[Algemeen]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=23721</guid>

					<description><![CDATA[Advanced Custom Fields is de meest populaire plugin voor het beheer van custom field data. Met de plugin kan je verschillende soorten velden toevoegen. Denk hierbij aan een tekstveld, colorpicker of datumveld. Het beheer van deze velden gaat via een… <a href="https://www.pronamic.nl/2018/11/gutenberg-blocks-met-advanced-custom-fields/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Advanced Custom Fields is de meest populaire plugin voor het beheer van custom field data. Met de plugin kan je verschillende soorten velden toevoegen. Denk hierbij aan een tekstveld, colorpicker of datumveld. Het beheer van deze velden gaat via een gebruiksvriendelijke UI.</p>



<p class="wp-block-paragraph">Er bestaat ook een zogenaamde&nbsp;<a href="https://www.advancedcustomfields.com/resources/flexible-content/">flexible content field</a> waarmee je meerdere layouts kunt aanmaken. Een ideale techniek om een pagina als legoblokken op te bouwen. De pagina kan naar wens ingericht worden door het gebruik van blokken. Juist, soortgelijk aan hoe Gutenberg werkt.</p>



<p class="wp-block-paragraph">Bij Gutenberg wordt alle content namelijk ook opgesplitst in verschillende contentblokken. Gutenberg bestaat uit een aantal voorgedefinieerde blokken. Denk hierbij aan een paragraaf, een koptekst, een afbeelding of een quote. Hoe vet zou het zijn als we de flexibiliteit van Gutenberg kunnen combineren met Advanced Custom Fields. Ik heb goed nieuws. Met de release van <a href="https://www.advancedcustomfields.com/blog/acf-5-8-introducing-acf-blocks-for-gutenberg/">ACF 5.8</a> is dit mogelijk.&nbsp;</p>



<h2 class="wp-block-heading">Eigen Gutenberg blok maken met ACF</h2>



<p class="wp-block-paragraph">Het aanmaken van een custom Gutenberg blok is vrij complex. Het vergt heel wat code om wat gedaan te krijgen. De nieuwe versie van Advanced Custom Fields neemt al dat werk uit handen. Met de functie&nbsp;<code>acf_register_block</code> registreer je een nieuwe blok. Vervolgens koppel je via de UI een velden groep aan deze blok. Deze koppeling werkt exact hetzelfde als de koppeling aan een post type of taxonomy term. Een aandachtspunt is dat deze data niet in de <code>wp_postmeta</code> tabel worden opgeslagen maar direct in de <code>post_content.</code></p>



<p class="wp-block-paragraph">Het registreren van een ACF-blok gaat als volgt.</p>



<pre class="wp-block-code"><code>add_action( 'acf/init', 'yourtheme_acf_init' );

function yourtheme_acf_init() {
	if ( ! function_exists( 'acf_register_block') ) {
		return;
	}

	acf_register_block( array(
		'name'            => 'panel',
		'title'           => __( 'Panel', 'yourtheme' ),
		'description'     => __( 'Shows a panel.', 'yourtheme' ),
		'render_callback' => 'yourtheme_acf_blocks_callback',
		'category'        => 'formatting',
		'icon'            => 'admin-comments',
		'keywords'        => array( 'panel', 'block' ),
	) );
}</code></pre>



<p class="wp-block-paragraph">Een callback functie bepaalt vervolgens de output van het ACF-blok. We maken hierbij gebruik van een generieke callback functie die voor elke ACF-blok gebruikt kan worden.</p>



<p class="wp-block-paragraph">Met de <code>get_template_part</code> functie bepalen we welke template gebruikt moet worden. Het voordeel van deze constructie is dat de template eenvoudig kan worden overschreven door een child thema.</p>



<pre class="wp-block-code"><code>function yourtheme_acf_blocks_callback( $block ) {
	$block_name = str_replace( 'acf/', '', $block['name'] );

	get_template_part( 'template-parts/blocks/content', $block_name );
}
</code></pre>



<p class="wp-block-paragraph">We maken een nieuwe template genaamd content-panel.php en plaatsen deze in /template-parts/blocks/. De template bevat de code voor het tonen van de ACF data:</p>



<pre class="wp-block-code"><code>&lt;?php

if ( ! function_exists( 'the_field' ) ) {
	return;
}

?>
&lt;div class="panel panel--primary">
	&lt;div class="panel__heading">
		&lt;?php the_field( 'yourtheme_panel_heading' ); ?>
	&lt;/div>

	&lt;div class="panel__content">
		&lt;?php the_field( 'yourtheme_panel_content' ); ?>
	&lt;/div>
&lt;/div></code></pre>



<p class="wp-block-paragraph">Op deze manier kan je alle type content ontsluiten en is het beheer ervan een peuleschil.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">23721</post-id><enclosure url="https://www.pronamic.nl/wp-content/uploads/2018/10/blocks-620x288.jpg" type="image/jpeg" />	</item>
		<item>
		<title>WordPress plugins en thema&#8217;s vertalen: POT-bestanden met WP-CLI</title>
		<link>https://www.pronamic.nl/2018/10/wordpress-plugins-en-themas-vertalen-pot-bestanden-met-wp-cli/</link>
		
		<dc:creator><![CDATA[Remco]]></dc:creator>
		<pubDate>Mon, 22 Oct 2018 10:27:52 +0000</pubDate>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[Ontwikkeling]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[make-pot]]></category>
		<category><![CDATA[Poedit]]></category>
		<category><![CDATA[WP-CLI]]></category>
		<guid isPermaLink="false">https://www.pronamic.nl/?p=23528</guid>

					<description><![CDATA[WordPress wordt wereldwijd in veel verschillende talen gebruikt. Vertalen is daarom ook een belangrijk onderdeel van WordPress. Het WordPress Polyglots team is verantwoordelijk voor het vertalen van WordPress. Voor het vertalen van WordPress wordt gebruik gemaakt van het gettext systeem. Dit… <a href="https://www.pronamic.nl/2018/10/wordpress-plugins-en-themas-vertalen-pot-bestanden-met-wp-cli/">Lees verder <span class="meta-nav">→</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WordPress wordt wereldwijd in veel verschillende talen gebruikt. Vertalen is daarom ook een belangrijk onderdeel van WordPress. Het <a href="https://make.wordpress.org/polyglots/handbook/about/">WordPress Polyglots team</a> is verantwoordelijk voor het vertalen van WordPress. Voor het vertalen van WordPress wordt gebruik gemaakt van het <a href="https://en.wikipedia.org/wiki/Gettext"><code>gettext</code> systeem</a>. Dit systeem werkt met zogenaamde POT-bestanden waarin alle vertaalbare teksten staan. Om een WordPress plugin of thema vertaalbaar te maken is het van belang dat er een POT-bestand wordt gegenereerd. In dit bericht is te lezen hoe met behulp van WP-CLI een POT-bestand gegenereerd kan worden.</p>



<span id="more-23528"></span>



<p class="wp-block-paragraph">In het <a href="https://developer.wordpress.org/themes/functionality/localization/">WordPress thema handboek voor ontwikkelaars</a> staan al een aantal methodes beschreven voor het genereren van een POT-bestand. Ze noemen daar momenteel de WordPress i18n tools, Poedit en een Grunt taak. Het is tegenwoordig echter ook mogelijk om met behulp van WP-CLI een POT-bestand te genereren. Persoonlijk vind ik deze methode handiger werken en daarom deel ik deze graag. Het genereren van een POT-bestand kan met de <a href="https://github.com/wp-cli/i18n-command"><code>wp i18n</code> commando</a> binnen WP-CLI en wel op de volgende manier:</p>



<pre class="wp-block-preformatted"># Creëer een POT-bestand voor de WordPress plugin/thema in de huidige map
$ wp i18n make-pot .</pre>



<p class="wp-block-paragraph">Voor ons WordPress starters thema Timmy ziet dit er als volgt uit:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1700" height="564" src="https://www.pronamic.nl/wp-content/uploads/2018/09/WordPress-thema-Timmy-WP-CLI-make-POT.png" alt="" class="wp-image-23529" srcset="https://www.pronamic.nl/wp-content/uploads/2018/09/WordPress-thema-Timmy-WP-CLI-make-POT.png 1700w, https://www.pronamic.nl/wp-content/uploads/2018/09/WordPress-thema-Timmy-WP-CLI-make-POT-300x100.png 300w, https://www.pronamic.nl/wp-content/uploads/2018/09/WordPress-thema-Timmy-WP-CLI-make-POT-768x255.png 768w, https://www.pronamic.nl/wp-content/uploads/2018/09/WordPress-thema-Timmy-WP-CLI-make-POT-620x206.png 620w, https://www.pronamic.nl/wp-content/uploads/2018/09/WordPress-thema-Timmy-WP-CLI-make-POT-320x106.png 320w, https://www.pronamic.nl/wp-content/uploads/2018/09/WordPress-thema-Timmy-WP-CLI-make-POT-1540x511.png 1540w, https://www.pronamic.nl/wp-content/uploads/2018/09/WordPress-thema-Timmy-WP-CLI-make-POT-770x255.png 770w" sizes="auto, (max-width: 1700px) 100vw, 1700px" /><figcaption>WP-CLI <code>i18n makepot</code> in actie binnen het WordPress starters thema Timmy.</figcaption></figure>



<p class="wp-block-paragraph">Het mooie hiervan is dat WP-CLI ook waarschuwingen geeft in situaties die onduidelijk kunnen zijn voor bijvoorbeeld vertalers. In dit geval gebruiken we de tekst/vertaling <code>%1$s till %2$s</code> namelijk op 2 manieren. Een keer voor de datum en een keer voor de tijd, bijvoorbeeld: &#8220;1 september 2018 tot 1 oktober 2018&#8221; en &#8220;08:30 tot 17:00&#8221;. Dat zal hier geen probleem zijn en we kunnen de waarschuwing daarom negeren.</p>



<p class="wp-block-paragraph">Het gegenereerde POT-bestand kan vervolgens weer gebruikt worden om .PO/.MO-vertaalbestanden te genereren. Hiervoor maken we vaak gebruik van Poedit.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1954" height="968" src="https://www.pronamic.nl/wp-content/uploads/2018/09/Poedit-met-WordPress-thema-vertalingen.png" alt="" class="wp-image-23534" srcset="https://www.pronamic.nl/wp-content/uploads/2018/09/Poedit-met-WordPress-thema-vertalingen.png 1954w, https://www.pronamic.nl/wp-content/uploads/2018/09/Poedit-met-WordPress-thema-vertalingen-300x149.png 300w, https://www.pronamic.nl/wp-content/uploads/2018/09/Poedit-met-WordPress-thema-vertalingen-768x380.png 768w, https://www.pronamic.nl/wp-content/uploads/2018/09/Poedit-met-WordPress-thema-vertalingen-620x307.png 620w, https://www.pronamic.nl/wp-content/uploads/2018/09/Poedit-met-WordPress-thema-vertalingen-320x159.png 320w, https://www.pronamic.nl/wp-content/uploads/2018/09/Poedit-met-WordPress-thema-vertalingen-1540x763.png 1540w, https://www.pronamic.nl/wp-content/uploads/2018/09/Poedit-met-WordPress-thema-vertalingen-770x381.png 770w" sizes="auto, (max-width: 1954px) 100vw, 1954px" /><figcaption>Poedit met Nederlandse vertalingen voor het WordPress starters thema Timmy.</figcaption></figure>



<p class="wp-block-paragraph">In onze <a href="https://www.pronamic.nl/portfolio/">portfolio</a> vind je veel voorbeelden van maatwerk WordPress websites die we hebben ontwikkeld. Alle WordPress thema&#8217;s die we ontwikkelen zijn volledig in het Engels geschreven. Via vertaalbestanden vertalen we deze vervolgens netjes naar het Nederlands. Dit heeft als voordeel dat onze WordPress thema&#8217;s ook altijd vertaald kunnen worden naar andere talen. Wil je ook een WordPress website laten ontwikkelen neem dan gerust <a href="https://www.pronamic.nl/contact/">contact</a> met ons op.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">23528</post-id><enclosure url="https://www.pronamic.nl/wp-content/uploads/2018/10/WordPress-WP-CLI-make-pot-620x291.png" type="image/png" />	</item>
	</channel>
</rss>
