School Accounts

This feature is available from Namate! PRO 1.3.3.


School accounts let you sell access to courses and classes to school, groups, private teachers, marketers etc. You can set both individual and school prices to courses or classes.
School accounts are not different than student accounts except that they get a simple dashboard and a school signup code. When a student registers with the code, they become a student of the school and get free access to courses and classes/groups that the school has access to.
This is explained in more details in the “Student’s Registration and Access” section at the end of this article.


To enable the feature go to Namaste! LMS -> School Accounts page and enable it:

Let’s elaborate:

  • The option “Automatically assign students to the classes that the school account is assigned to” will automatically sign up any student registered under the school in the classes/groups the school has purchased as school account. If you don’t select the option the students will still be able to sign up the classes manually. If some of the classes requires a signup fee, the fee will be void for the school student and they’ll be able to sign up for free.
  • The second option defines whether your default WordPress registration page will allow signup under a school or not. If not, only a registration page visited with the special URL will allow such sign up. The URL is also available in the School’s dashboard so your clients can give it to their students.

Under the global settings you’ll see your courses and classes / groups. For each course or class you can define a price for school sign-up. Use the corresponding shortcode to publish a sign-up button anywhere on your site. Signing up as school is possible only through this button. If you want to charge for school signups make sure you have entered some payment settings in your Namaste! LMS settings page. Currently school account signup is integrated with Paypal and Stripe payments and you can’t use any of the additional payment bridges for other gateways.

For each course or class you can see and manage the accounts signed up as school – add an account manually, or remove an account.

At the top of the course you will see the welcome shortcode. You can use it anywhere on a page, before namaste-mycourses shortcode for example, or in your theme header to display a greeting for school students. It can help them know the school name they signed up under. The school name is defined by the school account owner in their school dashboard.

The School’s Dashboard

Once someone registers as school under any course or class/group, they get the School’s Dashboard. It’s called My School Page and a link to it becomes available under My Courses menu in their dashboard.

The dashboard lets them:

  • Set a school name. The school name can be displayed by the shortcode you as admin can use (as explained in the previous section).
  • Get the school signup code and signup link. They can send this link to students they want signed up under them.
  • See classes and courses they signed up for.
  • See students signed up in their school.

Student’s Registration and Access

A student that signs up under a school is a regular Namaste! LMS student. However he gets access to the courses and classes/groups that the school account has signed up for. Let’s elaborate:

  • When a school account has bought a paid course, all students of the school can enroll that course for free. Students will never be automatically enrolled in a course however – they need to click the Enroll button.
  • When a school account is signed up for a class/group access, the students of the school will:
    a) be automatically signed up for these classes upon registration IF this option is selected on the Manage School Accounts page by the site admin
    b) be able to sign up for free for all these classes even if there is a fee otherwise.

The school accounts feature is in beta stage. There is a lot more to come in terms of reporting and flexibility. We welcome your feedback.


The grading system in Namaste! LMS can be optionally enabled from the Namaste! LMS Settings page. There is no fixed grading system, neither predefined choices so you can use anything you want.

In this article we’ll use one of the most common grading systems in the world with five letters: A, B, C, D, F. You can of course to choose grades like A-, B+ etc, a numeric grading system from 2 to 6 for example, a simple system having just “Fail” and “Pass” grades and so on.

Setting The Grading System

To configure a grading system you need to go to Namaste! LMS Settings page and check the checkbox as shown below:


Spacing between commas does not matter and all the spaces will be trimmed from your grades (we have intentionally misplaced one of the commas in the example above).

Once this is activated a menu “Gradebook” will appear under your Namaste! LMS menu. Upon selecting a course you will be able to see all students in it and assign grades to their lessons and courses.

Grading Assignments

Assignments can be graded by teachers / managers from the View Solutions page. These grades will then appear in the gradebook next to the lesson grade selector. They will not automatically grade the lesson but will be shown there to help the teacher decide about the lesson grade.

Grading Lessons

Lessons can be graded manually in the gradebook.

They can also be graded automatically if you have assigned a Watu / WatuPRO quiz to the lesson.  How does this work:

