{"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-07-12T07:42:46","modified_gmt":"2026-07-12T07:42:46","slug":"solvian-academy-connect","status":"publish","type":"plugin","link":"https:\/\/lmo.wordpress.org\/plugins\/solvian-academy-connect\/","author":23505559,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0.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-07-12 07:42:46","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":102,"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"},"1.0.2":{"tag":"1.0.2","author":"itlegends","date":"2026-07-12 07:42:46"}},"upgrade_notice":{"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.2"],"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>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<\/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_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\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: catalog page's card\/list view toggle no longer left the previous button looking active after switching views.<\/li>\n<li>Fix: location filter on the catalog page returned no results \u2014 course event locations are now cached from the Availability API (mirroring the existing price cache) and warmed automatically after a cache clear and daily via cron.<\/li>\n<li>Fix: catalog category filter now supports selecting\/deselecting all categories at once, and a shareable <code>?cat=<\/code> URL parameter to link directly to a pre-filtered category view.<\/li>\n<li>Fix: catalog grid cards misaligned when a category label or course subtitle wrapped to two lines; card content now reserves consistent height across a row.<\/li>\n<li>Fix: moved the catalog page's view\/filter JavaScript out of a per-page inline script into the plugin's static frontend.js. The inline version depended on WordPress printing the script tag after the shortcode ran, which isn't guaranteed under every theme (notably some block themes) \u2014 this caused the whole catalog UI to be non-interactive with no console error.<\/li>\n<li>Fix: the four companion storefront themes (bhv-ehbo, comm-training, it-academy, solvian) referenced the plugin's old pre-rename class name (<code>SCE_Stable_Plugin<\/code>) and shortcode (<code>[solvian_course_grid]<\/code>), so switching to any of them silently fell back to static demo content instead of live Solvian data. Updated to the current <code>SOLVAC_Plugin<\/code> class and <code>[solvac_courses]<\/code> shortcode.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed shortcodes from solvian_* to solvac_* prefix per WordPress plugin guidelines<\/li>\n<li>Wrapped shortcode_booking output with wp_kses() to satisfy escaping requirements<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Live course catalog from Solvian API<\/li>\n<li>Online booking form<\/li>\n<li>Shopping cart for multi-course bookings<\/li>\n<li>Mollie payment integration (iDEAL, creditcard, Bancontact, invoice)<\/li>\n<li>Zitadel OIDC login integration<\/li>\n<li>Booking management in WordPress admin<\/li>\n<li>WP-CLI commands for cache management<\/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:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/318004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=318004"}],"author":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/itlegends"}],"wp:attachment":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=318004"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=318004"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=318004"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=318004"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=318004"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=318004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}