67% site-reviews

Code Review | Site Reviews

WordPress plugin Site Reviews scored67%from 54 tests.

About plugin

  • Plugin page: site-reviews
  • Plugin version: 6.11.4
  • PHP compatiblity: 7.2+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.8-6.4
  • WordPress version: 6.3.1
  • First release: Oct 22, 2016
  • Latest release: Nov 2, 2023
  • Number of updates: 551
  • Update frequency: every 4.7 days
  • Top authors: geminilabs (100%)

Code review

54 tests

User reviews

299 reviews

Install metrics

60,000+ active /2,108,631 total downloads

Benchmarks

Plugin footprint 64% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲6.48MB] [CPU: ▲57.84ms] 25% from 4 tests

Analyzing server-side resources used by Site Reviews
Please have a look at the following items
  • RAM: You should keep total memory usage under 10MB (currently 15.31MB on /wp-admin/edit.php?post_type=site-review&page=glsr-settings)
  • CPU: The total CPU usage must kept under 500.00ms (currently 536.59ms on /wp-admin/edit.php?post_type=site-review&page=glsr-addons)
  • Extra RAM: Extra memory usage should kept under 5MB (currently 6.48MB on /wp-admin/edit.php?post_type=site-review&page=glsr-settings)
PageMemory (MB)CPU Time (ms)
Home /9.83 ▲6.3698.85 ▲56.05
Dashboard /wp-admin9.87 ▲6.5699.53 ▲49.95
Posts /wp-admin/edit.php9.89 ▲6.53109.42 ▲62.94
Add New Post /wp-admin/post-new.php12.89 ▲7.00143.90 ▲62.42
Media Library /wp-admin/upload.php9.69 ▲6.46108.97 ▲70.63
Categories /wp-admin/edit-tags.php?taxonomy=site-review-category&post_type=site-review9.6998.50
Scheduled Actions /wp-admin/tools.php?page=action-scheduler9.8891.43
Help & Support /wp-admin/edit.php?post_type=site-review&page=glsr-documentation10.03108.64
Tools /wp-admin/edit.php?post_type=site-review&page=glsr-tools11.511,897.36
All Reviews /wp-admin/edit.php?post_type=site-review10.32116.04
Addons /wp-admin/edit.php?post_type=site-review&page=glsr-addons10.06536.59
Settings /wp-admin/edit.php?post_type=site-review&page=glsr-settings15.31462.03

Server storage [IO: ▲6.12MB] [DB: ▲0.04MB] Passed 3 tests

How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 1,186 new files
Database: 8 new tables, 25 new options
New tables
wp_glsr_assigned_users
wp_glsr_assigned_terms
wp_actionscheduler_logs
wp_actionscheduler_claims
wp_glsr_assigned_posts
wp_glsr_ratings
wp_actionscheduler_groups
wp_actionscheduler_actions
New WordPress options
widget_glsr_site-reviews-summary
widget_theysaidso_widget
glsr_engine_wp_users
glsr_db_version
theysaidso_admin_options
glsr_engine_wp_postmeta
glsr_engine_wp_glsr_assigned_users
db_upgraded
glsr_engine_wp_glsr_assigned_posts
glsr_migrations
...

Browser metrics Passed 4 tests

A check of browser resources used by Site Reviews
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,088 ▲32713.75 ▼0.655.47 ▲3.7535.71 ▼8.22
Dashboard /wp-admin2,472 ▲2955.48 ▼0.14108.31 ▲8.4948.66 ▲5.16
Posts /wp-admin/edit.php2,155 ▲522.07 ▲0.1153.77 ▲14.7238.06 ▼0.13
Add New Post /wp-admin/post-new.php1,753 ▲22724.75 ▲1.60718.08 ▲43.5341.51 ▼16.67
Media Library /wp-admin/upload.php1,455 ▲524.24 ▲0.05145.57 ▲48.6154.92 ▲12.84
Categories /wp-admin/edit-tags.php?taxonomy=site-review-category&post_type=site-review1,3792.2832.5030.25
Scheduled Actions /wp-admin/tools.php?page=action-scheduler1,3001.8125.6129.24
Help & Support /wp-admin/edit.php?post_type=site-review&page=glsr-documentation22,0853.43110.8744.15
Tools /wp-admin/edit.php?post_type=site-review&page=glsr-tools2,7192.5741.4439.76
All Reviews /wp-admin/edit.php?post_type=site-review1,9982.7545.3659.18
Addons /wp-admin/edit.php?post_type=site-review&page=glsr-addons2,3512.3934.5156.83
Settings /wp-admin/edit.php?post_type=site-review&page=glsr-settings4,4693.8264.6248.04

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
The following items require your attention
  • Zombie tables were found after uninstall: 8 tables
    • wp_glsr_assigned_posts
    • wp_glsr_assigned_terms
    • wp_actionscheduler_claims
    • wp_actionscheduler_groups
    • wp_glsr_ratings
    • wp_glsr_assigned_users
    • wp_actionscheduler_actions
    • wp_actionscheduler_logs
  • The uninstall procedure has failed, leaving 24 options in the database
    • widget_recent-comments
    • glsr_migrations
    • action_scheduler_hybrid_store_demarkation
    • glsr_db_version
    • theysaidso_admin_options
    • glsr_engine_wp_posts
    • glsr_engine_wp_users
    • widget_glsr_site-reviews-form
    • widget_theysaidso_widget
    • schema-ActionScheduler_LoggerSchema
    • ...

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Even though no errors were found, this is by no means an exhaustive test

