62% wp-roadmap

Code Review | WP Roadmap - Product Feedback Board

WordPress plugin WP Roadmap - Product Feedback Board scored62%from 54 tests.

About plugin

  • Plugin page: wp-roadmap
  • Plugin version: 1.0.9
  • PHP compatiblity: 7.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 3.0.1-6.3.2
  • WordPress version: 6.3.1
  • First release: Oct 15, 2020
  • Latest release: Oct 20, 2023
  • Number of updates: 18
  • Update frequency: every 61.1 days
  • Top authors: iqonicdesign (100%)

Code review

54 tests

User reviews

6 reviews

Install metrics

300+ active /6,612 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
Install script ran successfully

Server metrics [RAM: ▲0.19MB] [CPU: ▼6.00ms] Passed 4 tests

Analyzing server-side resources used by WP Roadmap - Product Feedback Board
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /3.69 ▲0.2238.10 ▼0.09
Dashboard /wp-admin3.53 ▲0.1847.56 ▼13.69
Posts /wp-admin/edit.php3.65 ▲0.2946.59 ▲3.09
Add New Post /wp-admin/post-new.php6.01 ▲0.1284.75 ▼13.08
Media Library /wp-admin/upload.php3.46 ▲0.2235.70 ▲2.87
Settings /wp-admin/admin.php?page=wp_roadmap_settings3.4537.23
Board /wp-admin/admin.php?page=wp_roadmap_feedback_dashboard3.4536.99

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

Analyzing filesystem and database footprints of this plugin
This plugin was installed successfully
Filesystem: 49 new files
Database: 3 new tables, 8 new options
New tables
wp_feedback_upvote
wp_feedback
wp_feedback_status
New WordPress options
theysaidso_admin_options
widget_rmpf_widget
db_upgraded
widget_recent-comments
widget_theysaidso_widget
can_compress_scripts
wp_feedback_roadmap_general_settings
widget_recent-posts

Browser metrics Passed 4 tests

This is an overview of browser requirements for WP Roadmap - Product Feedback Board
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,954 ▲19313.53 ▼0.828.13 ▲6.4925.80 ▼18.08
Dashboard /wp-admin2,233 ▲565.69 ▲0.0386.17 ▼12.1382.05 ▲39.79
Posts /wp-admin/edit.php2,141 ▲412.02 ▲0.0435.49 ▼0.7741.72 ▲8.44
Add New Post /wp-admin/post-new.php6,403 ▲4,86927.88 ▲9.73907.45 ▲282.0343.26 ▼28.83
Media Library /wp-admin/upload.php1,432 ▲354.16 ▼0.0599.13 ▼5.9789.09 ▲46.63
Settings /wp-admin/admin.php?page=wp_roadmap_settings1,3972.3132.8339.04
Board /wp-admin/admin.php?page=wp_roadmap_feedback_dashboard1,3132.1029.1841.95

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
Please fix the following items
  • This plugin does not fully uninstall, leaving 3 tables in the database
    • wp_feedback_upvote
    • wp_feedback_status
    • wp_feedback
  • Zombie WordPress options were found after uninstall: 8 options
    • db_upgraded
    • wp_feedback_roadmap_general_settings
    • widget_theysaidso_widget
    • widget_recent-comments
    • can_compress_scripts
    • theysaidso_admin_options
    • widget_recent-posts
    • widget_rmpf_widget

Smoke tests 25% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Good news, no errors were detected

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
Almost there! Just fix the following items
  • 2× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/wp-roadmap/public/partials/rmpf-public-display.php
    • > /wp-content/plugins/wp-roadmap/admin/partials/rmpf-admin-display.php
  • 15× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Notice
      Trying to get property 'prefix' of non-object in wp-content/plugins/wp-roadmap/includes/block-widget.php on line 5
    • > PHP Fatal error
      Uncaught Error: Call to a member function get_results() on null in wp-content/plugins/wp-roadmap/includes/block-widget.php:9
    • > PHP Warning
      Use of undefined constant RMPF_PATH - assumed 'RMPF_PATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-roadmap/admin/view/feedback-board.php on line 2
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/wp-roadmap/admin/view/settings.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/wp-roadmap/includes/class-rmpf-widget.php:5
    • > PHP Warning
      require_once(RMPF_PATHadmin/view/feedback-detail.php): failed to open stream: No such file or directory in wp-content/plugins/wp-roadmap/admin/view/feedback-board.php on line 2
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/wp-roadmap/admin/view/status-settings.php:7
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/wp-roadmap/admin/view/feedback-modal.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-roadmap/utils/rmpf_wiget_helper.php:28
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/wp-roadmap/admin/view/feedback-detail.php:6

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please take a look at the following user-side issues
    • > GET request to /wp-admin/admin.php?page=wp_roadmap_settings
    • > Rendering (warning) in unknown
    /wp-admin/admin.php?page=wp_roadmap_settings 204 The specified value "" does not conform to the required format. The format is "#rrggbb" where rr, gg, bb are two-digit hexadecimal numbers.

Optimizations

Plugin configuration 93% from 29 tests

readme.txt Passed 16 tests

Often overlooked, readme.txt is one of the most important files in your plugin
4 plugin tags: feedback, elementor, roadmap, kanban

wp-roadmap/wp-roadmap-product-feedback.php 85% from 13 tests

The principal PHP file in "WP Roadmap - Product Feedback Board" v. 1.0.9 is loaded by WordPress automatically on each request
The following require your attention:
  • Description: Please keep the plugin description shorter than 140 characters (currently 149 characters long)
  • Main file name: Please rename the main PHP file in this plugin to the plugin slug ("wp-roadmap.php" instead of "wp-roadmap-product-feedback.php")

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
Good job! No executable or dangerous file extensions detected3,842 lines of code in 43 files:
LanguageFilesBlank linesComment linesLines of code
PHP242805722,426
CSS613510600
JavaScript81449588
PO File15991137
SVG40191

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
There were no cyclomatic complexity issued detected
Cyclomatic complexity
Average complexity per logical line of code0.23
Average class complexity10.36
▷ Minimum class complexity1.00
▷ Maximum class complexity72.00
Average method complexity2.94
▷ Minimum method complexity1.00
▷ Maximum method complexity18.00
Code structure
Namespaces1
Interfaces0
Traits0
Classes11
▷ Abstract classes00.00%
▷ Concrete classes11100.00%
▷ Final classes00.00%
Methods54
▷ Static methods611.11%
▷ Public methods4787.04%
▷ Protected methods23.70%
▷ Private methods59.26%
Functions15
▷ Named functions1173.33%
▷ Anonymous functions426.67%
Constants5
▷ Global constants5100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

PNG files should be compressed to save space and minimize bandwidth usage
No PNG files were detected