{"id":357083,"date":"2026-09-04T15:47:19","date_gmt":"2026-09-04T15:47:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/workshop-suite-all-in-one-event-manager-crm-social-banner-builder\/"},"modified":"2026-09-04T18:47:18","modified_gmt":"2026-09-04T18:47:18","slug":"wsmaker","status":"publish","type":"plugin","link":"https:\/\/tw.wordpress.org\/plugins\/wsmaker\/","author":15412582,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.6","stable_tag":"1.1.6","tested":"7.1","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"WSMaker \u2014 Training Management System, CRM & Event Manager","header_author":"Francesco Verolino","header_description":"The complete all-in-one suite for WordPress to manage workshops, courses and events, participant CRM with timeline tracking, automatic T-15 email reminders, and social poster graphic builder.","assets_banners_color":"18100c","last_updated":"2026-09-04 18:47:18","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wsmaker.pro\/","header_author_uri":"https:\/\/francescoverolino.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":60,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.5":{"tag":"1.1.5","author":"frak68","date":"2026-09-04 15:47:09","revision":3681448},"1.1.6":{"tag":"1.1.6","author":"frak68","date":"2026-09-04 18:47:18","revision":3681696}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3681631,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3681631,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3681717,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3681717,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.5","1.1.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3682092,"resolution":"1","location":"assets","locale":"","width":1400,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3682092,"resolution":"2","location":"assets","locale":"","width":1400,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3682092,"resolution":"3","location":"assets","locale":"","width":1400,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3682092,"resolution":"4","location":"assets","locale":"","width":1420,"height":1350},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3682092,"resolution":"5","location":"assets","locale":"","width":1400,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3682092,"resolution":"6","location":"assets","locale":"","width":1400,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3682092,"resolution":"7","location":"assets","locale":"","width":990,"height":900}},"screenshots":{"1":"<strong>Dashboard &amp; Metric Overview<\/strong>: Real-time cockpit showing active events, seat occupancy, and pending requests.","2":"<strong>Participant CRM<\/strong>: Searchable attendee directory with contact info and booking history.","3":"<strong>Poster &amp; Banner Builder<\/strong>: 3-column layout with customizable typography, colors, background zoom\/positioning, and template saving.","4":"<strong>Settings &amp; Security<\/strong>: Native configuration panel with AES-256 encrypted mail credentials and rate limit protection."}},"plugin_section":[],"plugin_tags":[1150,4747,1486,279238,18341],"plugin_category":[40,58],"plugin_contributors":[279207],"plugin_business_model":[],"class_list":["post-357083","plugin","type-plugin","status-publish","hentry","plugin_tags-crm","plugin_tags-event-management","plugin_tags-events","plugin_tags-training-management-system","plugin_tags-workshop","plugin_category-calendar-and-events","plugin_category-user-management","plugin_contributors-frak68","plugin_committers-frak68"],"banners":{"banner":"https:\/\/ps.w.org\/wsmaker\/assets\/banner-772x250.png?rev=3681717","banner_2x":"https:\/\/ps.w.org\/wsmaker\/assets\/banner-1544x500.png?rev=3681717","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wsmaker\/assets\/icon-128x128.png?rev=3681631","icon_2x":"https:\/\/ps.w.org\/wsmaker\/assets\/icon-256x256.png?rev=3681631","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wsmaker\/assets\/screenshot-1.png?rev=3682092","caption":"<strong>Dashboard &amp; Metric Overview<\/strong>: Real-time cockpit showing active events, seat occupancy, and pending requests."},{"src":"https:\/\/ps.w.org\/wsmaker\/assets\/screenshot-2.png?rev=3682092","caption":"<strong>Participant CRM<\/strong>: Searchable attendee directory with contact info and booking history."},{"src":"https:\/\/ps.w.org\/wsmaker\/assets\/screenshot-3.png?rev=3682092","caption":"<strong>Poster &amp; Banner Builder<\/strong>: 3-column layout with customizable typography, colors, background zoom\/positioning, and template saving."},{"src":"https:\/\/ps.w.org\/wsmaker\/assets\/screenshot-4.png?rev=3682092","caption":"<strong>Settings &amp; Security<\/strong>: Native configuration panel with AES-256 encrypted mail credentials and rate limit protection."},{"src":"https:\/\/ps.w.org\/wsmaker\/assets\/screenshot-5.png?rev=3682092","caption":""},{"src":"https:\/\/ps.w.org\/wsmaker\/assets\/screenshot-6.png?rev=3682092","caption":""},{"src":"https:\/\/ps.w.org\/wsmaker\/assets\/screenshot-7.png?rev=3682092","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>WSMaker<\/strong> is a full Training Management System (TMS) \u2014 not just a CRM, not just an LMS. It combines event and workshop scheduling, an attendee CRM with two-way communication tracking, and a marketing creative suite in one plugin, designed for course creators, educators, trainers, agencies, academies, and event organizers across any industry.<\/p>\n\n<p>Full, human-readable source code (including the Vue.js source behind the compiled admin panel bundles in assets\/dist\/, under <code>admin-src\/<\/code>) is publicly available at: <a href=\"https:\/\/github.com\/Francesco1968a\/wsmaker\">github.com\/Francesco1968a\/wsmaker<\/a> \u2014 to rebuild a bundle: <code>cd admin-src &amp;&amp; npm install &amp;&amp; WS_BUNDLE=&lt;bundle-name&gt; npx vite build<\/code> (bundle names match the <code>assets\/dist\/*.js<\/code> filenames).<\/p>\n\n<p>Developed by <a href=\"https:\/\/francescoverolino.com\/wsmaker\">Francesco Verolino<\/a><\/p>\n\n<p>Whether you run photography workshops, masterclasses, business seminars, art retreats, or online training, WSMaker provides the frictionless workflow to manage every aspect of your events.<\/p>\n\n<h3>\ud83c\udf1f Key Features<\/h3>\n\n<ul>\n<li><strong>Event &amp; Workshop Management<\/strong>: Create and schedule single-day or multi-day workshops, define categories, maximum seats, pricing, and registration status.<\/li>\n<li><strong>Participant CRM<\/strong>: Centralized attendee database with complete history, registration status (<em>Requested<\/em>, <em>Confirmed<\/em>, <em>Cancelled<\/em>), multi-person booking support, and custom attendee notes.<\/li>\n<li><strong>Interactive Communication Timeline<\/strong>: Complete log of interactions with attendees (<em>Email sent<\/em>, <em>Replies received<\/em>, <em>Status updates<\/em>), backed by two-way IMAP\/SMTP integration.<\/li>\n<li><strong>Smart T-15 Email Reminders<\/strong>: Automated summary reminders dispatched 15 days before the event start date to confirmed participants.<\/li>\n<li><strong>Built-in Social Banner &amp; Poster Studio<\/strong>: In-browser graphic studio with real-time canvas rendering. Generate square (Instagram feed), portrait (Stories\/Reels), and landscape (Facebook) promo posters with custom typography, background photo manipulation, and instant PNG export.<\/li>\n<li><strong>Anti-Spam &amp; Rate Limiting Engine<\/strong>: Native IP-based rate limiting and invisible honeypot protection to safeguard your registration endpoints against bot flooding.<\/li>\n<li><strong>Pure WordPress Native Admin<\/strong>: Fast, clean interface respecting the official WordPress design system, lightweight and clutter-free.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<ul>\n<li><p><strong>WSMaker Global Hub \u2014 event syndication<\/strong> (<a href=\"https:\/\/wsmaker.pro\">wsmaker.pro<\/a>): Off by default. Only when the administrator explicitly activates the \"Global Hub Sync\" module, published workshop data is sent to the WSMaker global directory to increase event discovery, on every publish\/update of an event. This includes: title, description\/excerpt, dates and location (city, country, address), category, price and deposit, seat availability, the featured image, the booking page URL, and the organizer's public profile (name, role, bio, photo, website, languages) as configured in the plugin's own settings.\nTerms of Service: <a href=\"https:\/\/wsmaker.pro\/terms\/\">wsmaker.pro\/terms<\/a> \u2014 Privacy Policy: <a href=\"https:\/\/wsmaker.pro\/privacy-policy\/\">wsmaker.pro\/privacy-policy<\/a><\/p><\/li>\n<li><p><strong>WSMaker Global Hub \u2014 shared category list<\/strong> (<a href=\"https:\/\/wsmaker.pro\">wsmaker.pro<\/a>): Used to keep the \"Categories &amp; Types\" dropdown suggestions in sync with a shared, curated taxonomy list maintained centrally, so every installation offers the same well-organized set of workshop categories\/event types instead of each site inventing its own. This is a one-way, anonymous GET request (no site URL, email, or identifying data is sent) that fires at most once every 24 hours (cached) when an admin opens that screen. If the service is unreachable, the plugin falls back to a small built-in default list \u2014 nothing else in the plugin depends on this call succeeding.\nTerms of Service: <a href=\"https:\/\/wsmaker.pro\/terms\/\">wsmaker.pro\/terms<\/a> \u2014 Privacy Policy: <a href=\"https:\/\/wsmaker.pro\/privacy-policy\/\">wsmaker.pro\/privacy-policy<\/a><\/p><\/li>\n<li><p><strong>WSMaker PRO \u2014 license verification<\/strong> (<a href=\"https:\/\/api.francescoverolino.com\">api.francescoverolino.com<\/a>): Only called when the administrator manually submits a PRO license key in WSMaker \u2192 Settings \u2192 License. Sends the entered license key and the site's home URL to verify the license and unlock PRO features; no other data is transmitted, and nothing is sent unless the admin actively submits that form.\nPrivacy Policy: <a href=\"https:\/\/francescoverolino.com\/privacy\/\">francescoverolino.com\/privacy<\/a><\/p><\/li>\n<li><p><strong>ip-api.com \u2014 IP geolocation for the admin notification email<\/strong> (<a href=\"http:\/\/ip-api.com\">ip-api.com<\/a>): Off by default. Only when the administrator explicitly enables \"IP Geolocation\" in Settings \u2192 General, the submitting visitor's IP address is sent to ip-api.com's free lookup endpoint after a new registration request, to add a city\/country hint to the admin notification email. The result is cached for 7 days per IP. Nothing is sent unless this setting is turned on. The administrator can replace ip-api.com with their own geolocation provider's URL in the same settings section (e.g. for a service with commercial-use terms, or higher volume) \u2014 in that case this plugin instead contacts whatever URL the administrator has configured.\nTerms of Service: <a href=\"https:\/\/ip-api.com\/docs\/legal\">ip-api.com\/docs\/legal<\/a> \u2014 Privacy Policy: <a href=\"https:\/\/ip-api.com\/docs\/legal\">ip-api.com\/docs\/legal<\/a><\/p><\/li>\n<li><p><strong>Jitsi Meet<\/strong> (<a href=\"https:\/\/meet.jit.si\">meet.jit.si<\/a>): Only loaded on the \"Virtual Classroom\" shortcode output for an event whose organizer has selected \"Jitsi Meet\" as the virtual platform and left the link field empty (an automatically-generated public meet.jit.si room is used) or entered a meet.jit.si link. The visitor's browser loads Jitsi's external_api.js script directly from meet.jit.si and connects to Jitsi's public video-conferencing service to join the room; standard data shared with any Jitsi Meet session applies (see Jitsi's own policies). No data is sent unless a visitor actually opens a page containing an event configured for Jitsi.\nTerms of Service: <a href=\"https:\/\/jitsi.org\/meet-jit-si-terms-of-service\/\">jitsi.org\/meet-jit-si-terms-of-service<\/a> \u2014 Privacy Policy: <a href=\"https:\/\/jitsi.org\/meet-jit-si-privacy\/\">jitsi.org\/meet-jit-si-privacy<\/a><\/p><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>wsmaker<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the ZIP file via <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Navigate to <strong>WSMaker &gt; Settings<\/strong> to configure your brand name, email settings (IMAP\/SMTP for replies), and anti-spam preferences.<\/li>\n<li>Create your first workshop under <strong>WSMaker &gt; Categories &amp; Types<\/strong> and <strong>Events &amp; Registrations<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20plugin%20only%20for%20photography%20workshops%3F\"><h3>Is this plugin only for photography workshops?<\/h3><\/dt>\n<dd><p>No! While it was battle-tested by photographers, WSMaker is completely versatile and works for any type of course, masterclass, seminar, retreat, coaching program, or event.<\/p><\/dd>\n<dt id=\"do%20i%20need%20third-party%20forms%20or%20crm%20plugins%3F\"><h3>Do I need third-party forms or CRM plugins?<\/h3><\/dt>\n<dd><p>WSMaker includes its own attendee intake engine and CRM. However, it also integrates seamlessly with Fluent Forms and WordPress native shortcodes.<\/p><\/dd>\n<dt id=\"how%20does%20the%20poster%20generator%20work%3F\"><h3>How does the poster generator work?<\/h3><\/dt>\n<dd><p>The poster builder operates entirely client-side using the HTML5 Canvas API. It renders high-resolution graphics directly in your browser with zero server CPU overhead and exports crystal-clear PNG files.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Full source-string i18n overhaul: the plugin's UI was hardcoded in Italian despite the public listing being in English. Flipped the PHP source strings to English (Italian now ships as a proper translation), and built i18n infrastructure for the Vue admin panels from scratch (they previously had none) \u2014 all 15 Vue panels plus the vanilla-JS Poster Templates screen now translate.<\/li>\n<li>Added 4 new complete translations: Spanish (es_ES), French (fr_FR), German (de_DE), and Brazilian Portuguese (pt_BR) \u2014 alongside the existing Italian (it_IT).<\/li>\n<li>Fixed 27 admin menu labels in the Italian translation that had a translated-looking but untranslated string (<code>msgstr<\/code> identical to the English <code>msgid<\/code>), so they silently stayed in English even with the Italian locale active.<\/li>\n<li>Repositioned the plugin as a Training Management System (TMS): updated title, tags, and description.<\/li>\n<li>Fixed several stale\/broken references in this readme (old <code>workshop-suite<\/code> folder name, Italian menu labels, non-clickable bare URLs).<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Renamed the last remaining short-prefixed identifiers found by review: two shortcode tags (<code>[eventi_categoria]<\/code>\u2192<code>[wsma_eventi_categoria]<\/code>, <code>[workshop_prossimo]<\/code>\u2192<code>[wsma_workshop_prossimo]<\/code>), a transient cache key, an admin menu slug, and the Webhooks module's form\/nonce action names \u2014 all now under the <code>wsma_<\/code>\/<code>wsma-<\/code> namespace, no leftover <code>ws_<\/code>\/<code>ws-<\/code> prefixes.<\/li>\n<li>Existing published pages using the two old shortcode tags were migrated to the new tags directly (no alias layer needed going forward).<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Removed the Custom CSS admin feature from this (free) plugin \u2014 arbitrary CSS\/code insertion is no longer permitted per WordPress.org guidelines. (The equivalent feature remains available only in the separately-distributed PRO add-on, not reviewed by WordPress.org.)<\/li>\n<li>Disclosed the Jitsi Meet external service (used only by the optional virtual-classroom shortcode) and documented the plugin's non-compiled JS source location in the readme.<\/li>\n<li>Switched an unescaped HTML echo (<code>[ws_acquista]<\/code> connector output) to <code>wp_kses_post()<\/code>.<\/li>\n<li>Renamed the remaining short (<code>ws<\/code>\/<code>wv<\/code>) prefixed global identifiers to the <code>wsma<\/code>\/<code>WSMA<\/code> namespace: custom post types (<code>ws_evento<\/code>\u2192<code>wsma_evento<\/code>, <code>ws_partecipante<\/code>\u2192<code>wsma_partecipante<\/code>, <code>ws_iscrizione<\/code>\u2192<code>wsma_iscrizione<\/code>), taxonomy (<code>categoria_evento<\/code>\u2192<code>wsma_categoria_evento<\/code>), the license option\/settings group, the Hub Sync legacy-backfill flag, and two internal options. A one-time migration on upgrade moves existing data to the new post type\/taxonomy names automatically \u2014 no re-entry needed.<\/li>\n<li>Shortcode tags (<code>[ws_form_iscrizione]<\/code>, <code>[ws_acquista]<\/code>, <code>[ws_prezzo]<\/code>, <code>[ws_acconto]<\/code>, <code>[ws_proponente]<\/code>, <code>[ws_workshop_page]<\/code>, <code>[ws_aula_virtuale]<\/code>, <code>[ws_workshop_text]<\/code>) now have <code>wsma_<\/code>-prefixed primary equivalents; the original tags remain registered as permanent aliases so pages built before this update keep working unchanged.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixed <code>[ws_form_iscrizione]<\/code> silently failing to submit whenever a page embeds more than one instance of the form (e.g. one inline plus one per date inside a \"Request info\" modal). The frontend script relied on <code>getElementById()<\/code> against a non-unique ID, so only the first instance on the page ever got its submit handler attached \u2014 every other instance fell back to a native browser form submission (page reload, no data sent, no error shown). Now every instance is wired up independently via its shared CSS classes.<\/li>\n<li>The admin notification email for a new registration request now includes the city and number of attendees the visitor entered (previously silently omitted).<\/li>\n<li>New optional setting (Settings \u2192 General, off by default): add a city\/country hint to that same email, looked up from the visitor's IP via ip-api.com.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Renamed the plugin from Workshop Suite to WSMaker (trademark conflict resolution requested by the WordPress.org review team) \u2014 new text domain <code>wsmaker<\/code>, updated branding throughout.<\/li>\n<li>Renamed all internal PHP class\/interface\/constant names and custom hook names from the <code>WS_<\/code>\/<code>ws_<\/code> prefix to <code>WSM_<\/code>\/<code>wsm_<\/code> for a properly unique namespace (no functional change; a corresponding update ships in the PRO add-on to keep both in sync).<\/li>\n<li>Switched all <code>date()<\/code>\/<code>parse_url()<\/code> calls to their WordPress-safe equivalents (<code>current_time()<\/code>, <code>wp_date()<\/code>, <code>wp_parse_url()<\/code>) for correct timezone handling across installs.<\/li>\n<li>Hardened output escaping across admin screens and shortcodes; gated remaining debug <code>error_log()<\/code> calls behind <code>WP_DEBUG<\/code>.<\/li>\n<li>Fixed the Global Hub Sync module silently failing to fire since the <code>evento<\/code> \u2192 <code>ws_evento<\/code> post type rename (stale hook name).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Category price and deposit fields, with <code>[ws_prezzo]<\/code>\/<code>[ws_acconto]<\/code> shortcodes.<\/li>\n<li>Payment status tracking on registrations (pending \/ deposit paid \/ paid in full).<\/li>\n<li>Category price\/deposit prefill in the attendee intake form.<\/li>\n<li>Category-scoped date filtering for the registration form shortcode.<\/li>\n<li>Category and event geo-location fields (city, country, address), with automatic fallback from event to category and syndication to the Global Hub.<\/li>\n<li>Full Vue 3 source rewrite of every admin panel (Calendario, Archivio, Messaggi, Riepilogo, Scheda Partecipante, Anagrafica, Ringraziamento, Dashboard) \u2014 no more editing minified bundles by hand.<\/li>\n<li>Monthly calendar view added to the Calendario panel, alongside the existing subscription\/ICS card.<\/li>\n<li>Restored the frontend dark\/light theme switch for shortcode-embedded admin panels (Settings \u2192 Default Frontend Theme); wp-admin's own pages are unaffected.<\/li>\n<li>New <code>[workshop_categorie]<\/code> shortcode for a dedicated frontend Categorie\/Tipologia panel, alongside the existing <code>[workshop_admin]<\/code> (Eventi\/Partecipanti).<\/li>\n<li>Removed several hundred lines of dead code (an abandoned course-access subsystem, an unreachable Locandine prototype, a handful of orphaned helper functions).<\/li>\n<li>Ongoing rebrand cleanup and internal hardening.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release on WordPress.org.<\/li>\n<li>All-in-one Event Manager with category and format configuration.<\/li>\n<li>Comprehensive Attendee CRM with full interaction timeline.<\/li>\n<li>HTML5 Canvas Poster &amp; Social Banner Builder with custom font rendering.<\/li>\n<li>Automated T-15 email reminders with WP Timezone synchronization.<\/li>\n<li>Configurable IP rate limiting and honeypot protection.<\/li>\n<li>Clean native WordPress Admin interface.<\/li>\n<\/ul>","raw_excerpt":"A full Training Management System (TMS) for WordPress: workshop and event scheduling, attendee CRM with communication tracking, and a social banner bu &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/357083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=357083"}],"author":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/frak68"}],"wp:attachment":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=357083"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=357083"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=357083"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=357083"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=357083"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=357083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}