78% bne-testimonials

Code Review | BNE Testimonials

WordPress plugin BNE Testimonials scored 78% from 54 tests.

About plugin

  • Plugin page: bne-testimonials
  • Plugin version: 2.0.8
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.0-6.0
  • WordPress version: 6.3.1
  • First release: Apr 25, 2014
  • Latest release: Jan 26, 2023
  • Number of updates: 95
  • Update frequency: every 33.7 days
  • Top authors: Bluenotes (100%)

Code review

54 tests

User reviews

28 reviews

Install metrics

3,000+ active / 80,153 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲0.75MB] [CPU: ▲3.80ms] Passed 4 tests

Server-side resources used by BNE Testimonials
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /3.75 ▲0.2939.78 ▼2.18
Dashboard /wp-admin4.20 ▲0.9059.49 ▲10.07
Posts /wp-admin/edit.php4.28 ▲0.9353.26 ▲1.76
Add New Post /wp-admin/post-new.php6.79 ▲0.9091.05 ▲8.77
Media Library /wp-admin/upload.php4.12 ▲0.8941.77 ▲6.85
Help /wp-admin/edit.php?post_type=bne_testimonials&page=bne-testimonial-help4.1035.57
Categories /wp-admin/edit-tags.php?taxonomy=bne-testimonials-taxonomy&post_type=bne_testimonials4.1243.33
Add New /wp-admin/post-new.php?post_type=bne_testimonials4.5760.88
All Testimonials /wp-admin/edit.php?post_type=bne_testimonials4.1739.04

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

Filesystem and database footprint
This plugin was installed successfully
Filesystem: 210 new files
Database: no new tables, 8 new options
New WordPress options
widget_recent-posts
widget_bne_testimonials_slider_widget
theysaidso_admin_options
db_upgraded
widget_theysaidso_widget
widget_bne_testimonials_list_widget
widget_recent-comments
can_compress_scripts

Browser metrics Passed 4 tests

Checking browser requirements for BNE Testimonials
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,845 ▲9913.24 ▼1.521.79 ▲0.0737.77 ▼5.66
Dashboard /wp-admin2,249 ▲645.94 ▲1.06106.01 ▲0.5343.98 ▲1.98
Posts /wp-admin/edit.php2,132 ▲432.05 ▲0.0541.72 ▲5.6036.08 ▲2.62
Add New Post /wp-admin/post-new.php1,547 ▲2723.37 ▲0.29647.02 ▼67.7548.39 ▼6.68
Media Library /wp-admin/upload.php1,431 ▲404.28 ▲0.0699.24 ▲2.0540.83 ▼1.50
Help /wp-admin/edit.php?post_type=bne_testimonials&page=bne-testimonial-help1,5862.1629.2247.08
Categories /wp-admin/edit-tags.php?taxonomy=bne-testimonials-taxonomy&post_type=bne_testimonials1,3102.2229.5529.83
Add New /wp-admin/post-new.php?post_type=bne_testimonials2,3897.97195.2768.01
All Testimonials /wp-admin/edit.php?post_type=bne_testimonials1,1202.0232.4129.07

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
You still need to fix the following
  • Zombie WordPress options detected upon uninstall: 8 options
    • widget_bne_testimonials_slider_widget
    • widget_recent-comments
    • widget_bne_testimonials_list_widget
    • widget_theysaidso_widget
    • theysaidso_admin_options
    • can_compress_scripts
    • widget_recent-posts
    • db_upgraded

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Good news, no errors were detected

SRP 0% from 2 tests

🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please fix the following items
  • 1× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/bne-testimonials/includes/lib/cmb2/apigen/hook-docs.php
  • 41× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Base' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_Counter_Base.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Text' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_File_Base.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Taxonomy_Base' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_Taxonomy_Radio.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Taxonomy_Multicheck' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_Taxonomy_Multicheck_Hierarchical.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Taxonomy_Base' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_Taxonomy_Multicheck.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Counter_Base' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_Textarea.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Textarea' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_Wysiwyg.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_File_Base' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_File_List.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Picker_Base' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_Text_Date.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Multi_Base' not found in wp-content/plugins/bne-testimonials/includes/lib/cmb2/includes/types/CMB2_Type_Radio.php:13

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 96% from 29 tests

readme.txt Passed 16 tests

The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
6 plugin tags: testimonial widget, reviews, flexslider, feedback, random testimonials...

bne-testimonials/bne-testimonials.php 92% from 13 tests

"BNE Testimonials" version 2.0.8's primary PHP file adds more information about the plugin and serves as the entry point for WordPress
The following require your attention:
  • Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 152 characters long)

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
There were no executable files found in this plugin24,931 lines of code in 139 files:
LanguageFilesBlank linesComment linesLines of code
PHP812,7707,0918,563
CSS184691,3335,514
JavaScript177711,0524,435
JSON2004,264
Sass17305291,407
Markdown42390748

PHP code Passed 2 tests

This plugin's cyclomatic complexity and code structure detailed below
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.44
Average class complexity19.15
▷ Minimum class complexity1.00
▷ Maximum class complexity186.00
Average method complexity3.37
▷ Minimum method complexity1.00
▷ Maximum method complexity31.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes74
▷ Abstract classes912.16%
▷ Concrete classes6587.84%
▷ Final classes00.00%
Methods569
▷ Static methods9216.17%
▷ Public methods47483.30%
▷ Protected methods9015.82%
▷ Private methods50.88%
Functions39
▷ Named functions39100.00%
▷ Anonymous functions00.00%
Constants14
▷ Global constants857.14%
▷ Class constants642.86%
▷ Public constants6100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

PNG files should be compressed to save space and minimize bandwidth usage
31 PNG files occupy 0.11MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/images/menu-icon.png14.68KB4.69KB▼ 68.08%
assets/images/flexslider-direction-nav.png0.55KB0.57KB0.00%
includes/lib/cmb2/images/ui-icons_454545_256x240.png4.27KB4.11KB▼ 3.78%
assets/images/slider-arrows.png1.10KB1.12KB0.00%
includes/lib/cmb2/apigen/theme-bootstrap/src/resources/inherit.png0.15KB0.10KB▼ 29.61%