66% widgetkit-for-elementor

Code Review | All-in-One Addons for Elementor - WidgetKit

WordPress plugin All-in-One Addons for Elementor - WidgetKit scored66%from 54 tests.

About plugin

  • Plugin page: widgetkit-for-ele...
  • Plugin version: 2.4.8
  • PHP compatiblity: 7.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.0.0-6.1.1
  • WordPress version: 6.3.1
  • First release: Feb 19, 2018
  • Latest release: Dec 31, 2022
  • Number of updates: 113
  • Update frequency: every 15.7 days
  • Top authors: themesgrove (100%)

Code review

54 tests

User reviews

36 reviews

Install metrics

10,000+ active /490,121 total downloads

Benchmarks

Plugin footprint 82% 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.87MB] [CPU: ▲0.31ms] 75% from 4 tests

Server-side resources used by All-in-One Addons for Elementor - WidgetKit
Please fix the following
  • CPU: You should keep total CPU usage under 500.00ms (currently 636.21ms on /wp-admin/admin.php?page=widgetkit-settings)
PageMemory (MB)CPU Time (ms)
Home /4.33 ▲0.8743.78 ▲3.47
Dashboard /wp-admin4.19 ▲0.8455.98 ▼10.71
Posts /wp-admin/edit.php4.24 ▲0.8858.58 ▲4.89
Add New Post /wp-admin/post-new.php6.79 ▲0.90102.81 ▲3.60
Media Library /wp-admin/upload.php4.11 ▲0.8851.30 ▲15.99
Go Pro /wp-admin/admin.php?page=widgetkit-gopro3.9135.91
WidgetKit /wp-admin/admin.php?page=widgetkit-settings4.35636.21

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

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

Browser metrics Passed 4 tests

This is an overview of browser requirements for All-in-One Addons for Elementor - WidgetKit
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,867 ▲12114.32 ▼0.041.62 ▼0.1437.67 ▼8.40
Dashboard /wp-admin2,261 ▲875.66 ▲0.0891.56 ▲1.6278.58 ▲37.85
Posts /wp-admin/edit.php2,184 ▲842.18 ▲0.1541.07 ▲4.0540.37 ▲4.39
Add New Post /wp-admin/post-new.php1,595 ▲6923.05 ▼0.04749.38 ▲49.0660.49 ▲3.35
Media Library /wp-admin/upload.php1,478 ▲784.23 ▲0.02113.84 ▲12.4982.06 ▲32.51
Go Pro /wp-admin/admin.php?page=widgetkit-gopro9,05911.95265.71361.25
WidgetKit /wp-admin/admin.php?page=widgetkit-settings5,4623.71147.4632.92

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

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
It is recommended to fix the following
  • The uninstall procedure has failed, leaving 6 options in the database
    • can_compress_scripts
    • theysaidso_admin_options
    • db_upgraded
    • widget_recent-comments
    • widget_theysaidso_widget
    • widget_recent-posts

Smoke tests 0% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
These server-side errors were triggered
    • > GET request to /wp-admin/admin.php?page=widgetkit-settings
    • > Notice in wp-content/plugins/widgetkit-for-elementor/admin/includes/changelog.php+210
    Undefined variable: data
    • > GET request to /wp-admin/admin.php?page=widgetkit-settings
    • > Notice in wp-content/plugins/widgetkit-for-elementor/admin/includes/changelog.php+210
    Trying to access array offset on value of type null

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
Almost there! Just fix the following items
  • 7× PHP files output text when accessed directly:
    • > /wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-1.php
    • > /wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-5.php
    • > /wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-4.php
    • > /wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/default.php
    • > /wp-content/plugins/widgetkit-for-elementor/admin/notices/notice.php
    • > /wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-3.php
    • > /wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-2.php
  • 134× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-2.php on line 19
    • > PHP Notice
      Undefined variable: testimonial in wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/default.php on line 27
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/widgetkit-for-elementor/elements/blog-4/template/view.php:4
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/default.php on line 22
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/widgetkit-for-elementor/admin/admin-init.php:194
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/widgetkit-for-elementor/elements/team-2/template/view.php:4
    • > PHP Notice
      Undefined variable: testimonial in wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-2.php on line 6
    • > PHP Notice
      Undefined variable: testimonials in wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-5.php on line 15
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-4.php on line 44
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/widgetkit-for-elementor/elements/testimonial/template/layout/layout-5.php on line 55

