68% crm-customer-relationship-management-by-vcita

Code Review | CRM and Lead Management by vcita

WordPress plugin CRM and Lead Management by vcita scored68%from 54 tests.

About plugin

  • Plugin page: crm-customer-rela...
  • Plugin version: 2.7.1
  • PHP version: 7.4.16
  • WordPress compatibility: 4.6-6.3.1
  • WordPress version: 6.3.1
  • First release: Nov 9, 2014
  • Latest release: Sep 12, 2023
  • Number of updates: 72
  • Update frequency: every 44.9 days
  • Top authors: vCita (98.61%)ehud.vcita (2.78%)

Code review

54 tests

User reviews

5 reviews

Install metrics

200+ active /40,055 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

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

Server metrics [RAM: ▲0.16MB] [CPU: ▼6.30ms] Passed 4 tests

Server-side resources used by CRM and Lead Management by vcita
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.61 ▲0.1428.71 ▼14.39
Dashboard /wp-admin3.47 ▲0.1749.64 ▼2.52
Posts /wp-admin/edit.php3.58 ▲0.2349.77 ▼2.99
Add New Post /wp-admin/post-new.php6.05 ▲0.1790.53 ▼5.31
Media Library /wp-admin/upload.php3.39 ▲0.1742.50 ▲5.11
/wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php3.3631.65

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

How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 25 new files
Database: no new tables, 8 new options
New WordPress options
theysaidso_admin_options
widget_recent-comments
can_compress_scripts
db_upgraded
vcita_schedulerinit
widget_recent-posts
widget_theysaidso_widget
vcita_scheduler

Browser metrics Passed 4 tests

CRM and Lead Management by vcita: an overview of browser usage
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,897 ▲13613.42 ▼0.868.28 ▲6.7240.64 ▼2.96
Dashboard /wp-admin2,212 ▲325.56 ▼0.0184.86 ▼11.9364.51 ▲22.65
Posts /wp-admin/edit.php2,129 ▲291.96 ▼0.0339.59 ▲3.2038.59 ▲3.56
Add New Post /wp-admin/post-new.php1,553 ▲2723.11 ▼0.50712.11 ▲79.7050.08 ▼0.97
Media Library /wp-admin/upload.php1,429 ▲324.23 ▲0.0398.45 ▼11.8665.98 ▲20.17
/wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php1,6462.5327.6741.09

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
The following items require your attention
  • This plugin cannot be uninstalled
    • > User deprecated in wp-includes/functions.php+5453
    Function get_page_by_title is deprecated since version 6.2.0! Use WP_Query instead.
  • This plugin did not uninstall successfully, leaving 7 options in the database
    • vcita_schedulerinit
    • can_compress_scripts
    • db_upgraded
    • widget_theysaidso_widget
    • widget_recent-posts
    • theysaidso_admin_options
    • widget_recent-comments

Smoke tests 50% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
These server-side errors were triggered
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+3
    Undefined index: success
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+4
    Undefined index: uid
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+5
    Undefined index: first_name
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+6
    Undefined index: last_name
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+7
    Undefined index: title
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+8
    Undefined index: confirmation_token
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+9
    Undefined index: confirmed
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+10
    Undefined index: engage_delay
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+11
    Undefined index: implementation_key
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php+12
    Undefined index: email
  • 5 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > User deprecated in wp-includes/functions.php+5453
    Function get_page_by_title is deprecated since version 6.2.0! Use WP_Query instead.
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=crm-customer-relationship-management-by-vcita/vcita-callback.php
    • > Notice in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-utility-functions.php+427
    Trying to get property 'ID' of non-object

SRP 50% 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 take a closer look at the following
  • 6× PHP files trigger server errors when accessed directly:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-ajax-function.php:2
    • > PHP Fatal error
      Uncaught Error: Call to undefined function vcita_add_stylesheet() in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-livesite-widget-edit.php:2
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_option() in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-client-management.php:73
    • > PHP Fatal error
      Uncaught Error: Call to undefined function current_user_can() in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-callback.php:2
    • > PHP Fatal error
      Uncaught Error: Call to undefined function vcita_add_stylesheet() in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-contact-form-edit.php:2
    • > PHP Fatal error
      Uncaught Error: Call to undefined function vcita_add_stylesheet() in wp-content/plugins/crm-customer-relationship-management-by-vcita/vcita-contact-management.php:2

User-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser errors were detected

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need to be fixed:
  • Screenshots: These screenshots do not have images: #1 (**Easy setup** - Set up your CRM in minutes and start managing clients and communications in one place), #2 (**Capture more leads with vcita LiveSite** - LiveSite Widget will double the number of new business opportunities your website generate, and automatically stream them into your CRM.), #3 (**One Inbox for all communications** - All communications are available in one simple Inbox, where you can also view complete communication history and mark client for follow-ups,), #4 (**Client Records** - For every lead captured on your site a new "Client Card", including all information about the lead, is created. You can search for clients and leads, Mark the lead status and make follow-up actions: Schedule an appointment, send an invoice and more.), #5 (**Customize Client records** - Customize your client records, and Add unlimited number of custom fields on every client record on your CRM.)
You can take inspiration from this readme.txt

crm-customer-relationship-management-by-vcita/vcita-client-management.php 92% from 13 tests

Analyzing the main PHP file in "CRM and Lead Management by vcita" version 2.7.1
The following require your attention:
  • Main file name: Please rename the main PHP file in this plugin to the plugin slug ("crm-customer-relationship-management-by-vcita.php" instead of "vcita-client-management.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 detected1,967 lines of code in 11 files:
LanguageFilesBlank linesComment linesLines of code
PHP92372171,250
CSS11268716
SVG1001

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity
Average complexity per logical line of code0.41
Average class complexity0.00
▷ Minimum class complexity0.00
▷ Maximum class complexity0.00
Average method complexity0.00
▷ Minimum method complexity0.00
▷ Maximum method complexity0.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes0
▷ Abstract classes00.00%
▷ Concrete classes00.00%
▷ Final classes00.00%
Methods0
▷ Static methods00.00%
▷ Public methods00.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions51
▷ Named functions51100.00%
▷ Anonymous functions00.00%
Constants20
▷ Global constants20100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

It is recommended to compress PNG files in your plugin to minimize bandwidth usage
9 PNG files occupy 0.18MB with 0.09MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/v.png0.67KB0.43KB▼ 36.05%
images/small-logo.png3.89KB2.15KB▼ 44.88%
images/gear.png1.20KB0.47KB▼ 60.84%
images/rate-us.png3.74KB1.84KB▼ 50.73%
screenshot-4.png62.62KB26.41KB▼ 57.83%