61% awesome-support

Code Review | Awesome Support - WordPress HelpDesk & Support Plugin

WordPress plugin Awesome Support - WordPress HelpDesk & Support Plugin scored61%from 54 tests.

About plugin

  • Plugin page: awesome-support
  • Plugin version: 6.1.6
  • PHP version: 7.4.16
  • WordPress compatibility: 4.0-6.4
  • WordPress version: 6.3.1
  • First release: Dec 19, 2014
  • Latest release: Nov 14, 2023
  • Number of updates: 253
  • Update frequency: every 12.9 days
  • Top authors: awesomesupport (37.15%)julien731 (21.74%)yeisonbp (20.95%)themeavenue (17%)elghazal (4.35%)

Code review

54 tests

User reviews

185 reviews

Install metrics

10,000+ active /411,068 total downloads

Benchmarks

Plugin footprint 63% from 16 tests

Installer Passed 1 test

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

Server metrics [RAM: ▲7.82MB] [CPU: ▲48.33ms] 25% from 4 tests

A check of server-side resources used by Awesome Support - WordPress HelpDesk & Support Plugin
Please have a look at the following items
  • RAM: Total memory usage must be kept under 10MB (currently 11.60MB on /wp-admin/edit-tags.php?taxonomy=ticket-tag&post_type=ticket)
  • CPU: Try to keep total CPU usage under 500.00ms (currently 1,567.75ms on /wp-admin/edit.php?post_type=ticket&page=wpas-addons)
  • Extra RAM: Extra memory usage should kept under 5MB (currently 7.82MB on /wp-admin/edit-tags.php?taxonomy=ticket-tag&post_type=ticket)
PageMemory (MB)CPU Time (ms)
Home /9.66 ▲6.1977.35 ▲35.49
Dashboard /wp-admin11.68 ▲8.37102.97 ▲45.89
Posts /wp-admin/edit.php11.78 ▲8.4299.42 ▲48.11
Add New Post /wp-admin/post-new.php14.23 ▲8.34149.96 ▲63.83
Media Library /wp-admin/upload.php11.60 ▲8.36101.91 ▲66.56
Settings /wp-admin/edit.php?post_type=ticket&page=wpas-settings11.9196.83
Channels /wp-admin/edit-tags.php?taxonomy=ticket_channel&post_type=ticket11.63111.81
Get a Free Addon! /wp-admin/edit.php?post_type=ticket&page=wpas-optin11.7992.13
Tools /wp-admin/edit.php?post_type=ticket&page=wpas-status11.9395.18
Addons /wp-admin/edit.php?post_type=ticket&page=wpas-addons14.431,567.75
/wp-admin/index.php?page=as-setup11.4873.26
All Tickets /wp-admin/edit.php?post_type=ticket11.98107.60
Help & Support /wp-admin/edit.php?post_type=ticket&page=wpas-help-and-support11.8090.95
About /wp-admin/edit.php?post_type=ticket&page=wpas-about11.8490.61
Tags /wp-admin/edit-tags.php?taxonomy=ticket-tag&post_type=ticket11.6089.56

Server storage [IO: ▲29.01MB] [DB: ▲0.33MB] 67% from 3 tests

Filesystem and database footprint
Please fix the following
  • The filesystem usage should be lower than 25MB (currently using 29.01MB)
Filesystem: 1,161 new files
Database: 1 new table, 13 new options
New tables
wp_sm_sessions
New WordPress options
widget_recent-comments
ticket_channel_children
wpas_version
wpas_options
wisdom_notification_times
wpas_setup_email_templates
wpas_db_version
widget_recent-posts
wpas_default_channels_added
widget_theysaidso_widget
...

Browser metrics Passed 4 tests

An overview of browser requirements for Awesome Support - WordPress HelpDesk & Support Plugin
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,089 ▲32713.79 ▼0.726.79 ▲5.1320.63 ▼21.43
Dashboard /wp-admin2,365 ▲1945.39 ▼0.24101.85 ▲7.2350.35 ▲10.45
Posts /wp-admin/edit.php2,272 ▲1722.67 ▲0.7241.10 ▲1.0342.15 ▲5.19
Add New Post /wp-admin/post-new.php1,631 ▲10521.94 ▼1.16762.09 ▲164.5735.23 ▼17.36
Media Library /wp-admin/upload.php1,571 ▲1714.70 ▲0.5295.66 ▼8.8349.56 ▲7.12
Settings /wp-admin/edit.php?post_type=ticket&page=wpas-settings2,6358.38185.86110.21
Channels /wp-admin/edit-tags.php?taxonomy=ticket_channel&post_type=ticket2,4542.5938.0548.03
Get a Free Addon! /wp-admin/edit.php?post_type=ticket&page=wpas-optin1,4315.4564.1965.95
Tools /wp-admin/edit.php?post_type=ticket&page=wpas-status2,7025.5072.2849.90
Addons /wp-admin/edit.php?post_type=ticket&page=wpas-addons3,1555.3663.3281.50
/wp-admin/index.php?page=as-setup2331.616.8121.92
All Tickets /wp-admin/edit.php?post_type=ticket2,2655.4890.4246.20
Help & Support /wp-admin/edit.php?post_type=ticket&page=wpas-help-and-support1,4195.4062.6148.68
About /wp-admin/edit.php?post_type=ticket&page=wpas-about3,3005.9877.1845.60
Tags /wp-admin/edit-tags.php?taxonomy=ticket-tag&post_type=ticket1,4202.5834.0951.25

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
Please fix the following items
  • The uninstall procedure failed, leaving 1 table in the database
    • wp_sm_sessions
  • Zombie WordPress options detected upon uninstall: 13 options
    • ticket_channel_children
    • wpas_version
    • wpas_db_version
    • wisdom_notification_times
    • db_upgraded
    • theysaidso_admin_options
    • wpas_setup_email_templates
    • can_compress_scripts
    • wpas_default_channels_added
    • widget_theysaidso_widget
    • ...

