84% getwid

Code Review | Getwid - Gutenberg Blocks

WordPress plugin Getwid - Gutenberg Blocks scored84%from 54 tests.

About plugin

  • Plugin page: getwid
  • Plugin version: 2.0.3
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.8-6.4
  • WordPress version: 6.3.1
  • First release: Mar 29, 2019
  • Latest release: Nov 17, 2023
  • Number of updates: 138
  • Update frequency: every 12.3 days
  • Top authors: MotoPress (59.42%)endzevich (29.71%)jetmonsters (12.32%)

Code review

54 tests

User reviews

108 reviews

Install metrics

50,000+ active /1,000,131 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲2.50MB] [CPU: ▲8.59ms] Passed 4 tests

This is a short check of server-side resources used by Getwid - Gutenberg Blocks
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /6.03 ▲2.5754.16 ▲14.08
Dashboard /wp-admin5.82 ▲2.4754.66 ▼3.17
Posts /wp-admin/edit.php5.87 ▲2.5155.70 ▲8.42
Add New Post /wp-admin/post-new.php8.81 ▲2.93110.51 ▲16.54
Media Library /wp-admin/upload.php5.70 ▲2.4751.63 ▲15.03
Getwid /wp-admin/options-general.php?page=getwid5.6744.80

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

Filesystem and database footprint
There were no storage issued detected upon installing this plugin
Filesystem: 344 new files
Database: no new tables, 71 new options
New WordPress options
getwid/table-of-contents::disabled
getwid/price-list::disabled
getwid/countdown::disabled
getwid_section_content_width
getwid/post-carousel::disabled
getwid/map::disabled
getwid/button-group::disabled
getwid/image-box::disabled
widget_recent-comments
getwid_load_assets_on_demand
...

Browser metrics Passed 4 tests

An overview of browser requirements for Getwid - Gutenberg Blocks
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,891 ▲12914.14 ▼0.2012.47 ▲10.4738.73 ▼7.12
Dashboard /wp-admin2,202 ▲215.60 ▲0.0093.50 ▼18.1237.06 ▼0.97
Posts /wp-admin/edit.php2,104 ▲41.96 ▲0.0037.34 ▼3.6335.50 ▲0.40
Add New Post /wp-admin/post-new.php6,247 ▲4,72121.74 ▼1.451,122.51 ▲368.7239.65 ▼16.01
Media Library /wp-admin/upload.php1,401 ▲14.22 ▼0.00103.70 ▲1.0045.12 ▼1.35
Getwid /wp-admin/options-general.php?page=getwid9272.0227.3829.78

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 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 does not fully uninstall, leaving 8 options in the database
    • theysaidso_admin_options
    • getwid/ai-text::disabled
    • widget_theysaidso_widget
    • db_upgraded
    • getwid/content-slider::disabled
    • widget_recent-comments
    • widget_recent-posts
    • can_compress_scripts

Smoke tests 75% 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 no errors were found, this is by no means an exhaustive test

SRP 50% 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 take a closer look at the following
  • 130× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Notice
      Undefined variable: extra_attr in wp-content/plugins/getwid/includes/templates/post-slider/post.php on line 6
    • > PHP Notice
      Undefined variable: attributes in wp-content/plugins/getwid/includes/templates/template-parts/post-comments.php on line 7
    • > PHP Warning
      extract() expects parameter 1 to be array, null given in wp-content/plugins/getwid/includes/templates/template-parts/post-button.php on line 4
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/getwid/includes/templates/post-slider/post.php on line 6
    • > PHP Fatal error
      Uncaught Error: Class 'Getwid\\Blocks\\AbstractBlock' not found in wp-content/plugins/getwid/includes/blocks/recent-posts.php:5
    • > PHP Warning
      extract() expects parameter 1 to be array, null given in wp-content/plugins/getwid/includes/templates/template-parts/post-link.php on line 4
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/getwid/includes/templates/template-parts/post-custom-field.php:7
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/getwid/includes/templates/contact-form/contact-form.php:11
    • > PHP Warning
      extract() expects parameter 1 to be array, null given in wp-content/plugins/getwid/includes/templates/template-parts/post-custom-field.php on line 4
    • > PHP Fatal error
      Uncaught Error: Class 'Getwid\\Blocks\\AbstractBlock' not found in wp-content/plugins/getwid/includes/blocks/circle-progress-bar.php:5

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser errors were detected

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% 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 to be fixed:
  • Tags: Too many tags (16 tag instead of maximum 10); only the first 5 tags are used in your directory listing
The official readme.txt might help

getwid/getwid.php Passed 13 tests

The main file in "Getwid - Gutenberg Blocks" v. 2.0.3 serves as a complement to information provided in readme.txt and as the entry point to the plugin
98 characters long description:
Extra Gutenberg blocks for building seamless and aesthetic websites in the WordPress block editor.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
There were no executable files found in this plugin36,727 lines of code in 296 files:
LanguageFilesBlank linesComment linesLines of code
PHP1172,8701,25412,303
JavaScript982,1941,23910,495
CSS732,4454129,315
SVG5104,296
JSON220166
Markdown1730152

PHP code Passed 2 tests

This is a short overview of cyclomatic complexity and code structure for this plugin
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.41
Average class complexity12.54
▷ Minimum class complexity1.00
▷ Maximum class complexity64.00
Average method complexity2.81
▷ Minimum method complexity1.00
▷ Maximum method complexity41.00
Code structure
Namespaces4
Interfaces0
Traits0
Classes79
▷ Abstract classes11.27%
▷ Concrete classes7898.73%
▷ Final classes45.13%
Methods457
▷ Static methods81.75%
▷ Public methods41691.03%
▷ Protected methods81.75%
▷ Private methods337.22%
Functions61
▷ Named functions2032.79%
▷ Anonymous functions4167.21%
Constants5
▷ Global constants480.00%
▷ Class constants120.00%
▷ Public constants1100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
PNG images were not found in this plugin