57% ivalt

Code Review | WebID

WordPress plugin WebID scored57%from 54 tests.

About plugin

  • Plugin page: ivalt
  • Plugin version: 1.0.0
  • PHP version: 7.4.16
  • WordPress compatibility: 5.1-6.0.3
  • WordPress version: 6.3.1
  • First release: Mar 14, 2019
  • Latest release: May 15, 2023
  • Number of updates: 42
  • Update frequency: every 36.3 days
  • Top authors: ivaltinc (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /1,062 total downloads

Benchmarks

Plugin footprint 48% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully

Server metrics [RAM: ▼0.85MB] [CPU: ▼34.73ms] Passed 4 tests

Analyzing server-side resources used by WebID
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.56 ▲0.0940.93 ▲2.69
Dashboard /wp-admin3.11 ▼0.2433.37 ▼30.21
Posts /wp-admin/edit.php3.11 ▼0.2525.27 ▼25.11
Add New Post /wp-admin/post-new.php3.11 ▼2.7824.03 ▼73.38
Media Library /wp-admin/upload.php3.11 ▼0.1225.78 ▼10.21

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

A short overview of filesystem and database impact
The plugin installed successfully
Filesystem: 43 new files
Database: 1 new table, 6 new options
New tables
wp_web_id_users
New WordPress options
theysaidso_admin_options
widget_recent-posts
db_upgraded
widget_theysaidso_widget
can_compress_scripts
widget_recent-comments

Browser metrics Passed 4 tests

This is an overview of browser requirements for WebID
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,891 ▲14513.50 ▼0.958.95 ▲7.3251.18 ▲8.20
Dashboard /wp-admin2,202 ▲225.58 ▼0.0985.17 ▼0.4768.11 ▲27.64
Posts /wp-admin/edit.php2,119 ▲192.01 ▲0.0037.22 ▲0.7028.97 ▼5.48
Add New Post /wp-admin/post-new.php1,552 ▲1422.81 ▼0.51663.75 ▲6.16155.36 ▲101.38
Media Library /wp-admin/upload.php1,416 ▲134.21 ▲0.0193.13 ▼4.1074.20 ▲30.53

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
These items require your attention
  • Uninstall procedure had uncaught errors
    • > Notice in wp-content/plugins/ivalt/admin/class-webID-admin.php+134
    session_start(): A session had already been started - ignoring
  • The plugin did not uninstall successfully, leaving 1 table in the database
    • wp_web_id_users
  • Zombie WordPress options were found after uninstall: 6 options
    • widget_recent-posts
    • can_compress_scripts
    • widget_recent-comments
    • widget_theysaidso_widget
    • db_upgraded
    • theysaidso_admin_options

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Even though everything seems fine, this is not an exhaustive test

SRP 0% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
The following issues need your attention
  • 5× PHP files output text when accessed directly:
    • > /wp-content/plugins/ivalt/admin/partials/register-page.php
    • > /wp-content/plugins/ivalt/public/partials/web-id-public-display.php
    • > /wp-content/plugins/ivalt/admin/partials/web-id-admin-display.php
    • > /wp-content/plugins/ivalt/admin/ikey-vault-register.php
    • > /wp-content/plugins/ivalt/admin/partials/success.php
  • 32× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Notice
      Undefined variable: url in wp-content/plugins/ivalt/admin/ikey-vault-register.php on line 36
    • > PHP Fatal error
      Uncaught Error: Call to undefined function wp_head() in wp-content/plugins/ivalt/admin/partials/login-page.php:4
    • > PHP Warning
      require_once(ABSPATHwp-admin/includes/upgrade.php): failed to open stream: No such file or directory in wp-content/plugins/ivalt/database/class-web-id-tables-generator.php on line 7
    • > PHP Notice
      Trying to get property 'data' of non-object in wp-content/plugins/ivalt/admin/ikey-vault-register.php on line 57
    • > PHP Notice
      Undefined variable: url in wp-content/plugins/ivalt/admin/ikey-vault-register.php on line 24
    • > PHP Notice
      Undefined variable: url in wp-content/plugins/ivalt/admin/partials/register-page.php on line 63
    • > PHP Notice
      Undefined variable: url in wp-content/plugins/ivalt/admin/partials/web-id-admin-display.php on line 50
    • > PHP Fatal error
      Uncaught Error: Class 'WebID_Tables_Generator' not found in wp-content/plugins/ivalt/includes/class-web-id-activator.php:23
    • > PHP Notice
      Trying to get property 'data' of non-object in wp-content/plugins/ivalt/admin/partials/success.php on line 63
    • > PHP Fatal error
      Uncaught Error: Call to undefined function admin_url() in wp-content/plugins/ivalt/admin/partials/register-page.php:124

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
No browser errors were detected

Optimizations

Plugin configuration 87% from 29 tests

readme.txt 88% from 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
These attributes need your attention:
  • Contributors: No valid plugin tags found
  • Contributors: Contributors not specified
You can take inspiration from this readme.txt

ivalt/webID.php 85% from 13 tests

The main file in "WebID" v. 1.0.0 serves as a complement to information provided in readme.txt and as the entry point to the plugin
Please make the necessary changes and fix the following:
  • Main file name: The principal plugin file should be the same as the plugin slug ("ivalt.php" instead of "webID.php")
  • Text Domain: The text domain name must use dashes instead of underscores, and it must be lowercase

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
There were no executable files found in this plugin2,171 lines of code in 27 files:
LanguageFilesBlank linesComment linesLines of code
PHP192325781,041
CSS4489613
JavaScript41087517

PHP code Passed 2 tests

A brief analysis of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity issues
Cyclomatic complexity
Average complexity per logical line of code0.16
Average class complexity4.11
▷ Minimum class complexity1.00
▷ Maximum class complexity25.00
Average method complexity1.70
▷ Minimum method complexity1.00
▷ Maximum method complexity17.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes9
▷ Abstract classes00.00%
▷ Concrete classes9100.00%
▷ Final classes00.00%
Methods40
▷ Static methods25.00%
▷ Public methods3382.50%
▷ Protected methods12.50%
▷ Private methods615.00%
Functions3
▷ Named functions3100.00%
▷ Anonymous functions00.00%
Constants1
▷ Global constants1100.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
6 PNG files occupy 0.11MB with 0.04MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/logo.png26.00KB9.75KB▼ 62.48%
admin/images/apple-store.png4.96KB4.48KB▼ 9.68%
images/apple-store.png4.96KB4.48KB▼ 9.68%
admin/images/success.png46.30KB15.67KB▼ 66.15%
admin/images/webID.png0.79KB0.60KB▼ 24.54%