Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲3.35MB] [CPU: ▲148.26ms] 75% from 4 tests
A check of server-side resources used by onOffice for WP-Websites
Please take the time to fix the following items
- CPU: You should keep total CPU usage under 500.00ms (currently 826.80ms on /wp-admin/admin.php?page=onoffice-settings)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.39 ▲2.92 | 75.66 ▲34.42 |
Dashboard /wp-admin | 6.83 ▲3.52 | 287.03 ▲235.07 |
Posts /wp-admin/edit.php | 6.90 ▲3.54 | 240.80 ▲193.82 |
Add New Post /wp-admin/post-new.php | 9.38 ▲3.49 | 281.75 ▲187.99 |
Media Library /wp-admin/upload.php | 6.70 ▲3.46 | 211.21 ▲176.81 |
/wp-admin/admin.php?page=onoffice-editlistviewaddress | 6.69 | 189.70 |
Estates /wp-admin/admin.php?page=onoffice-estates | 6.75 | 201.83 |
Addresses /wp-admin/admin.php?page=onoffice-addresses | 6.74 | 222.79 |
/wp-admin/admin.php?page=onoffice-editform | 6.50 | 58.78 |
/wp-admin/admin.php?page=onoffice-editlistview | 7.11 | 1,180.50 |
Settings /wp-admin/admin.php?page=onoffice-settings | 7.06 | 826.80 |
Forms /wp-admin/admin.php?page=onoffice-forms | 6.73 | 210.34 |
Getting started /wp-admin/admin.php?page=onoffice | 6.67 | 218.02 |
/wp-admin/admin.php?page=onoffice-editunitlist | 6.99 | 357.40 |
Server storage [IO: ▲11.13MB] [DB: ▲0.03MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
This plugin installed successfully
Filesystem: 1,374 new files
Database: 16 new tables, 15 new options
New tables |
---|
wp_oo_plugin_picturetypes |
wp_oo_plugin_fieldconfig_form_translated_labels |
wp_oo_plugin_fieldconfig_form_customs_labels |
wp_oo_plugin_sortbyuservalues |
wp_oo_plugin_fieldconfig_form_defaults |
wp_oo_plugin_listviews |
wp_oo_plugin_form_fieldconfig |
wp_oo_plugin_fieldconfig_form_defaults_values |
wp_oo_plugin_fieldconfig |
wp_oo_plugin_forms |
... |
New WordPress options |
---|
onoffice-settings-honeypot |
widget_theysaidso_widget |
onoffice-click-button-close-action |
theysaidso_admin_options |
oo_plugin_db_version |
can_compress_scripts |
widget_recent-comments |
widget_recent-posts |
onoffice-detail-view-showTitleUrl |
onoffice-settings-title-and-description |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for onOffice for WP-Websites
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,919 ▲147 | 13.70 ▼0.57 | 19.84 ▲17.76 | 43.32 ▲0.52 |
Dashboard /wp-admin | 2,271 ▲91 | 5.61 ▲0.07 | 87.11 ▼4.37 | 74.82 ▲32.78 |
Posts /wp-admin/edit.php | 2,191 ▲91 | 1.98 ▼0.05 | 40.29 ▲1.57 | 36.08 ▲0.41 |
Add New Post /wp-admin/post-new.php | 1,760 ▲234 | 22.27 ▼0.71 | 824.20 ▲153.94 | 49.93 ▼7.71 |
Media Library /wp-admin/upload.php | 1,488 ▲91 | 4.20 ▲0.06 | 109.21 ▲12.10 | 81.68 ▲40.06 |
/wp-admin/admin.php?page=onoffice-editlistviewaddress | 31 | 0.41 | 0.08 | 3.93 |
Estates /wp-admin/admin.php?page=onoffice-estates | 1,160 | 1.71 | 28.74 | 30.16 |
Addresses /wp-admin/admin.php?page=onoffice-addresses | 1,075 | 1.74 | 28.37 | 26.52 |
/wp-admin/admin.php?page=onoffice-editform | 45 | 0.41 | 0.07 | 9.50 |
/wp-admin/admin.php?page=onoffice-editlistview | 31 | 0.41 | 0.10 | 3.94 |
Settings /wp-admin/admin.php?page=onoffice-settings | 1,133 | 1.70 | 26.93 | 33.08 |
Forms /wp-admin/admin.php?page=onoffice-forms | 1,147 | 1.68 | 27.84 | 28.65 |
Getting started /wp-admin/admin.php?page=onoffice | 889 | 1.65 | 23.58 | 33.85 |
/wp-admin/admin.php?page=onoffice-editunitlist | 31 | 0.41 | 0.06 | 3.73 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
- Zombie WordPress options were found after uninstall: 7 options
- recovery_mode_email_last_sent
- can_compress_scripts
- widget_recent-comments
- widget_recent-posts
- db_upgraded
- theysaidso_admin_options
- widget_theysaidso_widget
Smoke tests 0% 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
- > GET request to /wp-admin/admin.php?page=onoffice-editform
- > Error in wp-content/plugins/onoffice-for-wp-websites/plugin/Gui/AdminPageFormSettingsMain.php+183
Uncaught TypeError: Argument 1 passed to onOffice\WPlugin\Gui\AdminPageFormSettingsMain::getClassNameByType() must be of the type string, null given, called in wp-content/plugins/onoffice-for-wp-websites/plugin/Gui/AdminPageFormSettingsMain.php on line 76 and defined in wp-content/plugins/onoffice-for-wp-websites/plugin/Gui/AdminPageFormSettingsMain.php:183
Stack trace:
#0 wp-content/plugins/onoffice-for-wp-websites/plugin/Gui/AdminPageFormSettingsMain.php(76): onOffice\WPlugin\Gui\AdminPageFormSettingsMain->getClassNameByType()
#1 wp-content/plugins/onoffice-for-wp-websites/plugin/Gui/AdminPageFormSettingsMain.php(102): onOffice\WPlugin\Gui\AdminPageFormSettingsMain->initSubClass()
#2 wp-includes/class-wp-hook.php(310): onOffice\WPlugin\Gui\AdminPageFormSettingsMain->initSubClassForGet()
#3 wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters()
#4 wp-includes/plugin.php(5
SRP 0% from 2 tests
🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please fix the following
- 1× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/onoffice-for-wp-websites/SDK/example.php
- 282× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'onOffice\\WPlugin\\Field\\Collection\\FieldCategoryToFieldConverter' not found in wp-content/plugins/onoffice-for-wp-websites/plugin/Field/Collection/FieldCategoryToFieldConverterSearchCriteriaGeoBackend.php:35
- > PHP Fatal error
Uncaught Error: Class 'onOffice\\WPlugin\\Gui\\AdminPageSettingsBase' not found in wp-content/plugins/onoffice-for-wp-websites/plugin/Gui/AdminPageEstateListSettingsBase.php:51
- > PHP Fatal error
Uncaught Error: Class 'onOffice\\WPlugin\\Renderer\\InputFieldRenderer' not found in wp-content/plugins/onoffice-for-wp-websites/plugin/Renderer/InputFieldEmailRenderer.php:31
- > PHP Fatal error
Uncaught Error: Undefined constant 'ABSPATH' in wp-content/plugins/onoffice-for-wp-websites/plugin/Gui/Table/WP/ListTable.php:30
- > PHP Fatal error
Uncaught Error: Class 'onOffice\\WPlugin\\Renderer\\InputFieldRenderer' not found in wp-content/plugins/onoffice-for-wp-websites/plugin/Renderer/InputFieldButtonRenderer.php:32
- > PHP Fatal error
Uncaught Error: Class 'onOffice\\WPlugin\\Gui\\AdminPageAjax' not found in wp-content/plugins/onoffice-for-wp-websites/plugin/Gui/AdminPageEstateDetail.php:74
- > PHP Fatal error
Uncaught Error: Class 'onOffice\\WPlugin\\Field\\DefaultValue\\DefaultValueModelBase' not found in wp-content/plugins/onoffice-for-wp-websites/plugin/Field/DefaultValue/DefaultValueModelBool.php:31
- > PHP Fatal error
Uncaught Error: Interface 'DI\\Definition\\Source\\DefinitionSource' not found in wp-content/plugins/onoffice-for-wp-websites/vendor/php-di/php-di/src/Definition/Source/ReflectionBasedAutowiring.php:17
- > PHP Fatal error
Uncaught Error: Interface 'Invoker\\ParameterResolver\\ParameterResolver' not found in wp-content/plugins/onoffice-for-wp-websites/vendor/php-di/invoker/src/ParameterResolver/Container/TypeHintContainerResolver.php:13
- > PHP Fatal error
Uncaught Error: Class 'onOffice\\SDK\\Exception\\SDKException' not found in wp-content/plugins/onoffice-for-wp-websites/SDK/SDK/Exception/HttpFetchNoResultException.php:17
- > 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 fix the following user-side errors
- > GET request to /wp-admin/admin.php?page=onoffice-editlistviewaddress
- > Network (severe)
wp-admin/admin.php?page=onoffice-editlistviewaddress - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
- > GET request to /wp-admin/admin.php?page=onoffice-editform
- > Network (severe)
wp-admin/admin.php?page=onoffice-editform - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
- > GET request to /wp-admin/admin.php?page=onoffice-editlistview
- > Network (severe)
wp-admin/admin.php?page=onoffice-editlistview - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
- > GET request to /wp-admin/admin.php?page=onoffice-editunitlist
- > Network (severe)
wp-admin/admin.php?page=onoffice-editunitlist - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
2 plugin tags: real estate, onoffice
onoffice-for-wp-websites/plugin.php 85% from 13 tests
Analyzing the main PHP file in "onOffice for WP-Websites" version 4.15.1
Please make the necessary changes and fix the following:
- Description: Please don't use more than 140 characters for the plugin description (currently 191 characters long)
- Main file name: Name the main plugin file the same as the plugin slug ("onoffice-for-wp-websites.php" instead of "plugin.php")
Code Analysis 97% from 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
Good job! No executable or dangerous file extensions detected141,334 lines of code in 1,239 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 294 | 18,811 | 13,394 | 70,214 |
PHP | 550 | 12,263 | 24,439 | 38,712 |
CSS | 98 | 1,774 | 706 | 10,488 |
Sass | 132 | 1,011 | 534 | 4,639 |
Markdown | 63 | 1,574 | 0 | 4,406 |
PO File | 8 | 2,115 | 3,817 | 4,026 |
HTML | 11 | 136 | 0 | 3,561 |
SVG | 6 | 1 | 1 | 2,711 |
YAML | 36 | 70 | 7 | 1,068 |
JSON | 16 | 0 | 0 | 950 |
Twig | 24 | 56 | 0 | 557 |
Bourne Shell | 1 | 0 | 0 | 2 |
PHP code 50% from 2 tests
A brief analysis of cyclomatic complexity and code structure for this plugin
Please fix the following
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 210)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.24 |
Average class complexity | 6.95 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 303.00 |
Average method complexity | 2.07 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 210.00 |
Code structure | ||
---|---|---|
Namespaces | 75 | |
Interfaces | 60 | |
Traits | 0 | |
Classes | 458 | |
▷ Abstract classes | 24 | 5.24% |
▷ Concrete classes | 434 | 94.76% |
▷ Final classes | 2 | 0.46% |
Methods | 2,986 | |
▷ Static methods | 102 | 3.42% |
▷ Public methods | 2,350 | 78.70% |
▷ Protected methods | 223 | 7.47% |
▷ Private methods | 413 | 13.83% |
Functions | 138 | |
▷ Named functions | 22 | 15.94% |
▷ Anonymous functions | 116 | 84.06% |
Constants | 427 | |
▷ Global constants | 5 | 1.17% |
▷ Class constants | 422 | 98.83% |
▷ Public constants | 420 | 99.53% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
83 PNG files occupy 1.15MB with 0.41MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
vendor/select2/select2/docs/pages/images/flags/al.png | 2.56KB | 1.39KB | ▼ 45.71% |
vendor/select2/select2/docs/themes/site/images/mstile-310x150.png | 1.25KB | 1.15KB | ▼ 8.12% |
vendor/select2/select2/docs/themes/site/images/mstile-70x70.png | 1.51KB | 1.41KB | ▼ 6.92% |
vendor/select2/select2/docs/pages/images/flags/sd.png | 10.01KB | 4.17KB | ▼ 58.30% |
plugin/Gui/resource/mainPage/logo.png | 136.23KB | 56.61KB | ▼ 58.44% |