52% great-real-estate

Code Review | Great Real Estate: WordPress Real Estate and Property Management Plugin

WordPress plugin Great Real Estate: WordPress Real Estate and Property Management Plugin scored52%from 54 tests.

About plugin

  • Plugin page: great-real-estate
  • Plugin version: 1.6
  • PHP version: 7.4.16
  • WordPress compatibility: 4.0-4.3.1
  • WordPress version: 6.3.1
  • First release: Jun 22, 2008
  • Latest release: Oct 16, 2015
  • Number of updates: 57
  • Update frequency: every 46.9 days
  • Top authors: RogerTheriault (59.65%)daverod (42.11%)

Code review

54 tests

User reviews

1 review

Install metrics

50+ active /55,210 total downloads

Benchmarks

Plugin footprint 48% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Install script ran successfully

Server metrics [RAM: ▼0.76MB] [CPU: ▼22.81ms] Passed 4 tests

Server-side resources used by Great Real Estate: WordPress Real Estate and Property Management Plugin
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /3.58 ▲0.1250.65 ▲9.68
Dashboard /wp-admin3.18 ▼0.1235.35 ▼17.87
Posts /wp-admin/edit.php3.18 ▼0.1734.81 ▼12.66
Add New Post /wp-admin/post-new.php3.18 ▼2.7034.69 ▼61.75
Media Library /wp-admin/upload.php3.18 ▼0.0434.89 ▲1.05
About /wp-admin/admin.php?page=greatrealestate-about3.1833.98
Settings /wp-admin/admin.php?page=greatrealestate-options3.1834.88
Great Real Estate /wp-admin/admin.php?page=great-real-estate3.1832.29
Listings /wp-admin/admin.php?page=greatrealestate-listings3.1832.99

Server storage [IO: ▲1.17MB] [DB: ▲0.00MB] Passed 3 tests

Filesystem and database footprint
The plugin installed successfully
Filesystem: 180 new files
Database: 1 new table, 11 new options
New tables
wp_greatrealestate_listings
New WordPress options
widget_recent-comments
widget_gre-random-listings-widget
can_compress_scripts
widget_gre-regular-listings-widget
greatrealestate_db_version
widget_theysaidso_widget
db_upgraded
widget_recent-posts
theysaidso_admin_options
widget_gre-search-listings
...

Browser metrics Passed 4 tests