1. In the Edit Lesson page select that the quiz is required to complete the lesson:


2. It does not matter if you select specific grade(s) from the right selector. They have relation only to completing the lesson, not to grading it.

3. Select the checkbox below as shown so the grade from the quiz is transferred as lesson grade.

For this to work your quiz grade titles should match exactly the grades in Namaste! LMS. As you see in our example, quiz grades are A, B, C, D and F. So if the user achieves B on the quiz AND your grading system in Namaste! LMS contains grade “B”, the grade from the quiz will automatically become a grade for the lesson.

Another example: if you have entered the Namaste! LMS grades as “Passed, Failed” your quiz grades should also be “Passed” and “Failed”.

Grading Courses

Courses can be graded manually in the gradebook.

Courses can also be graded automatically as an average from the lesson grades. To do this, on the Edit Course page select the checkbox that says “Automatically grade this course based on its lesson grades”:


When this is select grading will automatically happen at the time of completing the course. The grades of all the graded lessons will be gathered and an average grade will be found based on them. This happens by automatically assigning points to each grade position, then finding the average of these points and figuring out the corresponding grade. The following illustration explains it visually:


The left side of the image shows how the selected by you grades are assigned points behind the scene based on their position (lowest start with 0 points and then it adds 1 point for each grade up). Then we collect the points for all lesson grades and divided by the number of lesson. The result is rounded to a whole number and the grade that has this number of points is assigned to the course. Lessons that have no grade assigned do not participate in the calculation and don’t increase the number of lessons the system divides on.

One important thing to note: since this calculation happens at the time of completing the course, a grade which is given to lesson after that will take no effect. So if your latest lesson triggers course completeness and you want it to participate in the grading, it should be graded before completing the lesson – either manually, or automatically via assigned quiz.

How To Add Custom Requirements To Complete a Lesson

By default Namaste! LMS lets you set the following requirements to complete a lesson:

  • Manual admin approval
  • Completing homework / assignments
  • Completing quiz / test
  • Manually clicking on “Mark completed” button

Since version 1.8.1 Namaste! LMS introduces new actions and filters that let you create custom plugins that will set lesson completion requirements. You can use this for example to integrate with plugin like Gravity forms, to have a game completion requirement, points earned from other plugin, or just literally everything.

Warning: programming stuff ahead.

Here are the steps you need to perform to do this with a bit of sample code:

1. Display and save your custom requirements in the Edit Lesson page. To do this you need to use the action called in lesson-meta-box.html.php:

do_action(‘namaste-lesson-requirements’, $post);

Here is how to use it:

a) In your plugin’s init() function add the output action:

add_action('namaste-lesson-requirements', 'my_plugin_lesson_requirements');

b) Create the function “my_plugin_lesson_requirements” and output checkboxes, radio buttons, drop-downs or whatever you need to do to allow the user to select custom requirements:

function my_plugin_lesson_requirements($lesson) {		
   $current_state = get_post_meta($lesson->ID, 'my_plugin_test', true);
   echo 'Just a test: <input checked="checked" name="my_plugin_test" type="checkbox" value="1" /&gt;';

The checkbox above is just hardcoded but you should be getting the idea. If for example you are asking for some form completions, you need to list all your forms with checkboxes, radio buttons, or in a drop-down and let the editor choose.

c) In your plugin’s init() function add the save action:

add_action('save_post', 'my_plugin_save_lesson');

d) Then your function should save the selection:

function my_plugin_save_lesson($post_id) {
   if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
   if ( !current_user_can( 'edit_post', $post_id ) ) return;
   if ('namaste_lesson' != $_POST['post_type']) return;
   // sanitize and validate your data yourself!!!
   update_post_meta($post_id, "my_plugin_test", $_POST['my_plugin_test']);

So far so good. You are displaying a requirement and saving it. Now you need to handle two more things:

2. Check the requirement Namaste! LMS user tries to complete a lesson. To do this you must use the namaste-lesson-other-requirements filter which Namaste! LMS calls like this:

apply_filters(‘namaste-lesson-other-requirements’, $current_status, $lesson_id, $student_id);

Here is how to do it:

a) In your plugin’s init() function declare the filter:

