Benchmarks
Plugin footprint 83% 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: ▲0.00MB] [CPU: ▼1.45ms] Passed 4 tests
An overview of server-side resources used by FreeInvoice API
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.47 ▲0.01 | 40.56 ▼2.29 |
Dashboard /wp-admin | 3.31 ▲0.01 | 47.18 ▼5.15 |
Posts /wp-admin/edit.php | 3.36 ▲0.00 | 47.05 ▼0.91 |
Add New Post /wp-admin/post-new.php | 5.89 ▲0.01 | 110.86 ▲7.66 |
Media Library /wp-admin/upload.php | 3.23 ▲0.00 | 37.02 ▲2.56 |
Server storage [IO: ▲0.22MB] [DB: ▲0.00MB] Passed 3 tests
Input-output and database impact of this plugin
The plugin installed successfully
Filesystem: 35 new files
Database: 1 new table, 6 new options
New tables |
---|
wp_freeinvoice_api_conn |
New WordPress options |
---|
can_compress_scripts |
theysaidso_admin_options |
widget_theysaidso_widget |
widget_recent-comments |
widget_recent-posts |
db_upgraded |
Browser metrics Passed 4 tests
FreeInvoice API: an overview of browser usage
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,843 ▲82 | 13.29 ▼1.14 | 1.81 ▼0.09 | 44.89 ▲2.29 |
Dashboard /wp-admin | 2,224 ▲23 | 4.86 ▼1.07 | 109.60 ▲5.51 | 40.56 ▲0.31 |
Posts /wp-admin/edit.php | 2,103 ▲3 | 2.04 ▲0.04 | 40.02 ▼0.59 | 37.37 ▼2.14 |
Add New Post /wp-admin/post-new.php | 1,553 ▲8 | 23.54 ▲0.26 | 657.21 ▼27.84 | 63.06 ▲8.15 |
Media Library /wp-admin/upload.php | 1,400 ▼0 | 4.18 ▲0.04 | 100.84 ▼7.29 | 43.89 ▼4.25 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
These items require your attention
- Zombie WordPress options were found after uninstall: 6 options
- can_compress_scripts
- widget_recent-comments
- widget_theysaidso_widget
- theysaidso_admin_options
- db_upgraded
- widget_recent-posts
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Even though no errors were found, this is by no means an exhaustive test
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 fix the following items
- 2× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/freeinvoice-api/public/partials/freeinvoice-api-public-display.php
- > /wp-content/plugins/freeinvoice-api/admin/partials/freeinvoice-api-admin-display.php
- 31× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Freeinvoice_Api_Billing' not found in wp-content/plugins/freeinvoice-api/admin/partials/wc-settings/freeinvoice-api-settings-payment-methods.php:2
- > PHP Notice
Undefined variable: store_country in wp-content/plugins/freeinvoice-api/includes/freeinvoice-api-template-xml.php on line 48
- > PHP Notice
Undefined variable: customer_is_a_private in wp-content/plugins/freeinvoice-api/includes/freeinvoice-api-template-xml.php on line 54
- > PHP Fatal error
Uncaught Error: Call to undefined function wp_nonce_field() in wp-content/plugins/freeinvoice-api/admin/partials/freeinvoice-api-edit-billing.php:2
- > PHP Notice
Undefined variable: store_country in wp-content/plugins/freeinvoice-api/includes/freeinvoice-api-template-xml.php on line 24
- > PHP Notice
Undefined variable: supplier_vat_code in wp-content/plugins/freeinvoice-api/includes/freeinvoice-api-template-xml.php on line 25
- > PHP Notice
Undefined variable: order in wp-content/plugins/freeinvoice-api/includes/freeinvoice-api-template-xml.php on line 106
- > PHP Notice
Undefined variable: billing_postcode in wp-content/plugins/freeinvoice-api/includes/freeinvoice-api-template-xml.php on line 79
- > PHP Fatal error
Uncaught Error: Class 'Freeinvoice_Api_Comm' not found in wp-content/plugins/freeinvoice-api/admin/partials/wc-settings/freeinvoice-api-settings-stocks.php:3
- > PHP Notice
Undefined variable: billing_country in wp-content/plugins/freeinvoice-api/includes/freeinvoice-api-template-xml.php on line 81
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine on the user side
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
5 plugin tags: fattura elettronica, fattura xml, fatture, woocommerce, codice destinatario
freeinvoice-api/freeinvoice-api.php 85% from 13 tests
The main PHP script in "FreeInvoice API" version 1.0.0 is automatically included on every request by WordPress
Please take the time to fix the following:
- Requires PHP: The required version number must match the one declared in readme.txt ("5.6" instead of "7.2")
- Requires at least: The required version number must match the one declared in readme.txt ("4.6" instead of "5.2")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Success! There were no dangerous files found in this plugin2,784 lines of code in 28 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 23 | 280 | 771 | 2,170 |
PO File | 1 | 157 | 173 | 449 |
JavaScript | 2 | 15 | 55 | 139 |
CSS | 2 | 8 | 8 | 26 |
PHP code Passed 2 tests
An overview of cyclomatic complexity and code structure
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.33 |
Average class complexity | 19.17 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 96.00 |
Average method complexity | 3.19 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 46.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 12 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 12 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 99 | |
▷ Static methods | 56 | 56.57% |
▷ Public methods | 74 | 74.75% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 25 | 25.25% |
Functions | 7 | |
▷ Named functions | 5 | 71.43% |
▷ Anonymous functions | 2 | 28.57% |
Constants | 9 | |
▷ Global constants | 1 | 11.11% |
▷ Class constants | 8 | 88.89% |
▷ Public constants | 8 | 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
No PNG files were detected