68% gwolle-gb

Code Review | Gwolle Guestbook

WordPress plugin Gwolle Guestbook scored68%from 54 tests.

About plugin

  • Plugin page: gwolle-gb
  • Plugin version: 4.6.1
  • PHP compatiblity: 7.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.1-6.3
  • WordPress version: 6.3.1
  • First release: Feb 9, 2009
  • Latest release: Sep 29, 2023
  • Number of updates: 1,913
  • Update frequency: every 2.8 days
  • Top authors: mpol (98.22%)gwolle (1.83%)

Code review

54 tests

User reviews

108 reviews

Install metrics

30,000+ active /1,235,290 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲0.15MB] [CPU: ▼4.88ms] Passed 4 tests

This is a short check of server-side resources used by Gwolle Guestbook
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /3.56 ▲0.1041.69 ▲1.51
Dashboard /wp-admin3.48 ▲0.1451.68 ▼6.40
Posts /wp-admin/edit.php3.59 ▲0.2445.00 ▼5.38
Add New Post /wp-admin/post-new.php6.06 ▲0.1792.16 ▼9.26
Media Library /wp-admin/upload.php3.40 ▲0.1835.65 ▲3.75
Import /wp-admin/admin.php?page=gwolle-gb/import.php3.4036.98
Settings /wp-admin/admin.php?page=gwolle-gb/settings.php4.0047.51
Export /wp-admin/admin.php?page=gwolle-gb/export.php3.3732.47

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

Input-output and database impact of this plugin
This plugin was installed successfully
Filesystem: 199 new files
Database: 2 new tables, 37 new options
New tables
wp_gwolle_gb_log
wp_gwolle_gb_entries
New WordPress options
gwolle_gb_version
gwolle_gb-showLineBreaks
gwolle_gb-mail_author_moderation
widget_recent-posts
db_upgraded
theysaidso_admin_options
gwolle_gb-moderate-entries
can_compress_scripts
gwolle_gb-labels_float
gwolle_gb-nonce
...

Browser metrics Passed 4 tests

Gwolle Guestbook: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,005 ▲25913.81 ▼0.575.62 ▲3.9942.76 ▲2.09
Dashboard /wp-admin2,310 ▲1225.10 ▼0.75102.99 ▼1.6939.94 ▲1.09
Posts /wp-admin/edit.php2,153 ▲642.03 ▲0.0336.34 ▼4.3133.32 ▼3.51
Add New Post /wp-admin/post-new.php1,571 ▲5723.21 ▲5.72606.44 ▼94.8450.75 ▼10.97
Media Library /wp-admin/upload.php1,455 ▲644.29 ▲0.1096.85 ▼7.0941.66 ▼4.33
Import /wp-admin/admin.php?page=gwolle-gb/import.php1,1062.3126.3829.94
Settings /wp-admin/admin.php?page=gwolle-gb/settings.php2,6562.2326.4829.76
Export /wp-admin/admin.php?page=gwolle-gb/export.php9082.3226.9228.38

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
These items require your attention
  • This plugin does not fully uninstall, leaving 2 tables in the database
    • wp_gwolle_gb_log
    • wp_gwolle_gb_entries
  • This plugin does not fully uninstall, leaving 37 options in the database
    • gwolle_gb-longtext
    • gwolle_gb-timeout
    • gwolle_gb-mail_author
    • gwolle_gb-entries_per_page
    • gwolle_gb-form
    • gwolle_gb-require_login
    • gwolle_gb-read
    • gwolle_gb-admin_style
    • gwolle_gb-navigation
    • gwolle_gb-akismet-active
    • ...

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check 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 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
The following issues need your attention
  • 57× PHP files perform the task of outputting text when accessed with GET requests (only 10 are shown):
    • > /wp-content/plugins/gwolle-gb/admin/gwolle-gb-hooks.php
    • > /wp-content/plugins/gwolle-gb/frontend/gb-form-posthandling.php
    • > /wp-content/plugins/gwolle-gb/frontend/gb-pagination.php
    • > /wp-content/plugins/gwolle-gb/functions/gb-mail.php
    • > /wp-content/plugins/gwolle-gb/functions/gb-single-view.php
    • > /wp-content/plugins/gwolle-gb/functions/gb-dependencies.php
    • > /wp-content/plugins/gwolle-gb/admin/gb-upgrade.php
    • > /wp-content/plugins/gwolle-gb/admin/tabs/gb-emailtab.php
    • > /wp-content/plugins/gwolle-gb/admin/tabs/gb-uninstalltab.php
    • > /wp-content/plugins/gwolle-gb/functions/gb-capabilities.php
  • 2× GET requests to PHP files trigger server-side errors or Error 500 responses:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function plugin_basename() in wp-content/plugins/gwolle-gb/gwolle-gb.php:86
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/gwolle-gb/frontend/gb-blocklist.php:90

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser issues were found

Optimizations

Plugin configuration 96% from 29 tests

readme.txt Passed 16 tests

Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
5 plugin tags: review, gstebuch, livre dor, guestbook, guest book

gwolle-gb/gwolle-gb.php 92% from 13 tests

The main PHP script in "Gwolle Guestbook" version 4.6.1 is automatically included on every request by WordPress
You should first fix the following items:
  • Description: Keep the plugin description shorter than 140 characters (currently 265 characters long)

Code Analysis Passed 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 plugin13,047 lines of code in 66 files:
LanguageFilesBlank linesComment linesLines of code
PHP592,1662,37811,040
JavaScript42382371,135
CSS313196872

PHP code Passed 2 tests

This is a short overview of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.42
Average class complexity30.00
▷ Minimum class complexity6.00
▷ Maximum class complexity43.00
Average method complexity2.71
▷ Minimum method complexity1.00
▷ Maximum method complexity21.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes3
▷ Abstract classes00.00%
▷ Concrete classes3100.00%
▷ Final classes00.00%
Methods51
▷ Static methods00.00%
▷ Public methods51100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions176
▷ Named functions176100.00%
▷ Anonymous functions00.00%
Constants4
▷ Global constants4100.00%
▷ Class constants00.00%
▷ Public constants00.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
17 PNG files occupy 0.09MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/images/entry-spam.png0.94KB0.93KB▼ 1.45%
frontend/markitup/images/list-bullet.png0.24KB0.14KB▼ 43.72%
frontend/markitup/images/handle.png0.25KB0.13KB▼ 48.45%
frontend/markitup/images/list-numeric.png0.43KB0.37KB▼ 15.38%
frontend/markitup/images/clean.png0.62KB0.54KB▼ 12.46%