There is a buddypress addon called Courseware but it means you need the whole buddypress package.
http://wordpress.org/extend/plugins/buddypress-courseware/
It might be doing too much though, and potentially you’ll have a lot of CSS to write / templates to edit.
Related Posts:
- A better way to override plugin’s JS files?
- Output before and after the loop
- How to make sense of the active_plugins option_value to enable and disable certain plugins from the database?
- Loading posts associated only to the logged in user on recent posts page
- Disabling Comment Notifications for Post Author
- Disable author pages for specific users
- Can I enable/disable/hide plugins on a per-site basis in multisite?
- Updating WordPress – the best approach (updating wp core, plugins and db)
- How do you import members from another system to WordPress and update passwords so they’ll work?
- Get info (url) from already enqueued styles
- WordPress import does not fetch images, but just links them
- Show the “ratingValue” and “ratingCount” values of KK Star Ratings Plugin
- bulk post_content update
- Plugin throws up 404 on front-end when when enqueuing style with filetime
- Dequeue / Deregister script and replace it with a new plugin
- Woocommerce cart is a non-object inside `admin_post` action [closed]
- List of plugin updates in admin bar
- What are WordPress installation percentages by version?
- Peer Review Plugin for Posts? [closed]
- Show a confirmation message on plugin deactivation
- How extend shortcode default values for a plugin?
- WooCommerce – Is is possible to replace downloadable file and allow existing customer to get it?
- How to debug register_setting callback function
- WordPress redirect all 404 pages to the Homepage
- How to edit Image layout in single product page in woocommerce on wordpress?
- Can a manually uploaded plugin be made to track updates from the WordPress.org plugin directory?
- Can I hook into get_avatar to supply a hash instead of an email?
- Editing admin pages in WordPress [closed]
- Dropdown menu on custom page with product to choose number of products per page
- Custom form action to handle data inside a plugin
- How do action and filter hooks understand where to look for the core function that we hooked our function to them
- WP Post Template – Templates in own folder
- Recreating a local repository from a currently existing wordpress.org repo..which I own
- Bootstrap Drop Down menu is not working
- How to change constants in WordPress wp-config.php programmatically?
- How to hide CSS by default and show on button press
- How to upload WordPress Images to remote web server and display those images in WordPress gallery [closed]
- How to update post’s content on post publish?
- Anspress Customization: How to show logged in user votes on a single answer?
- Create a table with wordpress plugin boilerplate
- Embed plugin into Custom Page Template
- Should I not update the plugin?
- Improving the perfomance of a plugin action
- How do I enforce users to fill a determined custom field using WyPiekacz?
- How do I create a Client Logos section in admin menu?
- Options for math equations rendering in WP in own server
- Support information in backend
- Can I use Symfony components in a plugin that I want to submit to the WordPress plugin repository?
- http_response_timeout filter not working
- wp_enqueue_style for plugin options page
- Popular Post With Thumbnail?
- How to update a local development plugin on a separate machine
- Do I need a backup plugin if I’m already backing up via cPanel?
- oAuth2 Authentication in WordPress using WP OAuth Server and WP API plugins
- WP::is_main_query() Not Working
- Show media-uploads to all users
- post_content is empty
- Widget where it can make changes to the container
- I want to reset user’s post meta after successfully login
- Widget Screen Locked
- Making a Contact Form 7 calendar entry “required” [closed]
- W3 Total Cache plugin chronic message
- How to prevent plugin, theme installation failures on WordPress?
- How to make a slider hearder?
- Warning: Attempt to read property “ID” on null in C:\xampp\htdocs\Nnamdi1\wp-content\plugins\elementor\core\base\document.php on line 250 [closed]
- Adding CASE in WP_Query
- i need to make custom cron_schedule with custom interval time as a parameter into a custom payment gateway plugin wordpress
- Get all image in media Gallery with alt/title?
- WP Function does not trigger on Webhook API Call
- how to add custom culomn to add user wordpress in plugin
- How to add specific script to WordPress webpage that will working with user input and databases
- Displaying different content depending on variable
- After reading 3 story by user ask for subscription popup
- Pay Employee via WordPress
- Edit plugin’s HTML output with Hooks
- How to echo a PHP Code After the Content
- Display information from metabox
- How to find out programmatically whether any cache plugin is installed in the WordPress website?
- Show custom taxonomy in theme
- errno: 150 “Foreign key constraint is incorrectly formed” [closed]
- Implementation to count page visits of unique visitors based on a cookie
- Create Biographies
- How to link file or image from wordpress plugin dir to theme by using themes function.php, is it possible?
- Social sharing plugin directing to blank page after post sharing
- Direct URL to a template via plugin
- Which One Is Better For Managing Add Ons For Extensible Plugin?
- WP REST API Access-Control-Allow-Origin response is cached
- How to build a navigation menu for long-form texts like this one
- Like/Dislike Bar not working when updating
- Posts are deleted everyday at night
- how to change/remove/hide menu under installed plugins
- Get Core Functionality from Within a (Secondary) Plugin File
- Single dash converted to double dash
- Output pure JSON wordpress
- WordPress plugin add_filter returning a link does not work. What is the correct way?
- Screen Options drop-down does not show
- onclick open window [closed]
- How to create separate shop pages in woocommerce for each product category [closed]
- WooCommerce Cart not showing up [closed]
- $wpdb selects wrong database