Smoke tests 25% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Everything seems fine, however this is by no means an exhaustive test

SRP 0% 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
The following issues need your attention
  • 3× PHP files perform the action of outputting non-empty strings when accessed directly:
    • > /wp-content/plugins/awesome-support/includes/admin/views/about-tab-change-log.php
    • > /wp-content/plugins/awesome-support/themes/default/email-notification.php
    • > /wp-content/plugins/awesome-support/includes/admin/tinymce/wpas_editor_email_template_tags/wpas_editor_email_template_tags.php
  • 108× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/awesome-support/includes/class-wpas-editor-ajax.php:26
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/awesome-support/vendor/ericmann/wp-session-manager/tests/CacheHandlerTest.php:29
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/awesome-support/includes/rest-api/includes/settings-api.php:2
    • > PHP Warning
      Use of undefined constant WPAS_PATH - assumed 'WPAS_PATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/awesome-support/includes/admin/metaboxes/message.php on line 11
    • > PHP Fatal error
      Uncaught Error: Call to undefined function current_user_can() in wp-content/plugins/awesome-support/includes/admin/views/status.php:4
    • > PHP Fatal error
      Uncaught Error: Call to undefined function wpas_get_template() in wp-content/plugins/awesome-support/themes/default/submission-pre-440.php:14
    • > PHP Fatal error
      Uncaught Error: Interface 'EAMann\\Sessionz\\Handler' not found in wp-content/plugins/awesome-support/vendor/ericmann/wp-session-manager/includes/SessionHandler.php:21
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/awesome-support/vendor/ericmann/sessionz/test/phpunit/Objects/MemoryItemTest.php:6
    • > PHP Fatal error
      Uncaught Error: Class 'WPAS_API\\API\\TicketBase' not found in wp-content/plugins/awesome-support/includes/rest-api/includes/API/TicketReplies.php:10
    • > PHP Warning
      require_once(ABSPATHwp-includes/class-wp-user.php): failed to open stream: No such file or directory in wp-content/plugins/awesome-support/includes/rest-api/includes/Auth/User.php on line 7

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
There are user-side issues you should fix
    • > GET request to /wp-admin/edit.php?post_type=ticket&page=wpas-about
    • > Network (severe)
    https://graph.facebook.com/v2.2/312003622332316/posts?access_token=1059973257368113|x_ZhJSNE-sF4cWPH-iggQFeRa70 - Failed to load resource: the server responded with a status of 400 ()

Optimizations

Plugin configuration 96% from 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
10 plugin tags: support, ticket system, help, support desk, helpdesk...

awesome-support/awesome-support.php 92% from 13 tests

The main PHP file in "Awesome Support - WordPress HelpDesk & Support Plugin" ver. 6.1.6 adds more information about the plugin and also serves as the entry point for this plugin
The following require your attention:
  • Description: Please don't use more than 140 characters for the plugin description (currently 148 characters long)

Code Analysis 97% from 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 detected446,918 lines of code in 934 files:
LanguageFilesBlank linesComment linesLines of code
CSS9026,8872,456207,142
PO File5249,88493,967137,814
JavaScript34411,1984,40943,767
PHP29011,67719,94242,415
Sass421,6495576,067
HTML4817703,692
LESS277191,1992,678
Markdown2188802,578
JSON800426
SVG402180
XML46288
YAML211042
make19426
Bourne Shell1203

PHP code 50% from 2 tests

This is a very shot review of cyclomatic complexity and code structure
Please tend to the following items
  • Method cyclomatic complexity has to be reduced to less than 100 (currently 104)
Cyclomatic complexity
Average complexity per logical line of code0.43
Average class complexity22.99
▷ Minimum class complexity1.00
▷ Maximum class complexity446.00
Average method complexity3.81
▷ Minimum method complexity1.00
▷ Maximum method complexity104.00
Code structure
Namespaces12
Interfaces1
Traits0
Classes185
▷ Abstract classes31.62%
▷ Concrete classes18298.38%
▷ Final classes105.49%
Methods1,485
▷ Static methods1439.63%
▷ Public methods1,14276.90%
▷ Protected methods29119.60%
▷ Private methods523.50%
Functions609
▷ Named functions56392.45%
▷ Anonymous functions467.55%
Constants62
▷ Global constants2540.32%
▷ Class constants3759.68%
▷ Public constants37100.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
40 PNG files occupy 0.53MB with 0.18MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/admin/images/AS-V400-WhatsNew-TimeTracking-01.png35.04KB13.97KB▼ 60.14%
assets/admin/images/icons/re-open-ticket.png0.34KB0.23KB▼ 31.59%
assets/admin/images/icons/edit_ticket.png0.34KB0.22KB▼ 34.94%
assets/admin/images/mark-as-read.png0.36KB0.26KB▼ 28.42%
assets/admin/images/about-cf.png9.05KB8.15KB▼ 9.95%