add_filter('namaste-lesson-other-requirements', 'my_plugin_is_lesson_ready', 10, 3);

b) Then create the function:

function my_plugin_is_lesson_ready($other_requirements, $lesson_id, $student_id) {
   if($other_requirements) return true; // very important!!! if other plugin has set this to true, just return true
   // IF there are unsatisfied requirements in your custom code, return true
   return false; // if no, return false

Finally, you should take care to output proper information in the lesson-todo function and the lesson-todo shortcode:

3. Handle lesson to-do information:

To do this you need to use the “namaste-lesson-other-todo” which Namaste! LMS defines like this:

apply_filters(‘namaste-lesson-other-todo’, $other_todo, $lesson_id, $student_id);

So, step by step:

a) In your plugin’s init() method declare the filter:

add_filter('namaste-lesson-other-todo', 'my_plugin_lesson_todo', 10, 3);

b) Then create the function:

function my_plugin_lesson_todo($other_todo, $lesson_id, $student_id) {
   // select what this student need to do from your plugin - queries not shown here
   // for anything that they have to do, APPEND it to $other_todo in a "li" tag:
   foreach($my_plugin_items as $item) {
     $other_todo .= '<li>'.$item->title.'</li>'."\n";
   return $other_todo;

It’s very important to append your output to $other_todo because other plugins may have modified the variable too. It’s also important to put each item into a “li” tag.

How To Create Your LMS Without WordPress Dashboard for Students

Many of the LMS users don’t want their students to access the content through the standard WordPress dashboard and the default “My Courses” menu link. This post will explain how you can do this step by step.

Note: this post explains the slow and free method of doing this. There is also fast and easy method: by purchasing the Namaste! LMS Theme which does all this automatically with just a few clicks.

1. Hide the dashboard

Obviously you need first to restrict the access to the dashboard. You can do this by hacking your WP theme or, much easier, by using a plugin like Remove Dashboard Access. There are more options to do this shown here.

Don’t do stupid things like protecting the whole wp-admin directory with .htaccess. This will stop plugins using ajax from working properly. And you will be using such plugins if you want to run quizzes.

2. List your courses

With or without the “My courses” page and the shortcode that exposes it, you need some way for the users to access the courses you offer.

We recommend to use the namaste-mycourses shortcode because it will dynamically show the courses with enroll buttons, links to lessons etc. But you can also work without it by simply publishing a page with all your courses and include enroll button in each of them.

3. List the lessons

There are several ways you can list the lessons without using the dashboard.

a) Use the namaste-mycourses shortcode which will repeat the dashboard. You will still need to use option b) in this case so the student can access the lessons from the course page.
b) Use the shortcode namaste-course-lessons inside the course contents. It will automatically list all the available lessons in the course with links to them. Check the internal Help page for more information about setting up your preferred ordering criteria
c) A third way to handle this would be to again use namaste-course-lessons shortcode but outside of the course page. Maybe you’ll want to manaually list all courses and lessons, or loop through courses inside your theme. the second argument of the shortcode allows you to specify course ID. So you can list courses and then use the shortcode like namaste-course-lessons status 5 to list the lessons in course with ID 5.

4. Handle assignments

You may want to include assignments to your lessons. Through the dashboard there are automated links to the assignments so it’s easy. But how to handle the things if you don’t use dashboard?

Use the namaste-assignments shortcode. It can be used inside the lesson contents in which case the shortcode needs no arguments. In case you want to list assignments in some other way (for example on a table with all the lessons in the course) you need to pass the lesson_id artument like this:

namaste-assignments lesson_id=”8″

You can do this multiple times on the page in case you want all lessons and their assignments to be shown in one place.

This shortcode will take care to automatically generate “submit solution” and “view solutions” links.

5. Certificates

User’s earned certificates can also be exposed outside of the dashboard. Just use the namaste-mycertificates shortcode on a designated post or page.

6. Reports

