72% wp-issues-crm

Code Review | WP Issues CRM

WordPress plugin WP Issues CRM scored 72% from 54 tests.

About plugin

  • Plugin page: wp-issues-crm
  • Plugin version: 4.5.5
  • PHP version: 7.4.16
  • WordPress version: 5.8.1
  • First release: Feb 20, 2015
  • Latest release: Aug 24, 2020
  • Number of updates: 832
  • Update frequency: every 2.4 days
  • Top authors: Will Brownsberger (100%)

Code review

54 tests

User reviews

4 reviews

Install metrics

10+ active / 9,337 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Install script ran successfully

Server metrics [RAM: ▲0.48MB] [CPU: ▼134.96ms] Passed 4 tests

Analyzing server-side resources used by WP Issues CRM
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /2.85 ▲0.0240.33 ▲2.84
Dashboard /wp-admin3.69 ▲0.6458.07 ▲10.46
Posts /wp-admin/edit.php3.74 ▲0.6456.08 ▲6.75
Add New Post /wp-admin/post-new.php6.05 ▲0.62103.97 ▼555.32
Media Library /wp-admin/upload.php3.63 ▲0.6344.23 ▲5.89
Fields /wp-admin/admin.php?page=wp-issues-crm-fields3.9246.91
Interfaces /wp-admin/admin.php?page=wp-issues-crm-externals3.5235.59
Configure /wp-admin/admin.php?page=wp-issues-crm-settings3.5236.00
Manage Storage /wp-admin/admin.php?page=wp-issues-crm-storage3.5238.80
WP Issues CRM /wp-admin/admin.php?page=wp-issues-crm-main3.5436.70
Options /wp-admin/admin.php?page=wp-issues-crm-options3.5238.37

Server storage [IO: ▲10.37MB] [DB: ▲0.13MB] Passed 3 tests

Filesystem and database footprint
The plugin installed successfully
Filesystem: 2,049 new files
Database: 25 new tables, 2 new options
New tables
wp_wic_external
wp_wic_email
wp_wic_upload
wp_wic_upload_temp
wp_wic_address_geocode_cache
wp_wic_data_dictionary
wp_wic_inbox_image_attachments_xref
wp_wic_outbox
wp_wic_option_group
wp_wic_search_log
...
New WordPress options
wp_issues_crm_db_version_completed
wp_issues_crm_db_version

Browser metrics Passed 4 tests

A check of browser resources used by WP Issues CRM
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,891 ▼68115.50 ▼0.1526.92 ▲18.1647.15 ▼12.28
Dashboard /wp-admin2,182 ▼7525.75 ▼0.44120.27 ▼32.96125.74 ▲6.20
Posts /wp-admin/edit.php2,100 ▼6392.45 ▼0.2753.57 ▼14.6498.56 ▲6.31
Add New Post /wp-admin/post-new.php1,962 ▲38124.19 ▲3.77386.42 ▼14.83129.46 ▲5.49
Media Library /wp-admin/upload.php1,454 ▼3534.99 ▼0.05114.79 ▼41.40148.29 ▲18.32
Fields /wp-admin/admin.php?page=wp-issues-crm-fields9002.5943.5889.03
Interfaces /wp-admin/admin.php?page=wp-issues-crm-externals9082.9842.3279.75
Configure /wp-admin/admin.php?page=wp-issues-crm-settings2,1502.7464.2681.69
Manage Storage /wp-admin/admin.php?page=wp-issues-crm-storage1,1642.6544.7585.42
WP Issues CRM /wp-admin/admin.php?page=wp-issues-crm-main1,8107.25121.25129.63
Options /wp-admin/admin.php?page=wp-issues-crm-options9972.6145.3584.14

