Onlangs kregen we een vraag van onze klant ProActive Compliance Tool om de Flamingo plugin AVG-compliant te maken. Logisch, want ProActive Compliance Tool wil als compliance tooling natuurlijk voldoen aan de wet- en regelgeving op het gebied van privacy.
AVG compliance vraagstuk
AVG-compliancy is tegenwoordig erg belangrijk voor bedrijven. Als je een bedrijf runt en wilt voldoen aan de norm ISO 27001, dan moet je voldoen aan de voor jou geldende wet- en regelgeving, en dus aan de Algemene Verordening Gegevensbescherming (AVG) . Artikel 5 van de AVG stelt dat gegevens alleen mogen worden bewaard voor zo lang als nodig is voor de doeleinden waarvoor ze worden verwerkt. Dit betekent dat als je persoonlijke gegevens bewaart, zoals de opgeslagen formulier informatie die Flamingo bewaart, je een mechanisme moet hebben om deze gegevens na verloop van tijd te verwijderen. Flamingo beschikt standaard helaas niet over deze functionaliteit.
Geen geschikte plugin
Om te voldoen aan deze verplichting met betrekking tot het gebruik van de de Flamingo plugin, hebben we gezocht naar een geschikte plugin die deze functionaliteit kon bieden. Maar we konden geen goede plugin vinden die dit voor ons kon doen. We hadden wel een plugin gevonden, maar wilden deze niet installeren vanwege het feit dat de plugin ‘verlaten’ was, weinig installaties had en weinig beoordelingen had op de officiële WordPress site.
Een developer inhuren dan maar?
De developers waar Tip ICT mee samenwerkt zitten al vrij vol op onze en hun eigen projecten. Dus gaan we hen belasten met deze vrij eenvoudige vraag? Het maken van zo’n plugin is toch altijd een paar uur werk: uitvraag, implementatie, testen, … Bovendien is mensenwerk foutgevoelig.
Tijdens een borrel ontstaan de beste ideeën
Tijdens een recente bedrijfsborrel bij ‘Café De Hoop’ in Zaandijk met onze developers enkele weken geleden kwam de inzet van ChatGPT door onze developers al even ter sprake. En dat bracht mij in deze situatie op het idee om te kijken of ChatGPT deze plugin niet voor ons kon maken. ChatGPT is een zeer intelligente chatbot, getraind door OpenAI, die dus ook code kan programmeren. Zou toch een paar uur werk schelen, is het niet? Dus, we vroegen het ChatGPT:
Maak een WordPress plugin die alle berichten zoals opgeslagen door de plugin “Flamingo” verplaatst naar de prullenbak als ze ouder zijn dan 30 dagen
Het resultaat was verbluffend. Na enkele keren doorvragen en finetunen was het resultaat er. ChatGPT maakte voor ons een plugin die er feilloos voor zorgt dat alle berichten die zijn opgeslagen met de Flamingo-plugin automatisch worden verwijderd uit de database als ze ouder zijn dan 30 dagen. Het handige van deze plugin is dat hij ook is voorzien van een cronjob, zodat de plugin elke maandag om 01:00 uur wordt uitgevoerd. Hierdoor hoeven we ons geen zorgen te maken over het handmatig uitvoeren van deze taak en kunnen we ons concentreren op andere belangrijke taken.
De stappen die de plugin uitvoert zijn eenvoudig: hij controleert alle berichten die door de Flamingo-plugin zijn opgeslagen en verplaatst de berichten die ouder zijn dan 30 dagen naar de prullenbak. En de WordPress prullenbak wordt door WordPress zelf automatisch periodiek geleegd. Op deze manier kunnen we er zeker van zijn dat we geen onnodige gegevens in de database bewaren, wat de klant helpt te voldoen aan de AVG-normen.
Het installeren van de plugin was ook heel eenvoudig. Ook al wisten we hoe dit moest, het was grappig te zien dat ChatGPT ons desgevraagd ook voorzag van deze instructie:
- Maak een nieuwe plug-in in WordPress en geef deze een geschikte naam, zoals “Flamingo Old Messages Cleanup”.
- Voeg de nodige code toe om de Flamingo-berichten op te halen die ouder zijn dan 30 dagen. Je kunt de WordPress-functie
get_posts()
gebruiken om de berichten te selecteren.- Loop door de geselecteerde berichten en verplaats ze naar de prullenbak. Dit kan worden gedaan met behulp van de WordPress-functie
wp_trash_post()
.- Plan de uitvoering van deze functie. Een gemakkelijke manier om dit te doen is door een WordPress-cron-taak in te stellen om deze functie bijvoorbeeld elke dag uit te voeren.
- Test de plug-in om ervoor te zorgen dat deze correct werkt. Dit kan worden gedaan door handmatig enkele Flamingo-berichten aan te maken en te controleren of ze na 30 dagen automatisch worden verplaatst naar de prullenbak.
Zo gezegd, zo gedaan: we hebben de plugin geüpload naar de WordPress ‘plugins’ map en hem vervolgens geactiveerd via de Plugin-pagina. Na activering werden alle oude berichten die ouder waren dan 30 dagen automatisch verplaatst naar de prullenbak, zoals we hadden verwacht.
Benieuwd naar de code?
<?php
/*
Plugin Name: Flamingo Old Messages Cleanup
Plugin URI: https://www.example.com/
Description: Verplaatst oude Flamingo-berichten naar de prullenbak.
Version: 1.0
Author: Jouw Naam
Author URI: https://www.example.com/
License: GPL2
*/
// Voer de functie uit bij het activeren van de plugin
function flamingo_old_messages_cleanup_activate() {
flamingo_old_messages_cleanup_cronjob();
}
register_activation_hook( __FILE__, 'flamingo_old_messages_cleanup_activate' );
// Registreer de cronjob bij activeren van de plugin
function flamingo_old_messages_cleanup_schedule() {
// Stel de tijdzone in op UTC
date_default_timezone_set('UTC');
// Plan de cronjob om elke maandag om 01.00 uur uit te voeren
if ( ! wp_next_scheduled( 'flamingo_old_messages_cleanup_cronjob' ) ) {
wp_schedule_event( strtotime( 'next Monday 01:00:00' ), 'weekly', 'flamingo_old_messages_cleanup_cronjob' );
}
}
add_action( 'wp', 'flamingo_old_messages_cleanup_schedule' );
// Verwijder de cronjob bij deactiveren van de plugin
function flamingo_old_messages_cleanup_deactivate() {
// Verwijder de cronjob
wp_clear_scheduled_hook( 'flamingo_old_messages_cleanup_cronjob' );
}
register_deactivation_hook( __FILE__, 'flamingo_old_messages_cleanup_deactivate' );
// Voer de functie uit bij het activeren van de cronjob
function flamingo_old_messages_cleanup_cronjob() {
// Haal de Flamingo-berichten op die ouder zijn dan 30 dagen en verwijder ze
$flamingo_messages = get_posts(array(
'post_type' => 'flamingo_inbound',
'post_status' => 'publish',
'date_query' => array(
'before' => '30 days ago',
),
'numberposts' => -1, // haal alle berichten op
));
// Loop door de berichten en verplaats ze naar de prullenbak
foreach ($flamingo_messages as $message) {
wp_trash_post($message->ID);
}
}
?>
Dankzij ChatGPT hebben we nu een plugin die perfect helpt te voldoen aan de AVG-vereisten. We zijn blij dat we deze taak hebben kunnen automatiseren en ons nu kunnen concentreren op andere belangrijke taken die ons bedrijf vooruithelpen.
We zijn blij dat we dit voor ProActive Compliance Tool hebben kunnen regelen en dat we binnen een kwartier deze plugin konden maken. Het is onze missie om onze klanten te helpen bij het voldoen aan de regelgeving en om oplossingen op maat te bieden die passen bij hun unieke behoeften. We zullen blijven werken aan het verbeteren van onze diensten en het vinden van oplossingen die echt werken.
En oh ja, we vonden het wel een blog waard! Dus vroegen we ChatGPT:
Schrijf een blog over het feit dat we een vraag van onze klant ProActive Compliance Tool kregen om de Flamingo plugin AVG-compliant te maken. Benoem dat wij de website voor ProActive Compliance Tool hebben gemaakt en de tool ook gebruiken voor sommige van onze klanten. Benoem waarom AVG compliancy belangrijk is voor een bedrijf in relatie tot de norm ISO 27001 en betrek hierin het wetsartikel uit de AVG. Geef een korte uitleg over wat de verplichting inhoudt met betrekking tot de Flamingo plugin. Begin de blog bij dat de vraag van Proactive Compliance Tool leidde tot de zoektocht naar een geschikte plugin, maar dat we geen goede plugin konden vinden die dit voor ons kon doen. We hadden wel een plugin gevonden, maar wilde deze installeren omdat de plugin verlaten was, weinig installaties en weinig beoordelingen had op de officiële WordPress site. Sluit het artikel af met dat we dit, inclusief het laten schrijven van deze blog, binnen een kwartier hebben geregeld. Probeer de blog spontaan te maken en spannend om te lezen.
De schuingedrukte tekst van deze blog is rechtstreeks gekopieerd en geplakt uit ChatGPT.
Hadden we alleen nog een afbeelding nodig voor bij de blog, dus vroegen we:
Geef een link naar een rechtenvrije afbeelding over ChatGPT en AVG compliance bij deze blog
Daar kon ChatGPT ons echter nog niet in helpen:
Vanwege de beperkte mogelijkheden als AI taalmodel kan ik geen directe links naar afbeeldingen geven. Wel kan ik je aanraden om rechtenvrije afbeeldingen te vinden op websites zoals Unsplash, Pexels, of Pixabay met zoektermen als “chatbot”, “AI”, “compliance”, en “data privacy”. Zorg er wel voor dat je de gebruiksrechten controleert voordat je een afbeelding gebruikt.
ChatGPT, ook al kun je nog niet alles, … Je bent aangenomen. Welkom bij het team!