{"id":355541,"date":"2026-08-20T03:54:48","date_gmt":"2026-08-20T03:54:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/coursfox-convert-pdfs-into-online-courses\/"},"modified":"2026-08-20T03:54:26","modified_gmt":"2026-08-20T03:54:26","slug":"coursfox-convert-pdfs-into-online-courses","status":"publish","type":"plugin","link":"https:\/\/ca.wordpress.org\/plugins\/coursfox-convert-pdfs-into-online-courses\/","author":23527322,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.16.0","stable_tag":"1.16.0","tested":"7.0.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Coursfox: Convert PDFs into online courses","header_author":"Platkadigital","header_description":"Turn PDFs and documents into online courses, quizzes, and flashcards. Publish them with shortcodes or blocks, capture leads from quiz takers, and track results \u2014 all from the WordPress admin.","assets_banners_color":"cbccd1","last_updated":"2026-08-20 03:54:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/coursfox.com","header_author_uri":"https:\/\/platkadigital.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":26,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.16.0":{"tag":"1.16.0","author":"platkadigital","date":"2026-08-20 03:54:26"}},"upgrade_notice":{"1.16.0":"<p>Security and compatibility release. Adds full data removal on uninstall and requires a nonce for lead submissions.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3655756,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3655756,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3655756,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3655756,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"coursfox\/content":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"coursfox\/content","title":"Coursfox","category":"embed","icon":"welcome-learn-more","description":"Display a Coursfox course, quiz, or flashcard deck.","keywords":["coursfox","course","quiz","flashcard"],"textdomain":"coursfox-convert-pdfs-into-online-courses","editorScript":"file:.\/block.js","attributes":{"contentType":{"type":"string","default":"course"},"courseId":{"type":"string","default":""},"token":{"type":"string","default":""},"limit":{"type":"number","default":0},"columns":{"type":"number","default":3},"showContent":{"type":"boolean","default":true},"mode":{"type":"string","default":"native"},"height":{"type":"string","default":"800px"},"layout":{"type":"string","default":"accordion"},"styleMode":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"]}}},"tagged_versions":["1.16.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Course grid rendered on the front end.","2":"Interactive quiz with instant scoring.","3":"Generating a course from a PDF in the admin.","4":"Captured leads with CSV export.","5":"Plugin settings."}},"plugin_section":[],"plugin_tags":[7114,18342,52202,2195,583],"plugin_category":[53],"plugin_contributors":[275779],"plugin_business_model":[],"class_list":["post-355541","plugin","type-plugin","status-publish","hentry","plugin_tags-courses","plugin_tags-elearning","plugin_tags-flashcards","plugin_tags-lms","plugin_tags-quiz","plugin_category-ratings-and-reviews","plugin_contributors-platkadigital","plugin_committers-platkadigital"],"banners":{"banner":"https:\/\/ps.w.org\/coursfox-convert-pdfs-into-online-courses\/assets\/banner-772x250.png?rev=3655756","banner_2x":"https:\/\/ps.w.org\/coursfox-convert-pdfs-into-online-courses\/assets\/banner-1544x500.png?rev=3655756","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/coursfox-convert-pdfs-into-online-courses\/assets\/icon-128x128.png?rev=3655756","icon_2x":"https:\/\/ps.w.org\/coursfox-convert-pdfs-into-online-courses\/assets\/icon-256x256.png?rev=3655756","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Coursfox turns your existing documents into structured learning material and publishes it on your WordPress site.<\/p>\n\n<p>Upload a PDF from the WordPress admin and the connected Coursfox service returns a course outline, lesson content, quiz questions, and flashcards. You then place that material anywhere on your site with a shortcode or the Coursfox block, or publish it as a standalone course page.<\/p>\n\n<h4>What you can do<\/h4>\n\n<ul>\n<li><strong>Generate from a PDF<\/strong> \u2014 upload a document in the admin and get a course, quiz, and flashcard set back.<\/li>\n<li><strong>Publish anywhere<\/strong> \u2014 five shortcodes and a block editor block.<\/li>\n<li><strong>Standalone course pages<\/strong> \u2014 publish a generated course as its own page with a reader layout and a per-course quiz URL.<\/li>\n<li><strong>Capture leads<\/strong> \u2014 optionally ask quiz takers for a name and email before they start, with a consent checkbox and configurable retention.<\/li>\n<li><strong>Track results<\/strong> \u2014 see attempts, scores, and per-learner rankings in the admin.<\/li>\n<li><strong>SEO<\/strong> \u2014 emits schema.org <code>Course<\/code> structured data for pages that render a course.<\/li>\n<li><strong>Theme-friendly styling<\/strong> \u2014 choose the Coursfox look or a structural-only stylesheet that inherits your theme's colours and fonts.<\/li>\n<\/ul>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[coursfox_courses limit=\"10\" columns=\"3\"]<\/code> \u2014 a grid of your courses.<\/li>\n<li><code>[coursfox_course id=\"123\"]<\/code> \u2014 one course with its curriculum.<\/li>\n<li><code>[coursfox_quiz id=\"123\"]<\/code> \u2014 an interactive quiz.<\/li>\n<li><code>[coursfox_flashcards id=\"123\"]<\/code> \u2014 a flashcard deck.<\/li>\n<li><code>[coursfox_embed id=\"123\"]<\/code> \u2014 the hosted embed view.<\/li>\n<\/ul>\n\n<h4>A Coursfox account is required<\/h4>\n\n<p>This plugin is a client for the Coursfox service. You need a free or paid account at coursfox.com to generate and serve course content. Without a connected account the plugin has nothing to display.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Coursfox API at <code>https:\/\/coursfox.com<\/code> (or a custom base URL you configure under <strong>Coursfox \u2192 Settings<\/strong>). The connection is required for the plugin to function \u2014 all course, quiz, and flashcard content is stored and served by that service, not by your WordPress site.<\/p>\n\n<p><strong>When data is sent and what is sent:<\/strong><\/p>\n\n<ul>\n<li><strong>Connecting your account<\/strong> (admin, on demand) \u2014 your Coursfox account email and password are sent once to obtain an API token. The password is not stored in WordPress; only the returned token is.<\/li>\n<li><strong>Generating a course<\/strong> (admin, on demand) \u2014 the contents of the PDF you upload, plus the title, language, and options you choose.<\/li>\n<li><strong>Displaying content<\/strong> (front end, on page render) \u2014 the course, quiz, or flashcard ID being displayed, and your API token. Responses are cached in WordPress transients for the interval you configure.<\/li>\n<li><strong>Submitting a quiz<\/strong> (front end, when a visitor submits answers) \u2014 the visitor's selected answers, and, if the lead capture feature is enabled, the name and email they entered.<\/li>\n<li><strong>AI tutor and audio narration<\/strong> (front end, if used by a visitor) \u2014 the visitor's typed question or the lesson text to be narrated.<\/li>\n<\/ul>\n\n<p>No data is sent to the service on page loads that do not render Coursfox content.<\/p>\n\n<p>Service provider: Coursfox.\nTerms of service: https:\/\/coursfox.com\/terms\nPrivacy policy: https:\/\/coursfox.com\/privacy<\/p>\n\n<p>If you enable the optional lead webhook, submitted lead data (name, email, quiz title, score) is additionally sent to the webhook URL you configure. That destination is yours to choose and is not operated by Coursfox.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>If you enable lead capture, the plugin stores quiz takers' names, email addresses, consent status, scores, and submission timestamps in a custom database table on your own site. You can export or delete this data from <strong>Coursfox \u2192 Leads<\/strong>, set an automatic retention window, and require an explicit consent checkbox with a link to your privacy policy. Uninstalling the plugin deletes the table and all captured leads.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/coursfox\/<\/code>, or install it from <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate it through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Coursfox \u2192 Settings<\/strong> and connect your Coursfox account.<\/li>\n<li>Add a shortcode or the Coursfox block to any post or page, or generate a course from a PDF under <strong>Coursfox \u2192 Generate<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20coursfox%20account%3F\"><h3>Do I need a Coursfox account?<\/h3><\/dt>\n<dd><p>Yes. The plugin displays content hosted by the Coursfox service, so an account and API token are required. See the External services section above.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Settings<\/strong> you can switch to a structural-only stylesheet that supplies layout and spacing only, so your theme's colours, fonts, and buttons carry through.<\/p><\/dd>\n<dt id=\"can%20i%20collect%20emails%20from%20quiz%20takers%3F\"><h3>Can I collect emails from quiz takers?<\/h3><\/dt>\n<dd><p>Yes. Enable lead capture under <strong>Settings<\/strong>. You can require a consent checkbox, link your privacy policy, set a retention period after which leads are purged automatically, and export everything as CSV.<\/p><\/dd>\n<dt id=\"where%20is%20quiz%20data%20stored%3F\"><h3>Where is quiz data stored?<\/h3><\/dt>\n<dd><p>Quiz questions and course content live on the Coursfox service. Captured leads live in a table on your own WordPress database.<\/p><\/dd>\n<dt id=\"does%20it%20add%20structured%20data%20for%20search%20engines%3F\"><h3>Does it add structured data for search engines?<\/h3><\/dt>\n<dd><p>Yes, schema.org <code>Course<\/code> JSON-LD is emitted on pages that render a Coursfox course. It can be turned off in Settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.16.0<\/h4>\n\n<ul>\n<li>Hardened output escaping throughout, including JSON-LD structured data.<\/li>\n<li>Lead submissions now require a REST nonce.<\/li>\n<li>Moved all inline scripts and styles into enqueued assets.<\/li>\n<li>Added <code>uninstall.php<\/code> so all options, transients, leads, and course data are removed on deletion.<\/li>\n<li>Fixed undefined array key notices on PHP 8.<\/li>\n<li>Translated previously hardcoded strings; added a translation template.<\/li>\n<li>Tested against WordPress 7.0 and PHP 8.4.<\/li>\n<\/ul>\n\n<h4>1.15.6<\/h4>\n\n<ul>\n<li>Quiz page design refresh with hero banner and question count badge.<\/li>\n<li>Clearer connection error messages.<\/li>\n<\/ul>\n\n<h4>1.15.3<\/h4>\n\n<ul>\n<li>Added quiz functionality.<\/li>\n<\/ul>\n\n<h4>1.15.0<\/h4>\n\n<ul>\n<li>Added audio narration and AI tutor.<\/li>\n<\/ul>\n\n<h4>1.14.0<\/h4>\n\n<ul>\n<li>Added lead capture, course publishing, SEO structured data, and style customization.<\/li>\n<\/ul>","raw_excerpt":"Turn PDFs and documents into online courses, quizzes, and flashcards. Publish with shortcodes or blocks, capture leads, and track results.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/355541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=355541"}],"author":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/platkadigital"}],"wp:attachment":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=355541"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=355541"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=355541"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=355541"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=355541"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=355541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}