*** Genius Commerce Changelog ***

2026-10-12 - version 0.9.2
* Update - de instelling Custom CSS is verwijderd (eis van de WordPress.org-review); eigen opmaak hoort in de Customizer of Site Editor (Extra CSS). Eerder opgeslagen CSS wordt niet meer op de winkel geladen
* Update - het verwijderen van klanten via de API is verwijderd (DELETE /customers/{id} en de delete-actie van /customers/batch); Genius Commerce kan geen WordPress-gebruikers meer verwijderen

2026-10-07 - version 0.9.1
* Update - "Tested up to" staat alleen nog in readme.txt en niet meer ook in de pluginheader (eis van de geautomatiseerde WordPress.org-scan)

2026-10-07 - version 0.9.0
* Update - alle opties, transients, hooks, AJAX-acties, nonces, constanten en script-handles dragen nu het voorvoegsel genius_commerce_ in plaats van gc_ (eis van de WordPress.org-review). Bestaande instellingen, de API key en het webhook-secret verhuizen automatisch bij de eerste paginalading na de update
* Update - de templatefilters heten nu genius_commerce_delivery_product_template_args, genius_commerce_delivery_cart_template_args en genius_commerce_discount_price_template_args; thema's die de oude gc_-namen gebruiken moeten mee
* Update - het script van de knop "Nu verversen" op de scopes-tab zit nu in het geladen admin-script in plaats van een inline script-tag

2026-08-13 - version 0.8.4
* Fix - webhooks werden na een koppeling via de "Verbinden"-knop nooit geïnstalleerd: die route slaat geen backend-URL op, waardoor élke aanroep naar Genius Commerce afbrak op "Backend URL niet geconfigureerd" en de knop "Test Verbinding" uit het statusoverzicht verdween. De plugin valt nu terug op de standaard-backend-URL en legt die bij het verbinden vast
* Fix - webhooks herstellen zichzelf: een winkel die gekoppeld is maar geen webhook-secret of webhooks heeft, haalt ze alsnog op bij de eerstvolgende beheerpagina of de eerstvolgende aanroep vanuit Genius Commerce — geen handmatige actie meer nodig na ontkoppelen en opnieuw verbinden
* Fix - webhooks worden niet langer op gebruiker 0 gezet wanneer ze buiten het beheerscherm om worden aangemaakt; WooCommerce zou dan lege payloads bezorgen

2026-08-01 - version 0.8.3
* Feature - "Ontkoppelen"-knop op de Verbinding-tab: verbreekt de koppeling met Genius Commerce (wist de lokale API key en webhook-secret, verwijdert de geregistreerde webhooks) met bevestiging, zodat na een backend-disconnect opnieuw verbonden kan worden zonder een WP-optie handmatig te wissen

2026-07-23 - version 0.8.2
* Fix - uninstall-routine in een functie gewikkeld; de opruim-variabelen vervuilen de global scope niet meer
* Fix - de vijf globale plugin-functies dragen nu de volledige genius_commerce_-prefix in plaats van de afkorting gc_
* Fix - verkeerd geplaatste phpcs-annotatie op de HPOS-orderstatusquery gecorrigeerd
* Update - per plek gemotiveerd waarom de directe database-reads in de sync-endpoints bewust ongecachet zijn; cachen zou een sync verouderde data laten lezen
* Note - de gc_delivery_*- en gc_discount_*-template-filters houden hun naam; hernoemen zou thema's breken die er al op aanhaken

2026-07-23 - version 0.8.1
* Fix - WordPress.org compliance: translators-comments toegevoegd bij de vier vertaalbare strings met placeholders
* Fix - WordPress.org compliance: unlink() vervangen door wp_delete_file() bij opruimen van tijdelijke image-downloads
* Fix - WordPress.org compliance: log-redactor heeft geen constante-gebaseerde omweg meer om zijn directe-toegangsguard
* Fix - WordPress.org compliance: Domain Path-header en load_plugin_textdomain() verwijderd — WordPress.org levert vertalingen automatisch sinds WP 4.6
* Fix - Hardening: REMOTE_ADDR en X-Forwarded-For worden ge-unslasht en gesaneerd vóór gebruik in de IP-allowlist
* Fix - Hardening: HPOS-ordertabel-identifier wordt met esc_sql() ge-escaped
* Update - Getest tot WordPress 7.0

