Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Installer ran successfully
Server metrics [RAM: ▲0.08MB] [CPU: ▼143.75ms] Passed 4 tests
A check of server-side resources used by Call Button
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 2.87 ▲0.15 | 42.46 ▲20.17 |
Dashboard /wp-admin | 3.19 ▲0.14 | 43.46 ▼1.76 |
Posts /wp-admin/edit.php | 3.24 ▲0.13 | 44.58 ▼4.85 |
Add New Post /wp-admin/post-new.php | 5.41 ▼0.02 | 79.84 ▼557.71 |
Media Library /wp-admin/upload.php | 3.07 ▲0.07 | 25.93 ▼10.68 |
Call Button /wp-admin/options-general.php?page=pushlabs_callbutton | 3.12 | 28.77 |
Server storage [IO: ▲3.97MB] [DB: ▲0.00MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin installed successfully
Filesystem: 380 new files
Database: no new tables, 1 new option
New WordPress options |
---|
recovery_mode_email_last_sent |
Browser metrics Passed 4 tests
An overview of browser requirements for Call Button
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,738 ▲101 | 16.08 ▲0.59 | 8.30 ▲0.44 | 47.86 ▼3.16 |
Dashboard /wp-admin | 2,990 ▲62 | 6.33 ▲0.35 | 131.95 ▼8.20 | 107.56 ▼11.41 |
Posts /wp-admin/edit.php | 2,764 ▲25 | 2.77 ▲0.09 | 69.96 ▼0.80 | 86.92 ▼2.40 |
Add New Post /wp-admin/post-new.php | 725 ▼773 | 2.27 ▼16.65 | 22.36 ▼354.44 | 13.28 ▼96.52 |
Media Library /wp-admin/upload.php | 1,838 ▲28 | 5.17 ▲0.17 | 159.82 ▲7.57 | 126.16 ▲6.32 |
Call Button /wp-admin/options-general.php?page=pushlabs_callbutton | 1,005 | 2.19 | 38.26 | 74.50 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
It is recommended to fix the following
- The uninstall procedure has failed, leaving 1 option in the database
- recovery_mode_email_last_sent
Smoke tests 50% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
These server-side errors were triggered
- > GET request to /wp-admin/options-general.php?page=pushlabs_callbutton
- > Compile error in wp-content/plugins/call-button/inc/vendor/cmb2/includes/types/CMB2_Type_Checkbox.php+35
Declaration of CMB2_Type_Checkbox::render() must be compatible with CMB2_Type_Text::render($args = Array)
SRP 50% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
The following issues need your attention
- 35× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Text' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/types/CMB2_Type_Oembed.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_File_Base' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/types/CMB2_Type_File_List.php:13
- > PHP Fatal error
Uncaught Error: Call to undefined function cmb2_dir() in wp-content/plugins/call-button/inc/vendor/cmb2/includes/rest-api/CMB2_REST_Controller.php:4
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Text' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/types/CMB2_Type_Checkbox.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Hookup_Base' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/CMB2_hookup.php:14
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Base' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/types/CMB2_Type_Title.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Text' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/types/CMB2_Type_File_Base.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_REST_Controller' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/rest-api/CMB2_REST_Controller_Boxes.php:17
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Multi_Base' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/types/CMB2_Type_Select.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Base' not found in wp-content/plugins/call-button/inc/vendor/cmb2/includes/CMB2_Field.php:17
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
There were no browser issues found
Optimizations
Plugin configuration 83% from 29 tests
readme.txt 81% from 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need to be fixed:
- Plugin Name: Please specify the plugin name on the first line (
=== call-button ===
) - Screenshots: These screenshots do not have images: #9 (Call Button Example 3), #10 (Call Button Example 4)
- Tags: There are too many tags (11 tag instead of maximum 10)
call-button/pushlabs-callbutton.php 85% from 13 tests
The primary PHP file in "Call Button" version 1.0 is used by WordPress to initiate all plugin functionality
The following require your attention:
- Main file name: Name the main plugin file the same as the plugin slug ("call-button.php" instead of "pushlabs-callbutton.php")
- Text Domain: If you choose to specify the text domain, it must be the same as the plugin slug; optional since WordPress version 4.6
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
No dangerous file extensions were detected48,374 lines of code in 214 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PO File | 120 | 13,782 | 17,882 | 31,544 |
PHP | 55 | 1,902 | 5,073 | 6,586 |
CSS | 15 | 1,126 | 1,139 | 4,896 |
SVG | 1 | 0 | 0 | 2,671 |
Sass | 14 | 265 | 25 | 1,262 |
JavaScript | 5 | 243 | 249 | 930 |
Markdown | 4 | 171 | 0 | 485 |
PHP code Passed 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
This plugin has no cyclomatic complexity issues
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.47 |
Average class complexity | 17.17 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 151.00 |
Average method complexity | 3.29 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 26.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 65 | |
▷ Abstract classes | 8 | 12.31% |
▷ Concrete classes | 57 | 87.69% |
▷ Final classes | 0 | 0.00% |
Methods | 462 | |
▷ Static methods | 73 | 15.80% |
▷ Public methods | 387 | 83.77% |
▷ Protected methods | 72 | 15.58% |
▷ Private methods | 3 | 0.65% |
Functions | 46 | |
▷ Named functions | 46 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 13 | |
▷ Global constants | 7 | 53.85% |
▷ Class constants | 6 | 46.15% |
▷ Public constants | 6 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
20 PNG files occupy 0.18MB with 0.06MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
inc/vendor/cmb2/images/ui-bg_glass_95_fef1ec_1x400.png | 0.12KB | 0.14KB | 0.00% |
inc/vendor/cmb2/images/ui-icons_888888_256x240.png | 5.23KB | 4.11KB | ▼ 21.49% |
inc/vendor/cmb2/images/ui-bg_flat_0_aaaaaa_40x100.png | 0.18KB | 0.08KB | ▼ 51.67% |
assets/img/radio-button-left.png | 27.78KB | 6.92KB | ▼ 75.09% |
inc/vendor/cmb2/images/ui-bg_glass_65_ffffff_1x400.png | 0.10KB | 0.10KB | ▼ 5.71% |