A check of browser resources used by Great Real Estate: WordPress Real Estate and Property Management Plugin
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,016 ▲25514.83 ▲0.5035.25 ▲33.4143.52 ▲0.82
Dashboard /wp-admin2,272 ▲665.10 ▼0.76114.86 ▲5.4739.18 ▼3.08
Posts /wp-admin/edit.php2,154 ▲542.21 ▲0.2037.31 ▲3.7132.13 ▼4.76
Add New Post /wp-admin/post-new.php1,563 ▲3223.20 ▲0.08653.40 ▲7.0154.99 ▲7.34
Media Library /wp-admin/upload.php1,451 ▲484.42 ▲0.20111.65 ▲8.3247.42 ▲3.15
About /wp-admin/admin.php?page=greatrealestate-about8841.8026.6330.00
Settings /wp-admin/admin.php?page=greatrealestate-options9941.8327.0234.37
Great Real Estate /wp-admin/admin.php?page=great-real-estate9311.9626.1837.27
Listings /wp-admin/admin.php?page=greatrealestate-listings1,0031.8428.1029.04

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
These items require your attention
  • This plugin did not uninstall without warnings or errors
    • > Deprecated in wp-content/plugins/great-real-estate/core/class-settings.php+267
    Function create_function() is deprecated
  • The uninstall procedure failed, leaving 1 table in the database
    • wp_greatrealestate_listings
  • This plugin did not uninstall successfully, leaving 11 options in the database
    • widget_gre-random-listings-widget
    • db_upgraded
    • widget_recent-comments
    • greatrealestate_db_version
    • can_compress_scripts
    • theysaidso_admin_options
    • widget_gre-search-listings
    • widget_theysaidso_widget
    • widget_gre-regular-listings-widget
    • widget_grefeatured
    • ...

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
  • 24 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=greatrealestate-listings
    • > Deprecated in wp-content/plugins/great-real-estate/core/class-settings.php+267
    Function create_function() is deprecated
    • > GET request to /wp-admin/admin.php?page=great-real-estate
    • > Warning in wp-admin/includes/plugin.php+294
    opendir(wp-content/plugins/nextgen-gallery): failed to open dir: No such file or directory
    • > GET request to /wp-admin/admin.php?page=great-real-estate
    • > Warning in wp-admin/includes/plugin.php+294
    opendir(wp-content/plugins/panopress): failed to open dir: No such file or directory

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 take a closer look at the following
  • 3× PHP files output text when accessed directly:
    • > /wp-content/plugins/great-real-estate/great-real-estate.php
    • > /wp-content/plugins/great-real-estate/core/templates/listing-downloads.tpl.php
    • > /wp-content/plugins/great-real-estate/privatefunctions.php
  • 54× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Notice
      Undefined variable: post in wp-content/plugins/great-real-estate/admin/templates/edit-listing-submit-button.tpl.php on line 5
    • > PHP Fatal error
      Uncaught Error: Call to undefined function wp_reset_postdata() in wp-content/plugins/great-real-estate/core/templates/listings-widget.tpl.php:30
    • > PHP Fatal error
      Uncaught Error: Class 'GRE_Listings_Widget' not found in wp-content/plugins/great-real-estate/core/class-random-listings-widget.php:3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function getandsetup_listingdata() in wp-content/plugins/great-real-estate/copytotemplatedir/great-real-estate/listing-page-content.php:4
    • > PHP Notice
      Undefined variable: can_publish in wp-content/plugins/great-real-estate/admin/templates/edit-listing-submit-button.tpl.php on line 6
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_header() in wp-content/plugins/great-real-estate/copytotemplatedir/great-real-estate/listings-page.php:15
    • > PHP Fatal error
      Uncaught Error: Call to undefined function the_listing_thumbnail() in wp-content/plugins/great-real-estate/theme/great-real-estate/listing-excerpt.php:2
    • > PHP Notice
      Trying to get property 'url' of non-object in wp-content/plugins/great-real-estate/admin/templates/downloads-item.tpl.php on line 3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html() in wp-content/plugins/great-real-estate/admin/templates/manage-settings-admin-page.tpl.php:2
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _ex() in wp-content/plugins/great-real-estate/admin/templates/downloads.tpl.php:3

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 97% from 29 tests

readme.txt 94% from 16 tests

Often overlooked, readme.txt is one of the most important files in your plugin
Please fix the following attributes:
  • Tags: Please delete some tags, you are using 15 tag instead of maximum 10
Please take inspiration from this readme.txt

great-real-estate/great-real-estate.php Passed 13 tests

Analyzing the main PHP file in "Great Real Estate: WordPress Real Estate and Property Management Plugin" version 1.6
81 characters long description:
Adds the ability to create and manage real estate listings in your WordPress site

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
No dangerous file extensions were detected16,654 lines of code in 151 files:
LanguageFilesBlank linesComment linesLines of code
PHP751,4076646,026
JavaScript385681,0695,955
PO File61,1531,4272,411
CSS22921161,087
HTML50208870
JSON300189
Markdown2490116

PHP code Passed 2 tests

Analyzing cyclomatic complexity and code structure
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity
Average complexity per logical line of code0.31
Average class complexity9.92
▷ Minimum class complexity1.00
▷ Maximum class complexity72.00
Average method complexity2.50
▷ Minimum method complexity1.00
▷ Maximum method complexity24.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes25
▷ Abstract classes14.00%
▷ Concrete classes2496.00%
▷ Final classes00.00%
Methods153
▷ Static methods138.50%
▷ Public methods10166.01%
▷ Protected methods2717.65%
▷ Private methods2516.34%
Functions216
▷ Named functions216100.00%
▷ Anonymous functions00.00%
Constants22
▷ Global constants1881.82%
▷ Class constants418.18%
▷ Public constants4100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
5 PNG files occupy 0.19MB with 0.16MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/redlight.png48.43KB0.44KB▼ 99.09%
images/questionlight.png49.58KB0.49KB▼ 99.00%
css/img/tabs.png0.41KB0.35KB▼ 14.89%
images/yellowlight.png48.89KB0.44KB▼ 99.10%
images/greenlight.png48.57KB0.44KB▼ 99.09%