68% strong-testimonials

Code Review | Strong Testimonials

WordPress plugin Strong Testimonials scored68%from 54 tests.

About plugin

  • Plugin page: strong-testimonials
  • Plugin version: 3.1.11
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.2-6.4
  • WordPress version: 6.3.1
  • First release: May 21, 2014
  • Latest release: Nov 22, 2023
  • Number of updates: 871
  • Update frequency: every 4.0 days
  • Top authors: cdillon27 (89.44%)machothemes (4.36%)giucu91 (3.56%)raldea89 (2.87%)

Code review

54 tests

User reviews

553 reviews

Install metrics

100,000+ active /3,111,990 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Install script ran successfully

Server metrics [RAM: ▲0.59MB] [CPU: ▲2.43ms] Passed 4 tests

An overview of server-side resources used by Strong Testimonials
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /3.83 ▲0.3640.73 ▼0.31
Dashboard /wp-admin4.02 ▲0.6756.66 ▼5.80
Posts /wp-admin/edit.php4.07 ▲0.7157.42 ▲8.99
Add New Post /wp-admin/post-new.php6.56 ▲0.68103.56 ▲6.85
Media Library /wp-admin/upload.php3.87 ▲0.6542.84 ▲9.10
Views /wp-admin/edit.php?post_type=wpm-testimonial&page=testimonial-views3.8539.77
Settings /wp-admin/edit.php?post_type=wpm-testimonial&page=testimonial-settings3.9444.49
Add New /wp-admin/post-new.php?post_type=wpm-testimonial4.1261.03
Logs /wp-admin/edit.php?post_type=wpm-testimonial&page=strong-testimonials-logs3.8240.63
Shortcodes /wp-admin/edit.php?post_type=wpm-testimonial&page=testimonial-shortcodes3.8443.04
All Testimonials /wp-admin/edit.php?post_type=wpm-testimonial3.9448.27
Extensions /wp-admin/edit.php?post_type=wpm-testimonial&page=strong-testimonials-addons3.88114.14
Welcome to Strong Testimonials /wp-admin/index.php?page=wpmtst-getting-started3.9038.39
Form /wp-admin/edit.php?post_type=wpm-testimonial&page=testimonial-fields3.9545.25
Categories /wp-admin/edit-tags.php?taxonomy=wpm-testimonial-category&post_type=wpm-testimonial4.0246.69

Server storage [IO: ▲5.14MB] [DB: ▲0.06MB] Passed 3 tests

A short overview of filesystem and database impact
There were no storage issued detected upon installing this plugin
Filesystem: 597 new files
Database: 1 new table, 16 new options
New tables
wp_strong_views
New WordPress options
wpmtst_history
can_compress_scripts
wpmtst_options
wpmtst_compat_options
wpmtst_update_log
theysaidso_admin_options
wpmtst_custom_forms
wpmtst_form_options
widget_recent-posts
widget_theysaidso_widget
...

Browser metrics Passed 4 tests

Strong Testimonials: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,897 ▲13514.33 ▼0.271.65 ▼0.0436.37 ▼6.91
Dashboard /wp-admin2,299 ▲1185.67 ▼0.0594.75 ▼12.4140.72 ▼4.00
Posts /wp-admin/edit.php2,207 ▲1072.01 ▲0.0543.88 ▲4.6435.54 ▼1.58
Add New Post /wp-admin/post-new.php6,442 ▲4,91629.12 ▲5.59907.34 ▲226.6036.34 ▼20.31
Media Library /wp-admin/upload.php1,507 ▲1074.28 ▲0.13101.06 ▲3.2041.91 ▼0.57
Views /wp-admin/edit.php?post_type=wpm-testimonial&page=testimonial-views1,1182.1545.3236.72
Settings /wp-admin/edit.php?post_type=wpm-testimonial&page=testimonial-settings1,4622.1830.7257.37
Add New /wp-admin/post-new.php?post_type=wpm-testimonial3,1347.87210.42145.16
Logs /wp-admin/edit.php?post_type=wpm-testimonial&page=strong-testimonials-logs9162.0327.3824.74
Shortcodes /wp-admin/edit.php?post_type=wpm-testimonial&page=testimonial-shortcodes1,8472.0529.7645.04
All Testimonials /wp-admin/edit.php?post_type=wpm-testimonial1,1442.5240.4342.47
Extensions /wp-admin/edit.php?post_type=wpm-testimonial&page=strong-testimonials-addons1,1162.1730.6530.19
Welcome to Strong Testimonials /wp-admin/index.php?page=wpmtst-getting-started1,2072.0331.2334.96
Form /wp-admin/edit.php?post_type=wpm-testimonial&page=testimonial-fields2,7262.6257.8840.96
Categories /wp-admin/edit-tags.php?taxonomy=wpm-testimonial-category&post_type=wpm-testimonial1,3612.2035.9131.25

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
  • The plugin did not uninstall successfully, leaving 1 table in the database
    • wp_strong_views
  • This plugin did not uninstall successfully, leaving 16 options in the database
    • can_compress_scripts
    • wpmtst_plugin_version
    • widget_recent-comments
    • wpmtst_options
    • widget_theysaidso_widget
    • wpmtst_update_log
    • wpmtst_custom_forms
    • db_upgraded
    • strong-testimonials-rate-time
    • wpmtst_history
    • ...