Uninstaller [IO: ▲0.00MB] [DB: ▲0.07MB] 75% 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 uninstall procedure failed, leaving 19 tables in the database
    • wp_wic_inbox_image
    • wp_wic_inbox_incoming_filter
    • wp_wic_address_geocode_cache
    • wp_wic_inbox_image_attachments_xref
    • wp_wic_address
    • wp_wic_constituent
    • wp_wic_outbox
    • wp_wic_subject_issue_map
    • wp_wic_email
    • wp_wic_inbox_md5_issue_map
    • ...

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
These errors were triggered by the plugin
  • 6 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=wp-issues-crm-options
    • > User notice in wp-includes/functions.php+5663
    WP_Scripts::localize was called incorrectly. The $l10n parameter must be an array. To pass arbitrary data to scripts, use the wp_add_inline_script() function instead. Please see Debugging in WordPress for more information. (This message was added in version 5.7.0.)

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
The following issues need your attention
  • 1× PHP files output text when accessed directly:
    • > /wp-content/plugins/wp-issues-crm/php/phpmailer6/vendor/phpmailer/phpmailer/get_oauth_token.php
  • 1378× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'jamesiarmes\\PhpEws\\Type\\AttendeeConflictData' not found in wp-content/plugins/wp-issues-crm/php/activesync/vendor/php-ews/php-ews/src/Type/GroupAttendeeConflictData.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'Monolog\\TestCase' not found in wp-content/plugins/wp-issues-crm/php/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/wp-issues-crm/php/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php:21
    • > PHP Fatal error
      Uncaught Error: Class 'jamesiarmes\\PhpEws\\ArrayType' not found in wp-content/plugins/wp-issues-crm/php/activesync/vendor/php-ews/php-ews/src/ArrayType/ArrayOfPhoneNumberAttributedValuesType.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'WIC_List_Option_Group' not found in wp-content/plugins/wp-issues-crm/php/list/class-wic-list-data-dictionary.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'jamesiarmes\\PhpEws\\Type' not found in wp-content/plugins/wp-issues-crm/php/activesync/vendor/php-ews/php-ews/src/Type/MembersListType.php:15
    • > PHP Fatal error
      Uncaught Error: Class 'jamesiarmes\\PhpEws\\Type' not found in wp-content/plugins/wp-issues-crm/php/activesync/vendor/php-ews/php-ews/src/Type/ConversationShape.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'Google_Service_Resource' not found in wp-content/plugins/wp-issues-crm/php/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/Users.php:26
    • > PHP Fatal error
      Uncaught Error: Class 'Monolog\\TestCase' not found in wp-content/plugins/wp-issues-crm/php/vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php:17
    • > PHP Fatal error
      Uncaught Error: Class 'jamesiarmes\\PhpEws\\Response\\ResponseMessageType' not found in wp-content/plugins/wp-issues-crm/php/activesync/vendor/php-ews/php-ews/src/Response/GetDiscoverySearchConfigurationResponseMessageType.php:13

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser issues were found

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 88% from 16 tests

Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
Please fix the following attributes:
  • Requires at least: Invalid plugin version format
  • Donate link: Please fix this invalid url: ""
You can look at the official readme.txt

wp-issues-crm/wp-issues-crm.php 92% from 13 tests

Analyzing the main PHP file in "WP Issues CRM" version 4.5.5
The following require your attention:
  • Description: Please don't use more than 140 characters for the plugin description (currently 170 characters long)

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
No dangerous file extensions were detected134,841 lines of code in 1,765 files:
LanguageFilesBlank linesComment linesLines of code
PHP1,54221,31776,15097,385
XSD21,45156012,291
JavaScript681,1842,0647,332
Markdown522,40806,590
CSS267602343,751
XML82721123,380
JSON31102,443
SQL23001,326
SVG200195
YAML7180107
Mustache12027
make1409
Bourne Shell2305

PHP code 50% from 2 tests

An short overview of logical lines of code, cyclomatic complexity, and other code metrics
Please fix the following
  • Cyclomatic complexity of methods should be reduced to less than 100 (currently 103)
Cyclomatic complexity
Average complexity per logical line of code0.31
Average class complexity8.51
▷ Minimum class complexity1.00
▷ Maximum class complexity627.00
Average method complexity3.00
▷ Minimum method complexity1.00
▷ Maximum method complexity103.00
Code structure
Namespaces57
Interfaces59
Traits16
Classes1,533
▷ Abstract classes523.39%
▷ Concrete classes1,48196.61%
▷ Final classes251.69%
Methods6,306
▷ Static methods79412.59%
▷ Public methods5,01479.51%
▷ Protected methods67810.75%
▷ Private methods6149.74%
Functions556
▷ Named functions18933.99%
▷ Anonymous functions36766.01%
Constants2,029
▷ Global constants241.18%
▷ Class constants2,00598.82%
▷ Public constants2,005100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
15 PNG files occupy 0.05MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
css/jquery-ui-1.11.4.custom/images/ui-icons_ffffff_256x240.png6.15KB4.17KB▼ 32.13%
php/activesync/vendor/php-ews/php-ews/examples/assets/exchange.png6.31KB3.11KB▼ 50.72%
css/jquery-ui-1.11.4.custom/images/ui-bg_highlight-soft_50_dddddd_1x100.png0.27KB0.14KB▼ 48.21%
js/tinymce/js/tinymce/plugins/help/img/logo.png12.90KB7.62KB▼ 40.95%
css/jquery-ui-1.11.4.custom/images/ui-icons_454545_256x240.png6.83KB4.17KB▼ 38.86%