10% property-management-software-unitconnect

Code Review | Property Management Software | UnitConnect

WordPress plugin Property Management Software | UnitConnect scored10%from 54 tests.

About plugin

  • Plugin page: property-manageme...
  • Plugin version: 1.0.0
  • PHP version: 7.4.16
  • WordPress compatibility: 4.5-5.8
  • WordPress version: 6.3.1
  • First release: Aug 10, 2021
  • Latest release: Aug 10, 2021
  • Number of updates: 3
  • Update frequency: every 1.3 days
  • Top authors: unitconnect (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /408 total downloads

Benchmarks

Plugin footprint 58% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
Please fix the following installer errors
  • This plugin did not install gracefully
    • > User deprecated in wp-includes/functions.php+5453
    Function get_page_by_title is deprecated since version 6.2.0! Use WP_Query instead.

Server metrics [RAM: ▲2.28MB] [CPU: ▲29.32ms] Passed 4 tests

Server-side resources used by Property Management Software | UnitConnect
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /4.86 ▲1.4064.26 ▲26.13
Dashboard /wp-admin5.90 ▲2.5997.41 ▲39.40
Posts /wp-admin/edit.php5.91 ▲2.5683.19 ▲32.95
Add New Post /wp-admin/post-new.php8.66 ▲2.77130.38 ▲28.25
Media Library /wp-admin/upload.php5.81 ▲2.5970.80 ▲29.94
New Property /wp-admin/post-new.php?post_type=listing6.5394.04
Properties /wp-admin/edit.php?post_type=listing5.9377.85
Property Type /wp-admin/edit-tags.php?taxonomy=listing-type&post_type=listing5.8364.00
Property Status /wp-admin/edit-tags.php?taxonomy=listing-status&post_type=listing5.8161.22
Inquiries /wp-admin/edit.php?post_type=listing-inquiry5.8663.83
UCPM Settings /wp-admin/edit.php?post_type=listing&page=ucpm_options6.4269.62

Server storage [IO: ▲13.79MB] [DB: ▲0.01MB] Passed 3 tests

Filesystem and database footprint
This plugin was installed successfully
Filesystem: 849 new files
Database: no new tables, 15 new options
New WordPress options
widget_theysaidso_widget
widget_ucpm-search-properties
widget_ucpm-recent-properties
widget_recent-comments
ucpm_options
widget_ucpm-recent-properties-for-lease
widget_ucpm-recent-properties-for-sale
can_compress_scripts
wp_real_estate_activated
listing-type_children
...

Browser metrics Passed 4 tests

A check of browser resources used by Property Management Software | UnitConnect
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,908 ▲16214.14 ▼0.2217.07 ▲15.3148.04 ▲4.72
Dashboard /wp-admin2,286 ▲954.93 ▲0.00114.34 ▲2.1945.82 ▲2.12
Posts /wp-admin/edit.php2,166 ▲772.29 ▲0.2841.42 ▼0.1438.76 ▲3.86
Add New Post /wp-admin/post-new.php1,574 ▲5323.19 ▲0.02657.75 ▼23.2953.15 ▼3.08
Media Library /wp-admin/upload.php1,462 ▲774.41 ▲0.21101.12 ▼19.2643.42 ▼14.25
New Property /wp-admin/post-new.php?post_type=listing3,58410.44232.5487.04
Properties /wp-admin/edit.php?post_type=listing1,8892.3344.7734.34
Property Type /wp-admin/edit-tags.php?taxonomy=listing-type&post_type=listing1,5592.1638.6737.56
Property Status /wp-admin/edit-tags.php?taxonomy=listing-status&post_type=listing1,3482.1936.5431.29
Inquiries /wp-admin/edit.php?post_type=listing-inquiry1,2082.2538.6835.95
UCPM Settings /wp-admin/edit.php?post_type=listing&page=ucpm_options2,5856.53138.6441.31

Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 75% from 4 tests

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
The following items require your attention
  • This plugin did not uninstall successfully, leaving 15 options in the database
    • wp_real_estate_activated
    • UCPM_VERSION
    • listing-type_children
    • theysaidso_admin_options
    • widget_ucpm-recent-properties
    • widget_theysaidso_widget
    • can_compress_scripts
    • widget_ucpm-search-properties
    • widget_recent-posts
    • ucpm_options
    • ...

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
The smoke test was a success, however most plugin functionality was not tested

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
The following issues need your attention
  • 1× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/property-management-software-unitconnect/includes/vendor/sabberworm/php-css-parser/tests/quickdump.php
  • 185× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'Dompdf\\FrameDecorator\\AbstractFrameDecorator' not found in wp-content/plugins/property-management-software-unitconnect/includes/vendor/dompdf/dompdf/src/FrameDecorator/Inline.php:22
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Multi_Base' not found in wp-content/plugins/property-management-software-unitconnect/includes/libraries/cmb2/includes/types/CMB2_Type_Radio.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Taxonomy_Select' not found in wp-content/plugins/property-management-software-unitconnect/includes/libraries/cmb2/includes/types/CMB2_Type_Taxonomy_Select_Hierarchical.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'Dompdf\\Exception' not found in wp-content/plugins/property-management-software-unitconnect/includes/vendor/dompdf/dompdf/src/Exception/ImageException.php:17
    • > PHP Fatal error
      Uncaught Error: Class 'Dompdf\\Positioner\\AbstractPositioner' not found in wp-content/plugins/property-management-software-unitconnect/includes/vendor/dompdf/dompdf/src/Positioner/NullPositioner.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'Cmb2Grid\\Grid\\Column' not found in wp-content/plugins/property-management-software-unitconnect/includes/libraries/cmb2-grid/Grid/Group/GroupColumn.php:20
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Text' not found in wp-content/plugins/property-management-software-unitconnect/includes/libraries/cmb2/includes/types/CMB2_Type_File_Base.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'Dompdf\\Positioner\\AbstractPositioner' not found in wp-content/plugins/property-management-software-unitconnect/includes/vendor/dompdf/dompdf/src/Positioner/Block.php:19
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/property-management-software-unitconnect/includes/libraries/cmb2/includes/helper-functions.php:131
    • > PHP Fatal error
      Uncaught Error: Class 'Svg\\Tag\\Shape' not found in wp-content/plugins/property-management-software-unitconnect/includes/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php:11

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 86% from 29 tests

readme.txt 94% from 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that require attention:
  • Contributors: Contributors not specified
You can look at the official readme.txt

property-management-software-unitconnect/ucpm.php 77% from 13 tests

The main PHP script in "Property Management Software | UnitConnect" version 1.0.0 is automatically included on every request by WordPress
You should first fix the following items:
  • Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("property-management-software-unitconnect.php" instead of "ucpm.php")
  • Description: The description should be shorter than 140 characters (currently 144 characters long)
  • Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
There were no executable files found in this plugin101,554 lines of code in 587 files:
LanguageFilesBlank linesComment linesLines of code
PHP33812,71424,23251,862
PO File12014,31518,50232,323
CSS635021,3729,107
JavaScript158338994,316
Markdown1256101,824
Sass15291251,330
JSON900379
XML674203
SVG4640101
YAML4213592
HTML10017

PHP code 50% from 2 tests

Analyzing cyclomatic complexity and code structure
These items need your attention
  • Please reduce cyclomatic complexity of methods to less than 100 (currently 652)
Cyclomatic complexity
Average complexity per logical line of code0.42
Average class complexity29.80
▷ Minimum class complexity1.00
▷ Maximum class complexity797.00
Average method complexity4.01
▷ Minimum method complexity1.00
▷ Maximum method complexity652.00
Code structure
Namespaces40
Interfaces5
Traits0
Classes288
▷ Abstract classes227.64%
▷ Concrete classes26692.36%
▷ Final classes10.38%
Methods2,871
▷ Static methods2027.04%
▷ Public methods2,45585.51%
▷ Protected methods31310.90%
▷ Private methods1033.59%
Functions189
▷ Named functions16386.24%
▷ Anonymous functions2613.76%
Constants195
▷ Global constants147.18%
▷ Class constants18192.82%
▷ Public constants181100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

It is recommended to compress PNG files in your plugin to minimize bandwidth usage
17 compressed PNG files occupy 0.10MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
includes/admin/assets/images/ucpm-pro-image.png77.24KB43.56KB▼ 43.61%
includes/libraries/cmb2/images/ui-bg_highlight-soft_75_cccccc_1x100.png0.10KB0.17KB0.00%
includes/vendor/dompdf/dompdf/lib/res/broken_image.png0.60KB0.47KB▼ 22.33%
includes/libraries/cmb2/images/ui-icons_2e83ff_256x240.png4.27KB4.11KB▼ 3.78%
includes/libraries/cmb2/images/ui-bg_glass_95_fef1ec_1x400.png0.12KB0.14KB0.00%