Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Installer ran successfully
Server metrics [RAM: ▲1.55MB] [CPU: ▲16.08ms] 75% from 4 tests
This is a short check of server-side resources used by WP ERP | Complete HR solution with recruitment & job listings | WooCommerce CRM & Accounting
Please take the time to fix the following items
- CPU: Total CPU usage should be kept under 500.00ms (currently 1,136.98ms on /wp-admin/admin.php?page=erp-addons)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.48 ▲1.01 | 53.60 ▲14.12 |
Dashboard /wp-admin | 5.09 ▲1.78 | 62.42 ▲12.40 |
Posts /wp-admin/edit.php | 5.10 ▲1.74 | 67.64 ▲21.14 |
Add New Post /wp-admin/post-new.php | 9.27 ▲3.38 | 170.19 ▲74.37 |
Media Library /wp-admin/upload.php | 4.91 ▲1.68 | 49.40 ▲16.65 |
Modules /wp-admin/admin.php?page=erp-modules | 4.98 | 1,163.82 |
Tools /wp-admin/admin.php?page=erp-tools | 4.91 | 53.56 |
Dashboard /wp-admin/admin.php?page=erp | 5.50 | 1,410.95 |
HR /wp-admin/admin.php?page=erp-hr | 6.06 | 74.29 |
HR Announcement /wp-admin/edit.php?post_type=erp_hr_announcement | 3.85 | 19.04 |
WP ERP /wp-admin/index.php?page=erp-welcome | 4.91 | 50.05 |
CRM /wp-admin/admin.php?page=erp-crm | 6.02 | 63.74 |
Add Announcement /wp-admin/post-new.php?post_type=erp_hr_announcement | 6.10 | 76.25 |
Accounting /wp-admin/admin.php?page=erp-accounting | 5.08 | 67.43 |
WP ERP Pro /wp-admin/admin.php?page=erp-addons | 5.00 | 1,136.98 |
Server storage [IO: ▲29.82MB] [DB: ▲0.22MB] 67% from 3 tests
Filesystem and database footprint
Just a few items left to fix
- The filesystem usage should be lower than 25MB (currently using 29.82MB)
Filesystem: 3,713 new files
Database: 85 new tables, 28 new options
New tables |
---|
wp_erp_acct_tax_pay |
wp_erp_acct_ledgers |
wp_erp_hr_employee_history |
wp_erp_acct_people_trn_details |
wp_erp_acct_trn_status_types |
wp_erp_acct_transfer_voucher |
wp_erp_acct_purchase_details_tax |
wp_erp_acct_bill_account_details |
wp_erp_hr_employee_performance |
wp_erp_hr_education |
... |
New WordPress options |
---|
widget_recent-posts |
wp_erp_version |
erp_email_settings_transectional-email-estimate |
erp_email_settings_transectional-email-pay-purchase |
erp_email_settings_new-task-assigned |
erp_settings_erp-crm_subscription |
erp_email_settings_employee-welcome |
erp_email_settings_transectional-email-purchase-order |
widget_erp-subscription-from-widget |
erp_email_settings_new-contact-assigned |
... |
Browser metrics Passed 4 tests
A check of browser resources used by WP ERP | Complete HR solution with recruitment & job listings | WooCommerce CRM & Accounting
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,445 ▲684 | 15.28 ▲1.00 | 5.13 ▲3.46 | 40.71 ▼3.26 |
Dashboard /wp-admin | 2,714 ▲537 | 6.62 ▲0.96 | 114.47 ▲16.15 | 39.72 ▼1.94 |
Posts /wp-admin/edit.php | 2,643 ▲543 | 3.78 ▲1.79 | 59.39 ▲22.55 | 34.08 ▲0.38 |
Add New Post /wp-admin/post-new.php | 2,009 ▲483 | 21.69 ▼1.43 | 635.33 ▼8.38 | 30.95 ▼22.09 |
Media Library /wp-admin/upload.php | 1,816 ▲416 | 4.59 ▲0.42 | 83.13 ▼11.45 | 40.51 ▼0.93 |
Modules /wp-admin/admin.php?page=erp-modules | 3,051 | 3.54 | 46.36 | 113.06 |
Tools /wp-admin/admin.php?page=erp-tools | 1,503 | 3.73 | 47.77 | 29.84 |
Dashboard /wp-admin/admin.php?page=erp | 1,768 | 3.59 | 45.50 | 40.52 |
HR /wp-admin/admin.php?page=erp-hr | 3,482 | 6.08 | 135.17 | 69.33 |
HR Announcement /wp-admin/edit.php?post_type=erp_hr_announcement | 2,182 | 4.50 | 64.52 | 46.50 |
WP ERP /wp-admin/index.php?page=erp-welcome | 1,371 | 3.51 | 44.56 | 49.68 |
CRM /wp-admin/admin.php?page=erp-crm | 2,580 | 6.35 | 111.78 | 48.53 |
Add Announcement /wp-admin/post-new.php?post_type=erp_hr_announcement | 2,933 | 7.63 | 182.23 | 63.98 |
Accounting /wp-admin/admin.php?page=erp-accounting | 1,635 | 9.12 | 263.39 | 83.07 |
WP ERP Pro /wp-admin/admin.php?page=erp-addons | 2,244 | 3.60 | 44.21 | 170.27 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.22MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
The following items require your attention
- This plugin does not fully uninstall, leaving 85 tables in the database
- wp_erp_acct_journals
- wp_erp_peoples
- wp_erp_acct_ledger_categories
- wp_erp_acct_pay_purchase
- wp_erp_acct_tax_agency_details
- wp_erp_acct_purchase_account_details
- wp_erp_acct_purchase_details
- wp_erp_acct_trn_status_types
- wp_erp_acct_payment_methods
- wp_erp_hr_leave_approval_status
- ...
- The uninstall procedure has failed, leaving 28 options in the database
- erp_email_settings_rejected-leave-request
- erp_email_settings_new-leave-request
- erp_email_settings_transectional-email-pay-purchase
- erp_email_settings_transectional-email-purchase-order
- widget_recent-posts
- erp_email_settings_hiring-anniversary-wish
- erp_email_settings_transectional-email
- erp_email_settings_new-task-assigned
- widget_recent-comments
- erp_email_settings_transectional-email-purchase
- ...
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
These server-side errors were triggered
- 8 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=erp
- > User deprecated in wp-content/plugins/erp/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php+264
The "Doctrine\Common\Inflector\Inflector::pluralize" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.
SRP 0% 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
Please fix the following items
- 16× GET requests to PHP files return non-empty strings (only 10 are shown):
- > /wp-content/plugins/erp/vendor/google/apiclient/examples/url-shortener.php
- > /wp-content/plugins/erp/vendor/google/apiclient/examples/multi-api.php
- > /wp-content/plugins/erp/vendor/illuminate/pagination/resources/views/semantic-ui.blade.php
- > /wp-content/plugins/erp/modules/hrm/views/js-templates/add-more.php
- > /wp-content/plugins/erp/vendor/illuminate/pagination/resources/views/simple-bootstrap-4.blade.php
- > /wp-content/plugins/erp/includes/Admin/views/modules.php
- > /wp-content/plugins/erp/includes/Admin/views/add-ons.php
- > /wp-content/plugins/erp/vendor/illuminate/pagination/resources/views/default.blade.php
- > /wp-content/plugins/erp/vendor/illuminate/pagination/resources/views/bootstrap-4.blade.php
- > /wp-content/plugins/erp/vendor/illuminate/pagination/resources/views/simple-default.blade.php
- 1711× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught LogicException: You cannot use "Http\\Message\\MessageFactory\\DiactorosMessageFactory" as the "php-http/message-factory" package is not installed. Try running "composer require php-http/message-factory". Note that this package is deprecated, use "psr/http-factory" instead in wp-content/plugins/erp/vendor/php-http/message/src/MessageFactory/DiactorosMessageFactory.php:13
- > PHP Fatal error
Uncaught Error: Class 'WeDevs\\ERP\\Email' not found in wp-content/plugins/erp/modules/hrm/includes/Emails/NewLeaveRequest.php:11
- > PHP Fatal error
Uncaught Error: Interface 'Zend\\Http\\Header\\MultipleHeaderInterface' not found in wp-content/plugins/erp/vendor/zendframework/zend-http/src/Header/WWWAuthenticate.php:14
- > PHP Fatal error
Uncaught Error: Class 'WeDevs\\ERP\\CRM\\Contact' not found in wp-content/plugins/erp/modules/crm/views/js-templates/customer-email-note.php:4
- > PHP Notice
Trying to get property 'prefix' of non-object in wp-content/plugins/erp/includes/Updates/update-1.5.0.php on line 106
- > PHP Fatal error
Uncaught Error: Interface 'Http\\Message\\Authentication' not found in wp-content/plugins/erp/vendor/php-http/message/src/Authentication/Header.php:8
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Event\\SubscriberInterface' not found in wp-content/plugins/erp/vendor/google/auth/src/Subscriber/AuthTokenSubscriber.php:38
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/erp/i18n/states/NZ.php:10
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\OptionsResolver\\Exception\\InvalidArgumentException' not found in wp-content/plugins/erp/vendor/symfony/options-resolver/Exception/MissingOptionsException.php:21
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/erp/i18n/states/PE.php:10
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
There were no browser issues found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt 94% from 16 tests
Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
Attributes that need to be fixed:
- Tags: You are using too many tags: 16 tag instead of maximum 10
erp/wp-erp.php 92% from 13 tests
The primary PHP file in "WP ERP | Complete HR solution with recruitment & job listings | WooCommerce CRM & Accounting" version 1.12.7 is used by WordPress to initiate all plugin functionality
It is important to fix the following:
- Main file name: The principal plugin file should be the same as the plugin slug ("erp.php" instead of "wp-erp.php")
Code Analysis 3% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Almost there! Just fix the following issues
- Do not distribute dangerous files with your plugin
- .bat - Batch File in Windows
- ☣ wp-content/plugins/erp/vendor/nesbot/carbon/bin/carbon.bat
- .bat - Batch File in Windows
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 2,835 | 51,724 | 130,668 | 263,772 |
JavaScript | 123 | 16,871 | 26,221 | 132,042 |
CSS | 40 | 864 | 346 | 10,923 |
Markdown | 100 | 4,344 | 0 | 10,269 |
JSON | 61 | 0 | 0 | 6,381 |
XSD | 3 | 92 | 48 | 2,803 |
SVG | 41 | 2 | 23 | 1,985 |
XML | 6 | 35 | 53 | 314 |
YAML | 12 | 49 | 4 | 250 |
Blade | 5 | 11 | 19 | 136 |
Sass | 1 | 5 | 0 | 126 |
reStructuredText | 1 | 74 | 78 | 75 |
Bourne Shell | 1 | 3 | 4 | 31 |
Dockerfile | 1 | 8 | 0 | 10 |
INI | 2 | 0 | 1 | 6 |
DOS Batch | 1 | 0 | 0 | 4 |
PHP code 50% from 2 tests
A short review of cyclomatic complexity and code structure
Please fix the following
- Please reduce cyclomatic complexity of methods to less than 100 (currently 179)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.38 |
Average class complexity | 13.23 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 634.00 |
Average method complexity | 2.80 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 179.00 |
Code structure | ||
---|---|---|
Namespaces | 268 | |
Interfaces | 220 | |
Traits | 78 | |
Classes | 1,531 | |
▷ Abstract classes | 66 | 4.31% |
▷ Concrete classes | 1,465 | 95.69% |
▷ Final classes | 200 | 13.65% |
Methods | 13,332 | |
▷ Static methods | 1,602 | 12.02% |
▷ Public methods | 11,152 | 83.65% |
▷ Protected methods | 1,462 | 10.97% |
▷ Private methods | 718 | 5.39% |
Functions | 2,262 | |
▷ Named functions | 1,200 | 53.05% |
▷ Anonymous functions | 1,062 | 46.95% |
Constants | 1,110 | |
▷ Global constants | 142 | 12.79% |
▷ Class constants | 968 | 87.21% |
▷ Public constants | 953 | 98.45% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
98 PNG files occupy 1.07MB with 0.48MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/wperp-settings/woocommerce.png | 0.73KB | 0.63KB | ▼ 14.63% |
assets/images/wperp-addons/banner-image.png | 98.71KB | 31.85KB | ▼ 67.73% |
assets/images/one-by-one-pixel.png | 0.15KB | 0.09KB | ▼ 37.09% |
assets/images/modules/reimbursement.png | 5.62KB | 2.81KB | ▼ 49.92% |
assets/images/modules/payroll.png | 5.66KB | 2.68KB | ▼ 52.55% |