Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲3.11MB] [CPU: ▲12.44ms] Passed 4 tests
A check of server-side resources used by Mis Cursos LMS
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.54 ▲3.08 | 51.19 ▲10.96 |
Dashboard /wp-admin | 6.40 ▲3.10 | 57.17 ▲6.35 |
Posts /wp-admin/edit.php | 6.48 ▲3.13 | 58.61 ▲10.86 |
Add New Post /wp-admin/post-new.php | 9.04 ▲3.15 | 116.46 ▲27.54 |
Media Library /wp-admin/upload.php | 6.35 ▲3.13 | 53.22 ▲21.59 |
Stripe /wp-admin/admin.php?page=mis-cursos-stripe- | 6.32 | 44.96 |
Clear users /wp-admin/admin.php?page=mis-cursos-clear-users | 6.30 | 46.16 |
Exports / Imports /wp-admin/admin.php?page=mis-cursos-exporta | 6.30 | 47.35 |
My Courses /wp-admin/options-general.php?page=mis_cursos_options | 6.35 | 50.63 |
All certificates /wp-admin/edit.php?post_type=mis_cursos_certifica | 6.40 | 48.96 |
Test /wp-admin/admin.php?page=mis-cursos-test | 6.32 | 46.92 |
Questions /wp-admin/admin.php?page=mis-cursos-preguntas | 6.32 | 44.31 |
Cart /wp-admin/admin.php?page=mis-cursos-stripe-cart | 6.32 | 53.92 |
Video logs /wp-admin/admin.php?page=mis-cursos-logs | 6.32 | 48.40 |
Files /wp-admin/admin.php?page=mis-cursos-carga-ficheros | 6.32 | 46.94 |
Server storage [IO: ▲3.11MB] [DB: ▲0.01MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin installed successfully
Filesystem: 315 new files
Database: 13 new tables, 17 new options
New tables |
---|
wp_mis_cursos_preguntas |
wp_mis_cursos_test |
wp_mis_cursos_videos |
wp_mis_cursos_videos_list |
wp_mis_cursos_evaluacion |
wp_mis_cursos |
wp_mis_cursos_cart |
wp_mis_cursos_eventos |
wp_mis_cursos_register |
wp_mis_cursos_cart_item |
... |
New WordPress options |
---|
mis_cursos_video_db |
mis_cursos_evaluacion_db |
mis_cursos_ficheros_db |
mis_cursos_cart_db |
mis_cursos_register_db |
mis_cursos_log_db |
widget_recent-comments |
theysaidso_admin_options |
widget_recent-posts |
mis_cursos_preguntas_db |
... |
Browser metrics Passed 4 tests
A check of browser resources used by Mis Cursos LMS
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,137 ▲391 | 14.23 ▼0.35 | 8.35 ▲6.42 | 28.26 ▼20.85 |
Dashboard /wp-admin | 2,409 ▲221 | 5.48 ▼0.41 | 114.86 ▲14.40 | 50.01 ▲9.27 |
Posts /wp-admin/edit.php | 2,209 ▲120 | 2.05 ▲0.06 | 39.77 ▲4.07 | 34.80 ▼0.88 |
Add New Post /wp-admin/post-new.php | 1,618 ▲76 | 18.06 ▼0.07 | 615.12 ▲17.97 | 72.85 ▲25.49 |
Media Library /wp-admin/upload.php | 1,508 ▲123 | 4.19 ▼0.06 | 100.83 ▼0.04 | 43.54 ▼1.73 |
Stripe /wp-admin/admin.php?page=mis-cursos-stripe- | 1,086 | 2.03 | 25.86 | 36.03 |
Clear users /wp-admin/admin.php?page=mis-cursos-clear-users | 992 | 2.06 | 35.22 | 28.55 |
Exports / Imports /wp-admin/admin.php?page=mis-cursos-exporta | 1,065 | 2.07 | 22.98 | 33.61 |
My Courses /wp-admin/options-general.php?page=mis_cursos_options | 1,359 | 1.68 | 25.83 | 30.96 |
All certificates /wp-admin/edit.php?post_type=mis_cursos_certifica | 1,182 | 2.02 | 31.22 | 28.96 |
Test /wp-admin/admin.php?page=mis-cursos-test | 997 | 2.04 | 26.20 | 29.75 |
Questions /wp-admin/admin.php?page=mis-cursos-preguntas | 1,042 | 2.07 | 24.65 | 27.58 |
Cart /wp-admin/admin.php?page=mis-cursos-stripe-cart | 958 | 1.77 | 25.46 | 29.86 |
Video logs /wp-admin/admin.php?page=mis-cursos-logs | 1,120 | 2.20 | 26.52 | 30.35 |
Files /wp-admin/admin.php?page=mis-cursos-carga-ficheros | 962 | 2.07 | 23.64 | 27.85 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
The following items require your attention
- The uninstall procedure failed, leaving 13 tables in the database
- wp_mis_cursos_test
- wp_mis_cursos_register
- wp_mis_cursos_cart
- wp_mis_cursos_videos
- wp_mis_cursos_logs
- wp_mis_cursos_preguntas
- wp_mis_cursos_ficheros
- wp_mis_cursos
- wp_mis_cursos_cart_item
- wp_mis_cursos_eventos_usuario
- ...
- Zombie WordPress options detected upon uninstall: 17 options
- mis_cursos_test_db
- mis_cursos_log_db
- mis_cursos_events_db
- theysaidso_admin_options
- mis_cursos_ficheros_db
- mis_cursos_cart_db
- mis_cursos_video_db
- widget_theysaidso_widget
- mis_cursos_video_list_db
- can_compress_scripts
- ...
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
These errors were triggered by the plugin
- > GET request to /wp-admin/admin.php?page=mis-cursos-clear-users
- > Notice in wp-content/plugins/mis-cursos/mis-cursos-cursos.php+22
Trying to access array offset on value of type bool
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=mis-cursos-exporta
- > Notice in wp-content/plugins/mis-cursos/mis-cursos-export.php+60
Undefined index: results
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=mis-cursos-exporta
- > Warning in wp-content/plugins/mis-cursos/mis-cursos-export.php+60
Invalid argument supplied for foreach()
SRP 0% from 2 tests
🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please fix the following
- 3× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/mis-cursos/fpdf/ex.php
- > /wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/build.php
- > /wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/update_certs.php
- 184× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/Account.php:35
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Exception\\ApiErrorException' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/Exception/OAuth/OAuthErrorException.php:9
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Service\\AbstractService' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/Service/FileService.php:5
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Service\\AbstractService' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/Service/ProductService.php:5
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Service\\AbstractService' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/Service/Issuing/CardService.php:5
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Exception\\OAuth\\OAuthErrorException' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/Exception/OAuth/UnsupportedGrantTypeException.php:9
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/SubscriptionItem.php:20
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/InvoiceLineItem.php:27
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/PaymentIntent.php:56
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/lib/BitcoinReceiver.php:32
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine, but this is not an exhaustive test
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 94% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that require attention:
- Donate link: Please fix this invalid URI: "[Aprendesapcom] (http://aprendesap.com/wordpress_plugin_mis_cursos)"
mis-cursos/cursos.php 85% from 13 tests
The main PHP script in "Mis Cursos LMS" version 4.81 is automatically included on every request by WordPress
It is important to fix the following:
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 303 characters long)
- Main file name: It is recommended to name the main PHP file as the plugin slug ("mis-cursos.php" instead of "cursos.php")
Code Analysis 5% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
It is important to fix the following items
- For security reasons, never distribute binary or executable files with your plugin
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
- ☣ wp-content/plugins/mis-cursos/vendor/stripe/stripe-php/data/ca-certificates.crt
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 269 | 3,268 | 10,354 | 19,660 |
JavaScript | 10 | 2,071 | 1,777 | 10,499 |
PO File | 5 | 3,901 | 5,252 | 9,051 |
Markdown | 3 | 622 | 0 | 920 |
CSS | 1 | 121 | 23 | 667 |
JSON | 2 | 0 | 0 | 109 |
XML | 1 | 0 | 0 | 31 |
make | 1 | 9 | 0 | 27 |
PHP code Passed 2 tests
This plugin's cyclomatic complexity and code structure detailed below
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.29 |
Average class complexity | 5.38 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 338.00 |
Average method complexity | 2.18 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 39.00 |
Code structure | ||
---|---|---|
Namespaces | 22 | |
Interfaces | 6 | |
Traits | 7 | |
Classes | 200 | |
▷ Abstract classes | 10 | 5.00% |
▷ Concrete classes | 190 | 95.00% |
▷ Final classes | 0 | 0.00% |
Methods | 787 | |
▷ Static methods | 157 | 19.95% |
▷ Public methods | 684 | 86.91% |
▷ Protected methods | 65 | 8.26% |
▷ Private methods | 38 | 4.83% |
Functions | 463 | |
▷ Named functions | 437 | 94.38% |
▷ Anonymous functions | 26 | 5.62% |
Constants | 659 | |
▷ Global constants | 7 | 1.06% |
▷ Class constants | 652 | 98.94% |
▷ Public constants | 651 | 99.85% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
6 PNG files occupy 0.12MB with 0.04MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
images/cursos.png | 0.63KB | 0.75KB | 0.00% |
images/pdf_icon_32x35.png | 1.45KB | 1.20KB | ▼ 17.60% |
images/pdf_icon_64x75.png | 1.62KB | 1.09KB | ▼ 32.65% |
images/pdf_icon_64x75gray.png | 1.67KB | 1.09KB | ▼ 34.74% |
images/capture.png | 117.47KB | 29.36KB | ▼ 75.01% |