Benchmarks
Plugin footprint 47% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
This plugin's installer ran successfully
Server metrics [RAM: ▲0.30MB] [CPU: ▼2.02ms] Passed 4 tests
Server-side resources used by Connect BadgeOS to Discord
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.76 ▲0.30 | 48.75 ▲7.89 |
Dashboard /wp-admin | 3.59 ▲0.29 | 51.39 ▲6.52 |
Posts /wp-admin/edit.php | 3.70 ▲0.34 | 48.08 ▼3.33 |
Add New Post /wp-admin/post-new.php | 6.21 ▲0.32 | 88.55 ▼17.39 |
Media Library /wp-admin/upload.php | 3.51 ▲0.28 | 39.73 ▲6.11 |
Discord Settings /wp-admin/admin.php?page=connect-badgeos-to-discord | 3.58 | 45.50 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 3.68 | 48.20 |
Server storage [IO: ▲0.88MB] [DB: ▲0.01MB] 67% from 3 tests
Analyzing filesystem and database footprints of this plugin
Please fix the following
- Illegal file modification detected: 1 file (0.00KB) outside of "wp-content/plugins/connect-badgeos-to-discord/" and "wp-content/uploads/"
- (new file) wp-content/d457ac59-4def-48ba-950b-8774b9a53c8fbadgeos_discord_api_logs.txt
Filesystem: 134 new files
Database: 4 new tables, 28 new options
New tables |
---|
wp_actionscheduler_claims |
wp_actionscheduler_logs |
wp_actionscheduler_actions |
wp_actionscheduler_groups |
New WordPress options |
---|
widget_recent-comments |
ets_badgeos_discord_connect_button_bg_color |
ets_badgeos_discord_award_rank_message |
db_upgraded |
ets_badgeos_discord_disconnect_button_bg_color |
theysaidso_admin_options |
ets_badgeos_discord_disconnect_button_text |
ets_badgeos_discord_send_welcome_dm |
ets_badgeos_discord_uuid_file_name |
action_scheduler_hybrid_store_demarkation |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Connect BadgeOS to Discord
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,829 ▲94 | 13.15 ▼1.07 | 2.02 ▲0.24 | 41.77 ▼6.20 |
Dashboard /wp-admin | 2,210 ▲61 | 4.85 ▼0.82 | 100.26 ▲2.93 | 39.54 ▼1.46 |
Posts /wp-admin/edit.php | 2,090 ▼2 | 2.02 ▼0.02 | 36.69 ▼6.74 | 33.48 ▼7.65 |
Add New Post /wp-admin/post-new.php | 1,537 ▲17 | 23.38 ▲0.12 | 686.40 ▲71.49 | 59.94 ▲10.70 |
Media Library /wp-admin/upload.php | 1,392 ▲1 | 4.22 ▲0.04 | 111.81 ▲13.24 | 50.69 ▲7.17 |
Discord Settings /wp-admin/admin.php?page=connect-badgeos-to-discord | 1,863 | 3.00 | 78.04 | 48.26 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 1,241 | 1.83 | 24.05 | 27.40 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 25% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
- The plugin did not uninstall gracefully
- > Notice in wp-content/plugins/connect-badgeos-to-discord/uninstall.php+34
Undefined index: plugin
- Zombie tables detected upon uninstall: 4 tables
- wp_actionscheduler_groups
- wp_actionscheduler_actions
- wp_actionscheduler_logs
- wp_actionscheduler_claims
- The uninstall procedure has failed, leaving 28 options in the database
- ets_badgeos_discord_send_earned_achievement_dm
- ets_badgeos_discord_uuid_file_name
- action_scheduler_lock_async-request-runner
- ets_badgeos_discord_loggedin_button_text
- widget_recent-comments
- can_compress_scripts
- ets_badgeos_discord_send_welcome_dm
- ets_badgeos_discord_retry_failed_api
- widget_theysaidso_widget
- ets_badgeos_discord_non_login_button_text
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
The smoke test was a success, however most plugin functionality was not tested
SRP 0% from 2 tests
🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please take a closer look at the following
- 1× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/connect-badgeos-to-discord/public/partials/connect-badgeos-to-discord-public-display.php
- 51× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Abstract_RecurringSchedule' not found in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php:6
- > PHP Fatal error
Uncaught Error: Class 'CronExpression_AbstractField' not found in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/lib/cron-expression/CronExpression_YearField.php:8
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_SimpleSchedule' not found in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php:6
- > PHP Fatal error
Uncaught Error: Class 'WP_CLI_Command' not found in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/classes/WP_CLI/Migration_Command.php:22
- > PHP Warning
require_once(ABSPATHwp-admin/includes/class-wp-list-table.php): failed to open stream: No such file or directory in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php on line 4
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_SimpleSchedule' not found in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/classes/schedules/ActionScheduler_NullSchedule.php:6
- > PHP Fatal error
Uncaught Error: Class 'CronExpression_AbstractField' not found in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/lib/cron-expression/CronExpression_MinutesField.php:8
- > PHP Fatal error
Uncaught Error: Class 'Action_Scheduler\\Migration\\ActionMigrator' not found in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/classes/migration/DryRun_ActionMigrator.php:15
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/connect-badgeos-to-discord/includes/class-connect-badgeos-to-discord-logs.php:8
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Abstract_Schedule' not found in wp-content/plugins/connect-badgeos-to-discord/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php:6
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Please take a look at the following user-side issues
- > GET request to /wp-admin/admin.php?page=connect-badgeos-to-discord
- > Console-api (severe) in unknown
/wp-content/plugins/connect-badgeos-to-discord/admin/js/connect-badgeos-to-discord-admin.js?ver=1.0.3 114:12 Object
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
These attributes need to be fixed:
- Tags: Please reduce the number of tags, currently 13 tag instead of maximum 10
connect-badgeos-to-discord/connect-badgeos-to-discord.php Passed 13 tests
Analyzing the main PHP file in "Connect BadgeOS to Discord" version 1.0.3
91 characters long description:
Create a community of your users by connecting your BadgeOS Website to your Discord server.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
Success! There were no dangerous files found in this plugin9,292 lines of code in 119 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 104 | 1,941 | 5,777 | 8,141 |
CSS | 6 | 13 | 20 | 658 |
JavaScript | 6 | 36 | 15 | 393 |
Markdown | 2 | 37 | 0 | 90 |
SVG | 1 | 0 | 0 | 10 |
PHP code Passed 2 tests
This is a very shot review of cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.33 |
Average class complexity | 12.40 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 153.00 |
Average method complexity | 2.63 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 38.00 |
Code structure | ||
---|---|---|
Namespaces | 2 | |
Interfaces | 3 | |
Traits | 0 | |
Classes | 84 | |
▷ Abstract classes | 15 | 17.86% |
▷ Concrete classes | 69 | 82.14% |
▷ Final classes | 0 | 0.00% |
Methods | 642 | |
▷ Static methods | 70 | 10.90% |
▷ Public methods | 484 | 75.39% |
▷ Protected methods | 134 | 20.87% |
▷ Private methods | 24 | 3.74% |
Functions | 51 | |
▷ Named functions | 43 | 84.31% |
▷ Anonymous functions | 8 | 15.69% |
Constants | 42 | |
▷ Global constants | 9 | 21.43% |
▷ Class constants | 33 | 78.57% |
▷ Public constants | 33 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
2 PNG files occupy 0.11MB with 0.05MB in potential savings
Potential savings
Compression of 2 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/images/ets-logo.png | 11.34KB | 7.55KB | ▼ 33.46% |
admin/images/icon.png | 99.19KB | 44.08KB | ▼ 55.56% |