User-side errors 0% from 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
These are user-side errors you should fix
    • > GET request to /wp-admin/admin.php?page=widgetkit-gopro
    • > Console-api (warning) in unknown
    https://static.hotjar.com/c/hotjar-324615.js?sv=7 2:6897 "Hotjar not launching due to suspicious userAgent:" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/118.0.5993.70 Safari/537.36"
    • > GET request to /wp-admin/admin.php?page=widgetkit-settings
    • > Network (severe)
    https://d3hb14vkzrxvla.cloudfront.net/v1/940f4d8a-7f6f-432c-ae31-0ed5819fdbe4 - Failed to load resource: the server responded with a status of 404 ()
    • > GET request to /wp-admin/admin.php?page=widgetkit-settings
    • > Console-api (severe) in unknown
    https://beacon-v2.helpscout.net/static/js/vendor.69ce94b1.js 0:18049 "Unable to Load Beacon"
    • > GET request to /wp-admin/admin.php?page=widgetkit-settings
    • > Console-api (severe) in unknown
    https://beacon-v2.helpscout.net/static/js/vendor.69ce94b1.js 0:18049 Error: Request failed with status code 404at e.exports (https://beacon-v2.helpscout.net/static/js/vendor.69ce94b1.js:1:5520)at e.exports (https://beacon-v2.helpscout.net/static/js/vendor.69ce94b1.js:1:7969)at XMLHttpRequest.y (https://beacon-v2.helpscout.net/static/js/vendor.69ce94b1.js:1:771)

Optimizations

Plugin configuration 90% 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
Attributes that need to be fixed:
  • Screenshots: These screenshots require images: #6 (Title Animation), #7 (Countdown)
  • Tags: Too many tags (22 tag instead of maximum 10); only the first 5 tags are used in your directory listing
You can take inspiration from this readme.txt

widgetkit-for-elementor/widgetkit-for-elementor.php 92% from 13 tests

The main PHP script in "All-in-One Addons for Elementor - WidgetKit" version 2.4.8 is automatically included on every request by WordPress
You should first fix the following items:
  • Requires at least: Required version does not match the one declared in readme.txt ("5.0" instead of "5.0.0")

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
No dangerous file extensions were detected76,572 lines of code in 299 files:
LanguageFilesBlank linesComment linesLines of code
PHP1766,0224,22636,570
CSS204,14635620,592
JavaScript411,2951,2248,125
Sass46760517,609
SVG8043,052
Markdown41820412
JSON100159
LESS21510342
Bourne Shell14011

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
No complexity issues detected
Cyclomatic complexity
Average complexity per logical line of code0.26
Average class complexity7.92
▷ Minimum class complexity1.00
▷ Maximum class complexity186.00
Average method complexity1.94
▷ Minimum method complexity1.00
▷ Maximum method complexity93.00
Code structure
Namespaces5
Interfaces0
Traits0
Classes116
▷ Abstract classes00.00%
▷ Concrete classes116100.00%
▷ Final classes00.00%
Methods859
▷ Static methods475.47%
▷ Public methods54863.80%
▷ Protected methods14016.30%
▷ Private methods17119.91%
Functions12
▷ Named functions1083.33%
▷ Anonymous functions216.67%
Constants6
▷ Global constants466.67%
▷ Class constants233.33%
▷ Public constants2100.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
16 PNG files occupy 0.68MB with 0.25MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/assets/images/learndash-logo.png12.33KB13.45KB0.00%
admin/assets/images/menu-icon.png1.41KB0.91KB▼ 35.58%
admin/assets/images/thumb.png3.23KB2.31KB▼ 28.63%
admin/assets/images/td-banner.png143.67KB54.68KB▼ 61.94%
admin/assets/images/tutor-logo.png5.71KB2.62KB▼ 54.08%