Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Installer ran successfully
Server metrics [RAM: ▲1.76MB] [CPU: ▲9.62ms] Passed 4 tests
Server-side resources used by Namaste! LMS
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.22 ▲1.75 | 48.92 ▲7.54 |
Dashboard /wp-admin | 5.06 ▲1.76 | 56.66 ▲6.09 |
Posts /wp-admin/edit.php | 5.13 ▲1.77 | 67.31 ▲23.22 |
Add New Post /wp-admin/post-new.php | 7.85 ▲1.96 | 99.81 ▲4.43 |
Media Library /wp-admin/upload.php | 4.98 ▲1.75 | 54.18 ▲20.43 |
Help /wp-admin/admin.php?page=namaste_help | 5.01 | 44.19 |
Assignments /wp-admin/admin.php?page=namaste_homeworks | 4.93 | 48.59 |
Courses /wp-admin/edit.php?post_type=namaste_course | 5.05 | 49.23 |
My Certificates /wp-admin/admin.php?page=namaste_my_certificates | 4.95 | 47.39 |
Submit solution /wp-admin/admin.php?page=namaste_submit_solution | 4.93 | 40.48 |
Students Earned Certificate /wp-admin/admin.php?page=namaste_student_certificates | 4.93 | 46.02 |
Download solution /wp-admin/admin.php?page=namaste_download_solution | 4.93 | 42.03 |
Students /wp-admin/admin.php?page=namaste_students | 5.15 | 44.83 |
My Courses /wp-admin/admin.php?page=namaste_my_courses | 4.93 | 44.96 |
Certificates /wp-admin/admin.php?page=namaste_certificates | 4.93 | 39.63 |
Server storage [IO: ▲1.86MB] [DB: ▲0.02MB] Passed 3 tests
Input-output and database impact of this plugin
The plugin installed successfully
Filesystem: 146 new files
Database: 14 new tables, 10 new options
New tables |
---|
wp_namaste_student_homeworks |
wp_namaste_student_courses |
wp_namaste_history |
wp_namaste_payments |
wp_namaste_solution_files |
wp_namaste_student_modules |
wp_namaste_student_lessons |
wp_namaste_homework_notes |
wp_namaste_webhooks |
wp_namaste_course_reviews |
... |
New WordPress options |
---|
namaste_need_login_text_module |
namaste_version |
widget_recent-posts |
db_upgraded |
can_compress_scripts |
namaste_need_login_text_course |
widget_recent-comments |
namaste_need_login_text_lesson |
widget_theysaidso_widget |
theysaidso_admin_options |
Browser metrics Passed 4 tests
A check of browser resources used by Namaste! LMS
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,982 ▲220 | 13.85 ▼0.47 | 8.13 ▲6.35 | 36.83 ▼7.29 |
Dashboard /wp-admin | 2,296 ▲116 | 5.64 ▲0.03 | 96.64 ▼2.39 | 40.76 ▼1.95 |
Posts /wp-admin/edit.php | 2,201 ▲98 | 2.03 ▲0.01 | 38.26 ▲2.96 | 36.10 ▼0.73 |
Add New Post /wp-admin/post-new.php | 1,607 ▲81 | 23.35 ▲0.23 | 694.45 ▲9.22 | 55.18 ▲2.67 |
Media Library /wp-admin/upload.php | 1,492 ▲92 | 4.23 ▼0.01 | 97.73 ▼8.73 | 42.86 ▼2.45 |
Help /wp-admin/admin.php?page=namaste_help | 1,172 | 1.96 | 22.84 | 33.57 |
Assignments /wp-admin/admin.php?page=namaste_homeworks | 1,066 | 1.82 | 23.17 | 30.16 |
Courses /wp-admin/edit.php?post_type=namaste_course | 1,255 | 1.98 | 35.12 | 32.23 |
My Certificates /wp-admin/admin.php?page=namaste_my_certificates | 856 | 1.84 | 24.69 | 26.66 |
Submit solution /wp-admin/admin.php?page=namaste_submit_solution | 763 | 1.54 | 6.64 | 14.04 |
Students Earned Certificate /wp-admin/admin.php?page=namaste_student_certificates | 863 | 1.70 | 23.06 | 24.78 |
Download solution /wp-admin/admin.php?page=namaste_download_solution | 763 | 1.54 | 6.93 | 17.11 |
Students /wp-admin/admin.php?page=namaste_students | 890 | 1.85 | 23.35 | 26.07 |
My Courses /wp-admin/admin.php?page=namaste_my_courses | 864 | 1.89 | 24.97 | 25.12 |
Certificates /wp-admin/admin.php?page=namaste_certificates | 1,057 | 2.02 | 25.12 | 25.69 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.02MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
It is recommended to fix the following
- Zombie tables detected upon uninstall: 14 tables
- wp_namaste_homeworks
- wp_namaste_student_modules
- wp_namaste_homework_notes
- wp_namaste_history
- wp_namaste_student_courses
- wp_namaste_course_reviews
- wp_namaste_student_lessons
- wp_namaste_visits
- wp_namaste_certificates
- wp_namaste_student_homeworks
- ...
- Zombie WordPress options were found after uninstall: 10 options
- theysaidso_admin_options
- can_compress_scripts
- widget_recent-comments
- namaste_version
- db_upgraded
- widget_recent-posts
- namaste_need_login_text_lesson
- namaste_need_login_text_course
- widget_theysaidso_widget
- namaste_need_login_text_module
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
These errors were triggered by the plugin
- > GET request to /wp-admin/admin.php?page=namaste_homeworks
- > Notice in wp-content/plugins/namaste-lms/models/homework-model.php+61
Undefined index: award_points
- > GET request to /wp-admin/admin.php?page=namaste_homeworks
- > Notice in wp-content/plugins/namaste-lms/models/homework-model.php+66
Undefined index: do
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=namaste_download_solution
- > Notice in wp-content/plugins/namaste-lms/controllers/homeworks.php+410
Undefined index: id
- > GET request to /wp-admin/admin.php?page=namaste_submit_solution
- > Notice in wp-content/plugins/namaste-lms/models/homework-model.php+282
Trying to get property 'course_id' of non-object
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=namaste_submit_solution
- > Notice in wp-content/plugins/namaste-lms/controllers/homeworks.php+208
Trying to get property 'ID' of non-object
- > GET request to /wp-admin/admin.php?page=namaste_submit_solution
- > Notice in wp-content/plugins/namaste-lms/models/homework-model.php+284
Trying to get property 'lesson_id' of non-object
- > GET request to /wp-admin/admin.php?page=namaste_submit_solution
- > Notice in wp-content/plugins/namaste-lms/models/lesson-model.php+215
Undefined offset: 0
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=namaste_download_solution
- > Notice in wp-content/plugins/namaste-lms/controllers/homeworks.php+412
Trying to get property 'id' of non-object
- > GET request to /wp-admin/admin.php?page=namaste_student_certificates
- > Notice in wp-content/plugins/namaste-lms/views/students-earned-certificate.html.php+2
Trying to get property 'title' of non-object
- > GET request to /wp-admin/admin.php?page=namaste_download_solution
- > Notice in wp-content/plugins/namaste-lms/controllers/homeworks.php+412
Undefined index: file_id
- > GET request to /wp-admin/admin.php?page=namaste_my_courses
- > Notice in wp-content/plugins/namaste-lms/controllers/courses.php+73
Undefined variable: stripe
- > GET request to /wp-admin/admin.php?page=namaste_certificates
- > Notice in wp-content/plugins/namaste-lms/controllers/certificates.php+19
Undefined index: action
SRP 0% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please fix the following items
- 3× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/namaste-lms/views/list-reviews.html.php
- > /wp-content/plugins/namaste-lms/views/plugins.php
- > /wp-content/plugins/namaste-lms/views/lesson-todo.php
- 99× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/namaste-lms/lib/lib/SKU.php:10
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/namaste-lms/views/reviews.html.php:1
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Error\\InvalidRequest' not found in wp-content/plugins/namaste-lms/lib/lib/Error/RateLimit.php:5
- > PHP Notice
Undefined variable: in_shortcode in wp-content/plugins/namaste-lms/views/my-certificates.php on line 1
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Error\\Base' not found in wp-content/plugins/namaste-lms/lib/lib/Error/Card.php:5
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/namaste-lms/lib/lib/Coupon.php:10
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/namaste-lms/lib/lib/Source.php:10
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/namaste-lms/lib/lib/ThreeDSecure.php:5
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/namaste-lms/lib/lib/SubscriptionItem.php:10
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/namaste-lms/lib/lib/InvoiceItem.php:10
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser issues were found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
8 plugin tags: learning, lms, courses, wpmu, lessons...
namaste-lms/namaste.php 85% from 13 tests
"Namaste! LMS" version 2.6.1.3's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
The following require your attention:
- Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug
- Main file name: Name the main plugin file the same as the plugin slug ("namaste-lms.php" instead of "namaste.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
No dangerous file extensions were detected22,265 lines of code in 136 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PO File | 6 | 3,674 | 3,965 | 11,227 |
PHP | 127 | 2,426 | 2,640 | 10,816 |
CSS | 1 | 18 | 7 | 126 |
JavaScript | 2 | 8 | 15 | 96 |
PHP code Passed 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
There were no cyclomatic complexity issued detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.47 |
Average class complexity | 20.41 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 259.00 |
Average method complexity | 4.33 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 77.00 |
Code structure | ||
---|---|---|
Namespaces | 4 | |
Interfaces | 3 | |
Traits | 0 | |
Classes | 80 | |
▷ Abstract classes | 5 | 6.25% |
▷ Concrete classes | 75 | 93.75% |
▷ Final classes | 0 | 0.00% |
Methods | 472 | |
▷ Static methods | 314 | 66.53% |
▷ Public methods | 448 | 94.92% |
▷ Protected methods | 9 | 1.91% |
▷ Private methods | 15 | 3.18% |
Functions | 28 | |
▷ Named functions | 17 | 60.71% |
▷ Anonymous functions | 11 | 39.29% |
Constants | 33 | |
▷ Global constants | 25 | 75.76% |
▷ Class constants | 8 | 24.24% |
▷ Public constants | 8 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
No PNG images were found in this plugin