10% wp-ticket-ultra

Code Review | WP Ticket Ultra Help Desk & Support Plugin

WordPress plugin WP Ticket Ultra Help Desk & Support Plugin scored10%from 54 tests.

About plugin

  • Plugin page: wp-ticket-ultra
  • Plugin version: 1.0.5
  • PHP version: 7.4.16
  • WordPress compatibility: 3.0.1-5.8
  • WordPress version: 6.3.1
  • First release: Dec 14, 2017
  • Latest release: Oct 5, 2021
  • Number of updates: 12
  • Update frequency: every 116.1 days
  • Top authors: UsersUltra (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /906 total downloads

Benchmarks

Plugin footprint 23% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
You still need to fix the following installer errors
  • The plugin did not install without errors
    • > Deprecated in wp-content/plugins/wp-ticket-ultra/functions/functions.php+205
    Function get_magic_quotes_gpc() is deprecated

Server metrics [RAM: ▼1.87MB] [CPU: ▼52.30ms] Passed 4 tests

Analyzing server-side resources used by WP Ticket Ultra Help Desk & Support Plugin
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /2.11 ▼1.354.42 ▼38.51
Dashboard /wp-admin2.13 ▼1.175.76 ▼45.42
Posts /wp-admin/edit.php2.13 ▼1.228.87 ▼38.53
Add New Post /wp-admin/post-new.php2.13 ▼3.756.66 ▼86.73
Media Library /wp-admin/upload.php2.13 ▼1.107.22 ▼26.64
More Functionality! /wp-admin/admin.php?page=wpticketultra&tab=pro2.136.26
Staff & Client Account /wp-admin/admin.php?page=wptu-profiles2.137.07
WP Ticket Ultra /wp-admin/admin.php?page=wpticketultra2.137.29

Server storage [IO: ▲3.90MB] [DB: ▲0.02MB] Passed 3 tests

A short overview of filesystem and database impact
This plugin was installed successfully
Filesystem: 254 new files
Database: 13 new tables, 11 new options
New tables
wp_wptu_ticket_types
wp_wptu_tickets
wp_wptu_departments
wp_wptu_tickets_meta
wp_wptu_statuses
wp_wptu_priorities
wp_wptu_ticket_replies
wp_wptu_ticket_reply_attachments
wp_wptu_tickets_permissions
wp_wptu_sites
...
New WordPress options
theysaidso_admin_options
wptu_profile_fields
wptu_priority_options
wptu_pro_active
wptu_ini_setup
widget_theysaidso_widget
can_compress_scripts
db_upgraded
widget_recent-comments
wptu_options
...

Browser metrics Passed 4 tests

A check of browser resources used by WP Ticket Ultra Help Desk & Support Plugin
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,126 ▲39115.78 ▲1.4117.26 ▲14.1640.22 ▼28.98
Dashboard /wp-admin2,308 ▲1176.42 ▲0.53129.93 ▲28.6552.31 ▲9.97
Posts /wp-admin/edit.php2,210 ▲1183.17 ▲1.1852.62 ▲9.9034.94 ▼4.02
Add New Post /wp-admin/post-new.php1,774 ▲24123.60 ▲0.43700.00 ▲56.88108.48 ▲50.98
Media Library /wp-admin/upload.php1,507 ▲1165.23 ▲1.05103.12 ▲3.4741.65 ▼2.50
More Functionality! /wp-admin/admin.php?page=wpticketultra&tab=pro1,0762.9444.5985.90
Staff & Client Account /wp-admin/admin.php?page=wptu-profiles1,1112.9739.5868.51
WP Ticket Ultra /wp-admin/admin.php?page=wpticketultra1,0653.0141.0843.99

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
You still need to fix the following
  • Uninstall procedure had uncaught errors
    • > Deprecated in wp-content/plugins/wp-ticket-ultra/functions/functions.php+205
    Function get_magic_quotes_gpc() is deprecated
  • The uninstall procedure failed, leaving 13 tables in the database
    • wp_wptu_statuses_workflow
    • wp_wptu_tickets
    • wp_wptu_tickets_meta
    • wp_wptu_department_staff
    • wp_wptu_tickets_permissions
    • wp_wptu_sites
    • wp_wptu_departments
    • wp_wptu_ticket_types
    • wp_wptu_ticket_replies
    • wp_wptu_statuses
    • ...
  • Zombie WordPress options detected upon uninstall: 11 options
    • wptu_pro_active
    • wptu_options
    • db_upgraded
    • theysaidso_admin_options
    • widget_recent-posts
    • widget_theysaidso_widget
    • can_compress_scripts
    • wptu_profile_fields
    • wptu_ini_setup
    • widget_recent-comments
    • ...

Smoke tests 50% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Smoke test failed, please fix the following
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=wpticketultra
    • > Deprecated in wp-content/plugins/wp-ticket-ultra/functions/functions.php+205
    Function get_magic_quotes_gpc() is deprecated
  • 6 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=wpticketultra
    • > Notice in wp-content/plugins/wp-ticket-ultra/classes/wptu.admin.php+311
    Undefined variable: pending_count
  • 16 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=wpticketultra
    • > Notice in wp-content/plugins/wp-ticket-ultra/classes/wptu.admin.php+374
    Undefined variable: custom_badge

SRP 50% 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
The following issues need your attention
  • 28× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Notice
      Trying to get property 'prefix' of non-object in wp-content/plugins/wp-ticket-ultra/classes/wptu.status.php on line 46
    • > PHP Notice
      Trying to get property 'prefix' of non-object in wp-content/plugins/wp-ticket-ultra/classes/wptu.site.php on line 43
    • > PHP Fatal error
      Uncaught Error: Call to a member function query() on null in wp-content/plugins/wp-ticket-ultra/classes/wptu.department.php:64
    • > PHP Fatal error
      Uncaught Error: Call to a member function query() on null in wp-content/plugins/wp-ticket-ultra/classes/wptu.type.php:33
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/wp-ticket-ultra/classes/wptu.cropimage.php:123
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-ticket-ultra/classes/wptu.adminshortcodes.php:9
    • > PHP Fatal error
      Uncaught Error: Class 'WPTicketUltraCommon' not found in wp-content/plugins/wp-ticket-ultra/classes/wptu.admin.php:2
    • > PHP Notice
      Trying to get property 'prefix' of non-object in wp-content/plugins/wp-ticket-ultra/classes/wptu.type.php on line 26
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-ticket-ultra/classes/wptu.shorcodes.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'WPTicketUltraCommon' not found in wp-content/plugins/wp-ticket-ultra/classes/wptu.messaging.php:2

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 90% from 29 tests

readme.txt 88% from 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
These attributes need your attention:
  • Tags: There are too many tags (16 tag instead of maximum 10)
  • Screenshots: These screenshots require images: #1 (TICKETS DASHBOARD), #2 (CHANGE OWNER), #3 (CANNED RESPONSES), #4 (REPLIES AND ATTACHMENTS), #5 (PRIVATE CREDENTIALS)
The official readme.txt might help

wp-ticket-ultra/index.php 92% from 13 tests

The main PHP file in "WP Ticket Ultra Help Desk & Support Plugin" ver. 1.0.5 adds more information about the plugin and also serves as the entry point for this plugin
Please take the time to fix the following:
  • Main file name: Name the main plugin file the same as the plugin slug ("wp-ticket-ultra.php" instead of "index.php")

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
No dangerous file extensions were detected43,819 lines of code in 146 files:
LanguageFilesBlank linesComment linesLines of code
PHP4110,0881,14515,573
JavaScript432,9561,2259,443
CSS122,3842828,465
SVG3003,158
Sass2350482,649
LESS2350642,635
PO File18131,0651,896

PHP code Passed 2 tests

A short review of cyclomatic complexity and code structure
Everything seems fine, there were no complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.25
Average class complexity76.33
▷ Minimum class complexity1.00
▷ Maximum class complexity245.00
Average method complexity4.01
▷ Minimum method complexity1.00
▷ Maximum method complexity70.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes18
▷ Abstract classes00.00%
▷ Concrete classes18100.00%
▷ Final classes00.00%
Methods451
▷ Static methods10.22%
▷ Public methods451100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions18
▷ Named functions18100.00%
▷ Anonymous functions00.00%
Constants10
▷ Global constants10100.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
73 PNG files occupy 0.37MB with 0.09MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/img/ui-icons_222222_256x240.png6.76KB4.17KB▼ 38.24%
admin/images/icon_delete.png0.70KB0.72KB0.00%
templates/images/checks.png0.66KB0.65KB▼ 0.60%
admin/images/linkedin.png1.52KB0.51KB▼ 66.32%
admin/images/minimize.png0.67KB0.54KB▼ 19.68%