2026-07-22 - version 0.8.0
* Fix - Security (hoog): batch-endpoints categorieën/merken saneren name/description nu in create/update zelf — sluit stored-XSS die de route-sanitize omzeilde (audit #2)
* Fix - Security (hoog): sync-mapping valideert meta-keys tegen de laatste Discovery-scan (gesaneerd + allowlist) — voorkomt export van willekeurige post-meta (audit #3)
* Fix - Security (middel): generieke taxonomy-terms route past dezelfde uitsluitingslijst toe als de listing-route — taxonomies.read leest geen categorie-/attribuutdata meer (audit #4)
* Fix - Security (middel): Custom CSS wordt nu met safecss_filter_attr gefilterd bij opslaan én uitleveren — strip externe url()/@import-exfiltratie (audit #5)
* Fix - Security (laag): image-import via URL dwingt https + host/IP-allowlist af vóór download_url() in products/categories/brands/variations — SSRF-hardening (audit #6)

2026-07-21 - version 0.7.1
* Fix - Security (kritiek): Customers REST-endpoint saneert nu meta_data-keys en weigert rol-/sessie-keys (wp_capabilities, wp_user_level, session_tokens, wp_*-namespace) — sluit rechtenescalatie van customers.write-key naar administrator (audit-bevinding #1)

2026-07-21 - version 0.7.0
* Added - Eén-klik "Verbinden"-knop: koppelt de winkel automatisch zonder handmatig een API key te plakken (Story 4.2)
* Added - Token-exchange met eigenaarschapsbewijs via origin-callback (Genius bevestigt de winkel door terug te bellen naar de plugin-REST-API)
* Update - Handmatige API-key-invoer gedegradeerd tot geavanceerde/fallback-optie

2026-06-22 - version 0.6.0
* Added - Security: IP-allowlist op REST-routes met opt-in X-Forwarded-For (Story 8.1)
* Added - Security: scope-enforcement op API-keys met WP-transient cache en feature-flag-cutover (Story 8.3)
* Added - Security: PII-redactie in request-logging (Story 8.5)
* Fix - /debug en /system-info geven nu 403 FORBIDDEN_IP met logregel bij een IP-block (was: stille 401), consistent met de overige REST-routes

2026-03-25 - version 0.5.1
* Fix - Security: output escaping voor admin mapping dropdowns en settings
* Fix - Security: input sanitization voor template content (wp_kses_post) en custom CSS (sanitize_textarea_field)
* Fix - Security: shortcode attributen worden nu ge-escaped tegen XSS
* Fix - Security: debug REST endpoint vereist nu API key authenticatie
* Fix - Security: REST route permission callbacks returnen nu correct bool
* Fix - Security: wp_redirect vervangen door wp_safe_redirect
* Fix - Security: SQL queries gebruiken nu $wpdb->prepare() voor tabel namen
* Fix - Security: template engine valideert bestandspaden met realpath()
* Fix - Debug error_log() calls vervangen door WooCommerce logger
* Update - WC tested up to header naar 10.6
* Added - WordPress Tested up to header (6.9)

2026-03-20 - version 0.5.0
* Added - Internal link styling for rich text content blocks
* Added - Contextual internal links across all key pages
* Update - FAQ accordion link styling with hover states
* Update - Plugin changelog.txt for WooCommerce store compatibility

2026-03-15 - version 0.4.4
* Fix - Various bug fixes and improvements

2026-03-01 - version 0.3.5
* Fix - Sync mapping settings for meta fields with leading underscores (e.g., _weight) are now saved correctly

2026-02-01 - version 0.1.0
* New - Initial release