If you have the Namaste! Reports module you can also show the advanced reports using shortcodes. To display the user’s own reports use the shortcode namaste-reports-user. If you are building a site where student’s reports can be seen by anyone else, you can use the shortcode by passing user ID as second parameter like this: namaste-reports-user 2.

The user’s rankings can also be displayed using the namaste-reports-rank shortcode. You can copy it directly from the User Rankings page in your administration as it includes some parameters.

7. General advice

Ideally you don’t want non-logged in users to see all those “My courses”, “My certificates” etc links on your site because they can’t use them until they log in. So you may want to either create a separate page “My LMS” or something like that and list the links on it (with a warning that users should log in), or use is_user_logged_in() in your blog theme to make the links conditionally show or hide.

Creating Courses and Lessons

This quiz will help you check your knowledge about creating courses and lessons in Namaste! LMS.


What’s In Namaste! Reports

This is not so much a “how-to” lesson because running the reports is as simple as clicking the “Advanced Reports” link in your Namaste! LMS menu. This lesson will introduce you to what is available in the reports.


User Reports

For each student in the system you can see a chart showing their page views per course and lesson. A history of all their actions will show you when they started and completed a course or lesson, submitted a solution to assignment and so on.

A detailed breakdown table displays pageviews, solutions to assignments, grade, and more metrics for each lesson in the course.

The User Reports page for every user is also accessible from your WordPress Users page.

Each user reports page can be exposed on the front-end using a shortcode.

User Rankings

These are leaderboards showing how your students rank by number of courses completed, number of lessons completed, pageviews, average grade or points earned.

All these reports are also publishable by shortcodes.

Course / Lesson Reports

These reports are course / lesson – centric. Show total page views, page views per student, average performance in the course, number of students started and completed, and more.

The whole Advanced Reports page can also be enabled in the user’s dashboard  or by shortcodes as well.

How To Use Namaste! Connect

This module adds a new menu item under your Namaste! LMS menu. It’s called Namaste! Connect and presents you a single page with several controls:

Emails sent to admin or teacher

You can choose to be notified for actions that students do on your courses and lessons. Each of the email messages is configurable and has predefined content so you can get started really easy. Just select all desired checkboxes and save the settings.

Emails sent to student

Similar to the above, you can configure various emails to be sent to the students – for example when they have completed a course, when their solution to assignment is approved and so on.


Dashboard notices and activity stream

Similar to the email notices you can configure the notifications to be displayed as dashboard notices. The notices can also be shown in a widget or in a dedicated page. You can add interactivity if you allow students see notices for other students.


Comments on assignments

The Namaste! Connect module also enables comments on assignments. This setting is on the Add / Edit Assignment page and can be enabled individually for each assignment.

Assign Badges for Completing Courses

If you click on the Manage Badges menu you will get to a page that lets you create badges for user’s achievements in the LMS.

To assign a badge you may require a given course to be completed. If you have selected to use a grading system in the Namaste! LMS Settings page you can also require a specific grade to be achieved to earn the badge.

If you also use points system, a certain number of points may be required too.


All badges in Namaste! PRO can be also assigned as Open Badges. You just need to enter your issuer settings and fill graphic URL and criteria URL for the badge.

There is a shortcode that lets you list all users who earned a badge.

Reordering Courses and Lessons

The PRO plugin comes with an easy drag&drop interface to reorder your courses and lessons. The order you select will affect how “My Courses” page looks in the student’s dashboard if you use such. It also affects the shortcodes that list lessons in a course.

The shortcodes namastepro-prev-lesson, namastepro-next-lesson, and namastepro-first-lesson to generate easy navigation links through the lessons. There is a checkbox that can automatically replace the old navigation shortcodes from the free version if you have already used them.


Configure Delayed Access to Lessons

You can configure delayed access to lessons to ensure sequential delivery of the content. This may also be useful if you are selling time-based membership to the LMS using another plugin.


For each lesson you can define how many days must be passed from selected action before the student can access the lesson. Here are the supported action types:

  • The student starts the course
  • The student started to read another lesson from the course
  • The student has completed another lesson from the course

This way you can configure any kind of dependencies to ensure student will go through all the content in the desired order.