Benchmarks
Plugin footprint 23% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
You still need to fix the following installer errors
- The plugin did not install without errors
- > Deprecated in wp-content/plugins/wooexim/inc/class_wooexim_export.php+6
Methods with the same name as their class will not be constructors in a future version of PHP; wooexim_import_export has a deprecated constructor
Server metrics [RAM: ▼1.90MB] [CPU: ▼55.36ms] Passed 4 tests
An overview of server-side resources used by WOOEXIM - WooCommerce Export Import Plugin
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 2.10 ▼1.37 | 5.00 ▼33.25 |
Dashboard /wp-admin | 2.12 ▼1.23 | 6.73 ▼55.33 |
Posts /wp-admin/edit.php | 2.12 ▼1.24 | 5.81 ▼41.71 |
Add New Post /wp-admin/post-new.php | 2.12 ▼3.77 | 6.17 ▼91.16 |
Media Library /wp-admin/upload.php | 2.12 ▼1.11 | 6.43 ▼25.11 |
Dashboard /wp-admin/admin.php?page=wooexim-dashboard | 2.12 | 5.85 |
Export /wp-admin/admin.php?page=wooexim-export | 2.12 | 7.07 |
Import /wp-admin/admin.php?page=wooexim-import | 2.12 | 5.58 |
Server storage [IO: ▲5.13MB] [DB: ▲0.00MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
This plugin installed successfully
Filesystem: 276 new files
Database: 1 new table, 6 new options
New tables |
---|
wp_wooexim_export_archive |
New WordPress options |
---|
widget_theysaidso_widget |
widget_recent-comments |
db_upgraded |
can_compress_scripts |
theysaidso_admin_options |
widget_recent-posts |
Browser metrics Passed 4 tests
An overview of browser requirements for WOOEXIM - WooCommerce Export Import Plugin
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,815 ▲69 | 14.69 ▲0.34 | 1.79 ▲0.11 | 43.92 ▲3.86 |
Dashboard /wp-admin | 2,221 ▲40 | 5.64 ▲0.04 | 80.54 ▼22.01 | 84.14 ▲41.52 |
Posts /wp-admin/edit.php | 2,123 ▲23 | 1.98 ▼0.02 | 33.32 ▼3.43 | 34.73 ▼2.40 |
Add New Post /wp-admin/post-new.php | 1,563 ▲28 | 23.00 ▲4.71 | 693.01 ▲41.10 | 50.41 ▼9.11 |
Media Library /wp-admin/upload.php | 1,429 ▲26 | 4.22 ▲0.00 | 97.48 ▲2.96 | 61.09 ▲17.56 |
Dashboard /wp-admin/admin.php?page=wooexim-dashboard | 1,084 | 2.00 | 23.19 | 25.47 |
Export /wp-admin/admin.php?page=wooexim-export | 802 | 2.00 | 23.56 | 24.57 |
Import /wp-admin/admin.php?page=wooexim-import | 1,074 | 2.04 | 24.94 | 34.45 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 25% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
It is recommended to fix the following
- Uninstall procedure validation failed for this plugin
- > Deprecated in wp-content/plugins/wooexim/inc/class_wooexim_export.php+6
Methods with the same name as their class will not be constructors in a future version of PHP; wooexim_import_export has a deprecated constructor
- Zombie tables were found after uninstall: 1 table
- wp_wooexim_export_archive
- This plugin does not fully uninstall, leaving 6 options in the database
- widget_recent-comments
- theysaidso_admin_options
- can_compress_scripts
- widget_recent-posts
- db_upgraded
- widget_theysaidso_widget
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
These errors were triggered by the plugin
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Deprecated in wp-content/plugins/wooexim/inc/class_wooexim_export.php+6
Methods with the same name as their class will not be constructors in a future version of PHP; wooexim_import_export has a deprecated constructor
- 18 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Deprecated in wp-content/plugins/wooexim/lib/PHPExcel/Shared/String.php+537
Array and string offset access syntax with curly braces is deprecated
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Deprecated in wp-includes/class-wp-hook.php+310
Non-static method WOOEXIM_Import::translations() should not be called statically
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Deprecated in wp-includes/class-wp-hook.php+310
Non-static method WOOEXIM_Import::admin_menu() should not be called statically
- > GET request to /wp-admin/admin.php?page=wooexim-dashboard
- > Deprecated in wp-includes/class-wp-hook.php+310
Non-static method WOOEXIM_Import::wooexim_page_dashboard() should not be called statically
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wooexim-dashboard
- > Warning in wp-content/plugins/wooexim/inc/dashboard.php+8
count(): Parameter must be an array or an object that implements Countable
- > GET request to /wp-admin/admin.php?page=wooexim-export
- > Notice in wp-content/plugins/wooexim/inc/wooexim-export.php+432
Undefined index: _wpnonce
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Deprecated in wp-includes/class-wp-hook.php+310
Non-static method WOOEXIM_Import::render_admin_action() should not be called statically
- 8 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Notice in wp-content/plugins/wooexim/inc/wooexim-import-upload.php+432
Undefined offset: 1
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Notice in wp-content/plugins/wooexim/inc/wooexim-import-upload.php+426
Undefined index: c
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Notice in wp-content/plugins/wooexim/inc/wooexim-import-upload.php+427
Undefined index:
- > GET request to /wp-admin/admin.php?page=wooexim-import
- > Notice in wp-content/plugins/wooexim/inc/wooexim-import-upload.php+426
Undefined index: posix
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
The following issues need your attention
- 2× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/wooexim/inc/class_wooexim_export.php
- > /wp-content/plugins/wooexim/inc/dashboard.php
- 116× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Warning
Use of undefined constant PHPEXCEL_ROOT - assumed 'PHPEXCEL_ROOT' (this will throw an Error in a future version of PHP) in wp-content/plugins/wooexim/lib/PHPExcel/Shared/trend/trendClass.php on line 29
- > PHP Fatal error
Uncaught Error: Class 'PHPExcel_Shared_String' not found in wp-content/plugins/wooexim/lib/PHPExcel/Autoloader.php:36
- > PHP Notice
Undefined index: uploaded_file_path in wp-content/plugins/wooexim/inc/wooexim-import-ajax.php on line 6
- > PHP Warning
"continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in wp-content/plugins/wooexim/lib/PHPExcel/Shared/OLE.php on line 290
- > PHP Warning
Use of undefined constant PHPEXCEL_ROOT - assumed 'PHPEXCEL_ROOT' (this will throw an Error in a future version of PHP) in wp-content/plugins/wooexim/lib/PHPExcel/Autoloader.php on line 73
- > PHP Fatal error
Uncaught Error: Call to undefined function get_admin_url() in wp-content/plugins/wooexim/inc/wooexim-import-result.php:75
- > PHP Fatal error
Uncaught Error: Interface 'PHPExcel_IComparable' not found in wp-content/plugins/wooexim/lib/PHPExcel/Worksheet.php:36
- > PHP Warning
Use of undefined constant PHPEXCEL_ROOT - assumed 'PHPEXCEL_ROOT' (this will throw an Error in a future version of PHP) in wp-content/plugins/wooexim/lib/PHPExcel/Shared/trend/polynomialBestFitClass.php on line 29
- > PHP Fatal error
Uncaught Error: Class 'PHPExcel_CachedObjectStorage_CacheBase' not found in wp-content/plugins/wooexim/lib/PHPExcel/CachedObjectStorage/Memcache.php:36
- > PHP Fatal error
Uncaught Error: Class 'PHPExcel_CachedObjectStorage_CacheBase' not found in wp-content/plugins/wooexim/lib/PHPExcel/CachedObjectStorage/MemorySerialized.php:36
- > PHP Warning
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 87% from 29 tests
readme.txt 88% 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
Attributes that require attention:
- Tags: Too many tags (21 tag instead of maximum 10); only the first 5 tags are used in your directory listing
- Screenshots: These screenshots do not have images: #1 (Products Export Overview), #2 (Product Import Overview), #3 (Products Exported CSV FIle), #4 (Schedule Export), #5 (Export Archive), #6 (Export Preview), #7 (Import Preview), #8 (Fields Customization)
wooexim/wooexim-export-import.php 85% from 13 tests
The primary PHP file in "WOOEXIM - WooCommerce Export Import Plugin" version 5.0.0 is used by WordPress to initiate all plugin functionality
You should first fix the following items:
- Main file name: The principal plugin file should be the same as the plugin slug ("wooexim.php" instead of "wooexim-export-import.php")
- Description: Keep the plugin description shorter than 140 characters (currently 190 characters long)
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Success! There were no dangerous files found in this plugin55,163 lines of code in 207 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 200 | 11,867 | 35,676 | 53,688 |
JavaScript | 3 | 212 | 89 | 902 |
CSS | 4 | 90 | 17 | 573 |
PHP code 0% from 2 tests
This is a very shot review of cyclomatic complexity and code structure
These items need your attention
- Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 1,176)
- Method cyclomatic complexity should be reduced to less than 100 (currently 387)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.39 |
Average class complexity | 54.70 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 1,176.00 |
Average method complexity | 4.77 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 387.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 7 | |
Traits | 0 | |
Classes | 184 | |
▷ Abstract classes | 6 | 3.26% |
▷ Concrete classes | 178 | 96.74% |
▷ Final classes | 0 | 0.00% |
Methods | 2,741 | |
▷ Static methods | 621 | 22.66% |
▷ Public methods | 2,237 | 81.61% |
▷ Protected methods | 31 | 1.13% |
▷ Private methods | 473 | 17.26% |
Functions | 17 | |
▷ Named functions | 17 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 811 | |
▷ Global constants | 130 | 16.03% |
▷ Class constants | 681 | 83.97% |
▷ Public constants | 681 | 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
12 PNG files occupy 0.05MB with 0.01MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
img/accept.png | 0.76KB | 0.81KB | 0.00% |
img/checked.png | 0.21KB | 0.20KB | ▼ 6.88% |
img/complete.png | 6.17KB | 3.08KB | ▼ 50.04% |
img/controls.png | 2.83KB | 1.28KB | ▼ 54.82% |
img/overlay.png | 0.18KB | 0.15KB | ▼ 15.93% |