Smoke tests 50% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
These server-side errors were triggered
    • > GET request to /wp-admin/edit.php?post_type=wpm-testimonial&page=strong-testimonials-logs
    • > Warning in wp-content/plugins/strong-testimonials/includes/logs/class-strong-testimonials-logger.php+119
    scandir(wp-content/uploads/st-logs/): failed to open dir: No such file or directory
    • > GET request to /wp-admin/edit.php?post_type=wpm-testimonial&page=strong-testimonials-logs
    • > Warning in wp-content/plugins/strong-testimonials/includes/logs/class-strong-testimonials-logger.php+119
    scandir(): (errno 2): No such file or directory

SRP 50% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following
  • 80× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/strong-testimonials/includes/functions-image.php:78
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/strong-testimonials/includes/widget2.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html__() in wp-content/plugins/strong-testimonials/admin/class-strong-testimonials-review.php:13
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/strong-testimonials/admin/settings/class-strong-testimonials-settings-form.php:29
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/strong-testimonials/includes/class-strong-gutemberg.php:12
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_option() in wp-content/plugins/strong-testimonials/admin/settings/partials/general.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/strong-testimonials/includes/l10n-wpml.php:34
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/strong-testimonials/admin/uninstall/class-strong-testimonials-uninstall.php:14
    • > PHP Fatal error
      Uncaught Error: Call to undefined function do_action() in wp-content/plugins/strong-testimonials/templates/unstyled/content.php:10
    • > PHP Warning
      require_once(ABSPATHwp-admin/includes/class-wp-list-table.php): failed to open stream: No such file or directory in wp-content/plugins/strong-testimonials/admin/class-strong-testimonials-onboarding.php on line 3

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
Everything seems fine on the user side

Optimizations

Plugin configuration Passed 29 tests

readme.txt Passed 16 tests

You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
4 plugin tags: testimonials, star ratings, testimonial form, testimonial slider

strong-testimonials/strong-testimonials.php Passed 13 tests

"Strong Testimonials" version 3.1.11's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
49 characters long description:
Collect and display your testimonials or reviews.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Good job! No executable or dangerous file extensions detected61,712 lines of code in 539 files:
LanguageFilesBlank linesComment linesLines of code
PHP1144,1657,41119,032
CSS861,16893214,580
PO File86,94813,79211,927
JavaScript1752,0883,39411,500
Sass94782234,118
SVG5108305
JSON900192
XML10051
Markdown1507

PHP code Passed 2 tests

Analyzing cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.36
Average class complexity26.89
▷ Minimum class complexity1.00
▷ Maximum class complexity149.00
Average method complexity3.24
▷ Minimum method complexity1.00
▷ Maximum method complexity51.00
Code structure
Namespaces2
Interfaces0
Traits0
Classes62
▷ Abstract classes00.00%
▷ Concrete classes62100.00%
▷ Final classes23.23%
Methods718
▷ Static methods18125.21%
▷ Public methods63688.58%
▷ Protected methods233.20%
▷ Private methods598.22%
Functions242
▷ Named functions24199.59%
▷ Anonymous functions10.41%
Constants41
▷ Global constants2253.66%
▷ Class constants1946.34%
▷ Public constants19100.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
28 PNG files occupy 1.26MB with 0.64MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/img/banner.png60.43KB21.93KB▼ 63.72%
admin/img/features/predesigned-templates.png4.88KB3.05KB▼ 37.60%
includes/submodules/banner/assets/img/welcome_header_laptop.png129.72KB56.16KB▼ 56.70%
admin/img/quotes.png0.63KB0.37KB▼ 40.63%
admin/img/features/user-role-management.png35.24KB14.82KB▼ 57.93%