SRP 0% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following
  • 4× PHP files output non-empty strings when accessed directly via GET requests:
    • > /wp-content/plugins/site-reviews/templates/rating/half-star.php
    • > /wp-content/plugins/site-reviews/templates/rating/full-star.php
    • > /wp-content/plugins/site-reviews/templates/rating/stars.php
    • > /wp-content/plugins/site-reviews/templates/rating/empty-star.php
  • 472× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'GeminiLabs\\SiteReviews\\Modules\\Schema\\BaseType' not found in wp-content/plugins/site-reviews/plugin/Modules/Schema/AggregateOffer.php:14
    • > PHP Fatal error
      Uncaught Error: Class 'GeminiLabs\\SiteReviews\\Modules\\Html\\Fields\\Checkbox' not found in wp-content/plugins/site-reviews/plugin/Modules/Html/Fields/Toggle.php:5
    • > PHP Fatal error
      Uncaught Error: Interface 'GeminiLabs\\SiteReviews\\Contracts\\CommandContract' not found in wp-content/plugins/site-reviews/plugin/Commands/EnqueueAdminAssets.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'GeminiLabs\\SiteReviews\\Defaults\\DefaultsAbstract' not found in wp-content/plugins/site-reviews/plugin/Defaults/TaxonomyDefaults.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'GeminiLabs\\SiteReviews\otices\\AbstractNotice' not found in wp-content/plugins/site-reviews/plugin/Notices/FooterNotice.php:5
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html_x() in wp-content/plugins/site-reviews/config/forms/metabox-fields.php:5
    • > PHP Fatal error
      Uncaught Error: Class 'GeminiLabs\\SiteReviews\\Hooks\\AbstractHooks' not found in wp-content/plugins/site-reviews/plugin/Hooks/RevisionHooks.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'GeminiLabs\\SiteReviews\\Modules\\Html\\Field' not found in wp-content/plugins/site-reviews/plugin/Modules/Html/SettingField.php:7
    • > PHP Fatal error
      Uncaught Error: Interface 'GeminiLabs\\SiteReviews\\Contracts\\MetaboxContract' not found in wp-content/plugins/site-reviews/plugin/Metaboxes/AuthorMetabox.php:10
    • > PHP Fatal error
      Uncaught Error: Interface 'Stringable' not found in wp-content/plugins/site-reviews/vendors/symfony/polyfill-php80/PhpToken.php:21

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine on the user side

Optimizations

Plugin configuration 93% from 29 tests

readme.txt Passed 16 tests

Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
9 plugin tags: testimonials, product reviews, reviews, woocommerce, stars...

site-reviews/site-reviews.php 85% from 13 tests

"Site Reviews" version 6.11.4's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
Please take the time to fix the following:
  • Domain Path: You should use only dashes and lowercase characters for the domain path ("languages")
  • Domain Path: Prefix the domain path with a forward slash character ("/languages")

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
There were no executable files found in this plugin81,888 lines of code in 1,087 files:
LanguageFilesBlank linesComment linesLines of code
PHP1,0137,77219,77477,316
PO File11,1851,1894,199
SVG3100147
Markdown3390109
XML20076
CSS290029
JavaScript7027
JSON1005

PHP code Passed 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.34
Average class complexity8.02
▷ Minimum class complexity1.00
▷ Maximum class complexity166.00
Average method complexity2.22
▷ Minimum method complexity1.00
▷ Maximum method complexity57.00
Code structure
Namespaces80
Interfaces25
Traits6
Classes616
▷ Abstract classes436.98%
▷ Concrete classes57393.02%
▷ Final classes111.92%
Methods3,818
▷ Static methods41410.84%
▷ Public methods2,59167.86%
▷ Protected methods1,15930.36%
▷ Private methods681.78%
Functions361
▷ Named functions18751.80%
▷ Anonymous functions17448.20%
Constants233
▷ Global constants177.30%
▷ Class constants21692.70%
▷ Public constants21499.07%

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
5 compressed PNG files occupy 0.15MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/images/video-cover.png66.98KB72.79KB0.00%
assets/images/about/reviews.png34.00KB37.02KB0.00%
assets/images/about/blocks.png12.77KB13.72KB0.00%
assets/images/about/form.png24.53KB26.24KB0.00%
assets/images/about/summary.png12.27KB13.68KB0.00%