{"id":318004,"date":"2026-06-27T08:45:17","date_gmt":"2026-06-27T08:45:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/solvian-academy-connect\/"},"modified":"2026-08-28T13:40:41","modified_gmt":"2026-08-28T13:40:41","slug":"solvian-academy-connect","status":"publish","type":"plugin","link":"https:\/\/bg.wordpress.org\/plugins\/solvian-academy-connect\/","author":23505559,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.46","stable_tag":"1.0.46","tested":"7.1","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"Solvian Academy Connect","header_author":"IT-Legends","header_description":"Koppel uw website direct aan Solvian: cursuscatalogus, live startdata, online boekingen en beheer. Whitelabel voor installatie bij klanten.","assets_banners_color":"","last_updated":"2026-08-28 13:40:41","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.solvian.nl","header_author_uri":"https:\/\/www.it-legends.nl","rating":0,"author_block_rating":0,"active_installs":0,"downloads":663,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"itlegends","date":"2026-06-27 08:45:01","revision":3587935},"1.0.10":{"tag":"1.0.10","author":"itlegends","date":"2026-07-17 11:12:02","revision":3611384},"1.0.11":{"tag":"1.0.11","author":"itlegends","date":"2026-07-17 14:22:50","revision":3611628},"1.0.12":{"tag":"1.0.12","author":"itlegends","date":"2026-07-17 14:35:26","revision":3611641},"1.0.15":{"tag":"1.0.15","author":"itlegends","date":"2026-07-18 11:00:12","revision":3612534},"1.0.16":{"tag":"1.0.16","author":"itlegends","date":"2026-07-25 07:20:45","revision":3622168},"1.0.2":{"tag":"1.0.2","author":"itlegends","date":"2026-07-12 07:42:46","revision":3604511},"1.0.29":{"tag":"1.0.29","author":"itlegends","date":"2026-07-27 20:01:55","revision":3625119},"1.0.30":{"tag":"1.0.30","author":"itlegends","date":"2026-08-08 11:13:38","revision":3638642},"1.0.31":{"tag":"1.0.31","author":"itlegends","date":"2026-08-08 11:36:01","revision":3638657},"1.0.32":{"tag":"1.0.32","author":"itlegends","date":"2026-08-12 10:11:16","revision":3643169},"1.0.321":{"tag":"1.0.321","author":"itlegends","date":"2026-08-12 10:31:46","revision":3643196},"1.0.33":{"tag":"1.0.33","author":"itlegends","date":"2026-08-13 08:06:04","revision":3644593},"1.0.35":{"tag":"1.0.35","author":"itlegends","date":"2026-08-20 07:14:50","revision":3656091},"1.0.38":{"tag":"1.0.38","author":"itlegends","date":"2026-08-20 08:03:58","revision":3656173},"1.0.40":{"tag":"1.0.40","author":"itlegends","date":"2026-08-25 20:17:34","revision":3665962},"1.0.42":{"tag":"1.0.42","author":"itlegends","date":"2026-08-26 11:28:17","revision":3666884},"1.0.45":{"tag":"1.0.45","author":"itlegends","date":"2026-08-27 15:07:34","revision":3669128},"1.0.46":{"tag":"1.0.46","author":"itlegends","date":"2026-08-28 13:40:41","revision":3670453}},"upgrade_notice":{"1.0.11":"<p>Important VAT fix: BTW is now calculated correctly per course (including exempt courses) in the cart, checkout, and detail pages, and &quot;Cache legen&quot; no longer clears visitor shopping carts. Recommended update.<\/p>","1.0.10":"<p>Fixes bookings by private individuals silently failing to submit. Recommended update.<\/p>","1.0.2":"<p>Fixes catalog page filters (location filter, view toggle, category select-all) and theme compatibility. Recommended update.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.10","1.0.11","1.0.12","1.0.15","1.0.16","1.0.2","1.0.29","1.0.30","1.0.31","1.0.32","1.0.321","1.0.33","1.0.35","1.0.38","1.0.40","1.0.42","1.0.45","1.0.46"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Course catalog with list and grid view","2":"Course detail page with booking widget","3":"Booking form with cart support","4":"Admin settings panel"}},"plugin_section":[],"plugin_tags":[140904,269,7114,269076,4775],"plugin_category":[40],"plugin_contributors":[269077],"plugin_business_model":[],"class_list":["post-318004","plugin","type-plugin","status-publish","hentry","plugin_tags-academy","plugin_tags-booking","plugin_tags-courses","plugin_tags-solvian","plugin_tags-training","plugin_category-calendar-and-events","plugin_contributors-itlegends","plugin_committers-itlegends"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/solvian-academy-connect.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Solvian Academy Connect integrates your WordPress website with the Solvian platform. After installation and configuration you get:<\/p>\n\n<ul>\n<li>Live course catalog sourced directly from Solvian<\/li>\n<li>Calendar with start dates per course<\/li>\n<li>Online booking form (private individuals, freelancers, and business)<\/li>\n<li>Waitlist when no dates are available<\/li>\n<li>Automatic \"price on request\" handling: courses without a price (Solvian's \"Prijs op aanvraag\" toggle) show a contact form instead of planning\/booking, with submissions collected in the WordPress admin panel<\/li>\n<li>Multi-course shopping cart<\/li>\n<li>Booking management in the WordPress admin panel<\/li>\n<li>Optional Mollie payment integration (iDEAL, creditcard, Bancontact, invoice)<\/li>\n<li>Optional Zitadel OIDC login for returning customers<\/li>\n<li>Configurable location visibility (filter and location names can be hidden site-wide)<\/li>\n<li>Configurable notification e-mail addresses for bookings\/payments, waitlist, and information requests<\/li>\n<li>Date of birth field for each participant, optionally required (Settings \u2192 Deelnemersvelden)<\/li>\n<\/ul>\n\n<h4>External Services<\/h4>\n\n<p>This plugin communicates with the following external services:<\/p>\n\n<ul>\n<li><strong>Solvian API<\/strong> (your own Solvian environment, e.g. <code>https:\/\/yourorg.solvian.nl<\/code>) \u2014 to fetch course catalog, availability, and submit bookings. <a href=\"https:\/\/www.solvian.nl\/privacy\">Solvian privacy policy<\/a><\/li>\n<li><strong>Mollie<\/strong> (<code>https:\/\/api.mollie.com<\/code>) \u2014 optional, for online payment processing. Only used when payment is enabled and a Mollie API key is configured. <a href=\"https:\/\/www.mollie.com\/en\/privacy\">Mollie privacy policy<\/a><\/li>\n<li><strong>Zitadel<\/strong> (your own Zitadel instance) \u2014 optional, for customer login (OIDC). Only used when Zitadel login is enabled. <a href=\"https:\/\/zitadel.com\/docs\/legal\/policies\/privacy-policy\">Zitadel privacy policy<\/a>\nNo data is sent to these services without the site administrator explicitly entering API credentials.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin via <strong>Plugins<\/strong> in WordPress admin<\/li>\n<li>Go to <strong>Solvian \u2192 Settings<\/strong> and enter:\n\n<ul>\n<li>Base URL (e.g. <code>https:\/\/yourorg.solvian.nl<\/code>)<\/li>\n<li>Bearer token (obtain from Solvian or IT-Legends)<\/li>\n<\/ul><\/li>\n<li>The required pages are created automatically on activation<\/li>\n<\/ol>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[solvac_courses]<\/code> \u2014 Course catalog page<\/li>\n<li><code>[solvac_featured_courses]<\/code> \u2014 Compact grid widget of featured\/recent courses (e.g. for the homepage)<\/li>\n<li><code>[solvac_planning]<\/code> \u2014 \"Kies je module\" style planning overview: a module sidebar (grouped by category) plus a per-module table of upcoming course dates\/location\/price with Inschrijven\/Meer info links. One page handles every module via a <code>?module=<\/code> query var. Attributes: <code>default_module<\/code>, <code>limit<\/code><\/li>\n<li><code>[solvac_booking]<\/code> \u2014 Booking form<\/li>\n<li><code>[solvac_my_page]<\/code> \u2014 Customer account page (requires Zitadel)<\/li>\n<li><code>[solvac_cart]<\/code> \u2014 Shopping cart<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20solvian%20account%3F\"><h3>Do I need a Solvian account?<\/h3><\/dt>\n<dd><p>Yes. You need an active Solvian Academy account and API credentials. Contact IT-Legends or Solvian to obtain these.<\/p><\/dd>\n<dt id=\"is%20mollie%20required%3F\"><h3>Is Mollie required?<\/h3><\/dt>\n<dd><p>No. Mollie integration is optional. Bookings can be submitted without payment (invoice flow). Enable Mollie in Settings \u2192 Payment when you want to offer online payment.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20personal%20data%3F\"><h3>Does the plugin store personal data?<\/h3><\/dt>\n<dd><p>Yes. Booking data (name, email, company) is stored temporarily in a private WordPress custom post type. Enable debug mode only when troubleshooting \u2014 debug logs are stored for a maximum of 24 hours. See your privacy policy for details.<\/p><\/dd>\n<dt id=\"what%20php%20version%20is%20required%3F\"><h3>What PHP version is required?<\/h3><\/dt>\n<dd><p>PHP 7.4 or higher. Tested on PHP 8.1 and 8.2.<\/p><\/dd>\n<dt id=\"how%20do%20i%20flush%20the%20course%20cache%3F\"><h3>How do I flush the course cache?<\/h3><\/dt>\n<dd><p>Go to <strong>Solvian \u2192 Settings<\/strong> and click <strong>Clear cache<\/strong>, or run <code>wp solvian clear-cache<\/code> via WP-CLI.<\/p><\/dd>\n<dt id=\"what%20happens%20for%20courses%20with%20no%20price%20%28%22prijs%20op%20aanvraag%22%29%3F\"><h3>What happens for courses with no price (\"Prijs op aanvraag\")?<\/h3><\/dt>\n<dd><p>If a course has no price set in Solvian (via Solvian's own \"Prijs op aanvraag (website)\" toggle) and isn't explicitly marked as intentionally free, the course detail page automatically hides planning and pricing and shows a contact form instead. Submissions are collected under <strong>Solvian \u2192 Informatieaanvragen<\/strong> and e-mailed to the configured notification address.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>Zie CHANGELOG.md voor de volledige changelog.<\/p>\n\n<h4>1.0.46<\/h4>\n\n<ul>\n<li>Verbetering: bij een cursus met maar \u00e9\u00e9n boekingstype toont het formulier nu een label i.p.v. een dropdown met \u00e9\u00e9n keuze.<\/li>\n<\/ul>\n\n<h4>1.0.45<\/h4>\n\n<ul>\n<li>Fix (kritiek): winkelmandje\/afreken\/account blijven buiten de paginacache, ook bij pagebuilders.<\/li>\n<li>Fix: winkelmandje-badge\/\"Bekijk mandje\"-knop toonden na leegmaken via browser-terug soms nog het oude aantal; nu automatisch gesynchroniseerd.<\/li>\n<\/ul>\n\n<h4>1.0.44<\/h4>\n\n<ul>\n<li>Fix (kritiek): betaalstatus toont pas \"geslaagd\" als Solvian de boeking echt bevestigt.<\/li>\n<li>Fix (kritiek): SOOB-toeslag en Code95-korting worden meegerekend in de afgerekende prijs.<\/li>\n<li>Fix (kritiek): winkelmandjeprijs ververst vlak v\u00f3\u00f3r afrekenen.<\/li>\n<li>Fix (kritiek): materiaalblok op cursuspagina ontbrak door missende expand-parameter.<\/li>\n<li>Fix: gemengde btw-tarieven tonen een aparte btw-regel per tarief, zoals in Solvian.<\/li>\n<li>Nieuw: materiaal, boekingstype en toeslagbedrag zichtbaar in mandje en afrekenoverzicht.<\/li>\n<li>Nieuw: Code95\/SOOB per deelnemer instelbaar, met live prijsverversing.<\/li>\n<li>Diverse fixes: deelnemervelden, geboortedatum, taalfilter, \"Wis filters\".<\/li>\n<\/ul>\n\n<h4>1.0.42<\/h4>\n\n<ul>\n<li>Fix: \"Toevoegen aan agenda\" gebruikt nu de echte eindtijd van een cursus in plaats van altijd 24 uur.<\/li>\n<\/ul>\n\n<h4>1.0.41<\/h4>\n\n<ul>\n<li>Fix: lokale veldvalidatie draait weer v\u00f3\u00f3r de Solvian-precheck; huisnummer krijgt formaatcontrole.<\/li>\n<\/ul>\n\n<h4>1.0.40<\/h4>\n\n<ul>\n<li>Nieuw: boekingen worden vooraf ook bij Solvian gevalideerd, naast de lokale controles.<\/li>\n<\/ul>\n\n<h4>1.0.39<\/h4>\n\n<ul>\n<li>Fix: winkelmandje kon leeg blijven bij WP Fastest Cache; cache-uitsluiting verbeterd<\/li>\n<\/ul>\n\n<h4>1.0.38<\/h4>\n\n<ul>\n<li>Fix: PHPCS-waarschuwing over de cache-constanten uit 1.0.34 opgelost.<\/li>\n<\/ul>\n\n<h4>1.0.37<\/h4>\n\n<ul>\n<li>Fix: informatieaanvragen correct meegenomen in AVG-export\/-verwijdering.<\/li>\n<\/ul>\n\n<h4>1.0.36<\/h4>\n\n<ul>\n<li>Fix: e-mailnotificatie bij informatieaanvraag bevat nu alle aanvraaggegevens.<\/li>\n<\/ul>\n\n<h4>1.0.35<\/h4>\n\n<ul>\n<li>Getest en compatibel met WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.34<\/h4>\n\n<ul>\n<li>Fix: winkelmandje-, inschrijf- en accountpagina's markeren zichzelf als niet-cachebaar.<\/li>\n<\/ul>\n\n<h4>1.0.33<\/h4>\n\n<ul>\n<li>Nieuw: telefoonnummer als veld per deelnemer op het inschrijfformulier.<\/li>\n<\/ul>\n\n<h4>1.0.32<\/h4>\n\n<ul>\n<li>Nieuw: instelbare URL voor de \"algemene voorwaarden\"-link.<\/li>\n<\/ul>\n\n<h4>1.0.31<\/h4>\n\n<ul>\n<li>Fix: verkeerde SVN-tag voor 1.0.30 hersteld.<\/li>\n<\/ul>\n\n<h4>1.0.30<\/h4>\n\n<ul>\n<li>Nieuw: instelbare cursusvolgorde in de catalogus; fix uitlijning cursuskaarten.<\/li>\n<\/ul>\n\n<h4>1.0.29<\/h4>\n\n<ul>\n<li>Cleanup: ongebruikte \"Catalog structuur\"-pagina verwijderd.<\/li>\n<\/ul>\n\n<h4>1.0.28<\/h4>\n\n<ul>\n<li>Cleanup: \"Booking debug\"-pagina en testknop verwijderd.<\/li>\n<\/ul>\n\n<h4>1.0.27<\/h4>\n\n<ul>\n<li>Nieuw: contactformulier voor cursussen met \"Prijs op aanvraag\".<\/li>\n<\/ul>\n\n<h4>1.0.26<\/h4>\n\n<ul>\n<li>Change: datumtekst in planning aangepast naar \"Eerste mogelijkheid: ...\".<\/li>\n<\/ul>\n\n<h4>1.0.25<\/h4>\n\n<ul>\n<li>Change: planningsoverzicht toont nu maximaal \u00e9\u00e9n rij per cursus.<\/li>\n<\/ul>\n\n<h4>1.0.24<\/h4>\n\n<ul>\n<li>Cleanup: tijdelijk debug-blok uit het planningsoverzicht verwijderd.<\/li>\n<\/ul>\n\n<h4>1.0.23<\/h4>\n\n<ul>\n<li>Fix (root cause): starttijden gebruiken nu wp_date() in plaats van date_i18n().<\/li>\n<\/ul>\n\n<h4>1.0.22<\/h4>\n\n<ul>\n<li>Fix: verzonnen eindtijd in het planningsoverzicht verwijderd.<\/li>\n<\/ul>\n\n<h4>1.0.21<\/h4>\n\n<ul>\n<li>Debug: tijdelijke diagnostische weergave voor onderzoek naar tijdzone-afwijking.<\/li>\n<\/ul>\n\n<h4>1.0.20<\/h4>\n\n<ul>\n<li>Fix: Solvian-tijden worden nu correct als UTC geparsed.<\/li>\n<\/ul>\n\n<h4>1.0.19<\/h4>\n\n<ul>\n<li>Fix: overige datumweergaves gebruiken nu ook tijdzone-correcte helper.<\/li>\n<\/ul>\n\n<h4>1.0.18<\/h4>\n\n<ul>\n<li>Fix: planningstijden tijdzone-correct; cursussen zonder prijs (\u20ac0) niet boekbaar tenzij bewust gratis.<\/li>\n<\/ul>\n\n<h4>1.0.17<\/h4>\n\n<ul>\n<li>Nieuw: [solvac_planning] shortcode voor een planningsoverzicht per module.<\/li>\n<\/ul>\n\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Nieuw: geboortedatumveld per deelnemer op het inschrijfformulier.<\/li>\n<\/ul>\n\n<h4>1.0.15<\/h4>\n\n<ul>\n<li>Nieuw: optie \"Altijd deze locatie gebruiken\" voor de agenda-afspraak.<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Nieuw: agenda-knoppen optioneel te maken; instelbare generieke locatie.<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Nieuw: agenda-knoppen op de boekingsbevestiging; structured data (JSON-LD) op cursuspagina's.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Nieuw: [solvac_featured_courses] shortcode voor uitgelichte cursussen.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Fix: btw wordt nu per cursus i.p.v. globaal berekend, incl. correcte vrijgestelde cursussen.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Fix: boeken als particulier kon stil mislukken door een naamconflict in formuliervelden.<\/li>\n<\/ul>\n\n<h4>1.0.0 t\/m 1.0.9<\/h4>\n\n<ul>\n<li>Eerste releases: cursuscatalogus, boekingsformulier, winkelmandje, Mollie-betalingen, Zitadel-login en diverse vroege fixes. Volledige details per versie: zie CHANGELOG.md.<\/li>\n<\/ul>","raw_excerpt":"Connect your WordPress website directly to Solvian Academy for live course catalogs and online bookings.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/318004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=318004"}],"author":[{"embeddable":true,"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/itlegends"}],"wp:attachment":[{"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=318004"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=318004"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=318004"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=318004"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=318004"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=318004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}