78% visualcomposer

Code Review | Visual Composer Website Builder, Landing Page Builder, Custom Theme Builder, Maintenance Mode & Coming Soon Pages

WordPress plugin Visual Composer Website Builder, Landing Page Builder, Custom Theme Builder, Maintenance Mode & Coming Soon Pages scored78%from 54 tests.

About plugin

  • Plugin page: visualcomposer
  • Plugin version: 45.6.0
  • PHP compatiblity: 7.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.5-6.3.2
  • WordPress version: 6.3.1
  • First release: Sep 26, 2019
  • Latest release: Oct 19, 2023
  • Number of updates: 1
  • Update frequency: every 365.0 days

Code review

54 tests

User reviews

212 reviews

Install metrics

70,000+ active /2,484,249 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲2.72MB] [CPU: ▲28.51ms] Passed 4 tests

An overview of server-side resources used by Visual Composer Website Builder, Landing Page Builder, Custom Theme Builder, Maintenance Mode & Coming Soon Pages
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /6.10 ▲2.6467.32 ▲31.19
Dashboard /wp-admin7.19 ▲3.8985.54 ▲39.06
Posts /wp-admin/edit.php6.18 ▲2.8376.74 ▲22.23
Add New Post /wp-admin/post-new.php8.61 ▲2.73124.10 ▲34.27
Media Library /wp-admin/upload.php5.92 ▲2.6959.78 ▲26.33
Font Manager /wp-admin/admin.php?page=vcv-font-manager8.2173.71
Role Manager /wp-admin/admin.php?page=vcv-role-manager8.2170.21
System Status /wp-admin/admin.php?page=vcv-system-status8.2185.04
Headers /wp-admin/admin.php?page=vcv_headers8.2183.90
Popup Builder /wp-admin/admin.php?page=vcv-custom-site-popups8.2177.02
License /wp-admin/admin.php?page=vcv-license8.2185.74
Theme Builder /wp-admin/admin.php?page=vcv-headers-footers8.2170.32
CSS & JavaScript /wp-admin/admin.php?page=vcv-global-css-js8.2174.02
★ Activate Premium /wp-admin/admin.php?page=vcv-activate-license8.2170.33
Global Templates /wp-admin/admin.php?page=vcv_templates8.2171.59

Server storage [IO: ▲18.96MB] [DB: ▲1.06MB] Passed 3 tests

Filesystem and database footprint
This plugin was installed successfully
Filesystem: 788 new files
Database: no new tables, 36 new options
New WordPress options
theysaidso_admin_options
vcv-settings-gutenberg-editor-enabled
vcv-system:migration:CustomTemplatesTypeMigration38
widget_theysaidso_widget
vcv-system:migration:settingsMigration220
vcv-system:migration:updateGlobalElements115Migration
vcv-system:migration:licenseMigrationV24
vcv-vcv_templates-capabilities-set
vcv-plugin-activation
vcv-system:migration:freeMigrationV34
...

Browser metrics Passed 4 tests

Visual Composer Website Builder, Landing Page Builder, Custom Theme Builder, Maintenance Mode & Coming Soon Pages: an overview of browser usage
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,116 ▲33014.29 ▼0.311.60 ▼0.2428.55 ▼17.08
Dashboard /wp-admin2,490 ▲3135.70 ▲0.0480.62 ▼7.2172.85 ▲28.98
Posts /wp-admin/edit.php2,261 ▲1644.59 ▲2.6161.39 ▲26.9643.18 ▲1.78
Add New Post /wp-admin/post-new.php1,690 ▲16423.60 ▲0.03721.93 ▲30.1948.43 ▼22.26
Media Library /wp-admin/upload.php1,521 ▲1214.11 ▼0.0998.11 ▼10.3669.70 ▲20.88
Font Manager /wp-admin/admin.php?page=vcv-font-manager1,22511.68188.00104.04
Role Manager /wp-admin/admin.php?page=vcv-role-manager1,81811.69194.76104.65
System Status /wp-admin/admin.php?page=vcv-system-status2,06411.87245.4491.27
Headers /wp-admin/admin.php?page=vcv_headers1,36611.68174.2769.74
Popup Builder /wp-admin/admin.php?page=vcv-custom-site-popups1,26111.68227.2963.33
License /wp-admin/admin.php?page=vcv-license1,99411.69200.1978.33
Theme Builder /wp-admin/admin.php?page=vcv-headers-footers1,36611.67179.5865.87
CSS & JavaScript /wp-admin/admin.php?page=vcv-global-css-js1,49613.54243.01149.90
★ Activate Premium /wp-admin/admin.php?page=vcv-activate-license1,26815.11281.27114.61
Global Templates /wp-admin/admin.php?page=vcv_templates1,22511.68173.1360.58

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
You still need to fix the following
  • Zombie WordPress options were found after uninstall: 36 options
    • vcv-system:migration:mergeArchivesLayoutsMigrationv43
    • vcv-hubElements
    • vcv-system:migration:defaultElementsMigration36
    • db_upgraded
    • vcv-settings-gutenberg-editor-enabled
    • vcv-system:migration:licenseMigrationV24
    • vcv-vcv_tutorials-capability-migration-45
    • widget_recent-posts
    • vcv-hubAction:updatePosts
    • vcv-system:migration:freeMigrationV34
    • ...

Smoke tests 50% 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 50% from 2 tests

🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please fix the following items
  • 5× GET requests to PHP files trigger server-side errors or Error 500 responses:
    • > PHP Fatal error
      Uncaught Error: Class 'VisualComposer\\Framework\\Container' not found in wp-content/plugins/visualcomposer/visualcomposer/Modules/Editors/Frontend/MenuController.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'VcvEnv' not found in wp-content/plugins/visualcomposer/env.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function wp_print_footer_scripts() in wp-content/plugins/visualcomposer/visualcomposer/resources/views/editor/frontend/footer.php:9
    • > PHP Fatal error
      Uncaught Error: Call to a member function set() on null in wp-content/plugins/visualcomposer/visualcomposer/resources/views/editor/frontend/header.php:13
    • > PHP Notice
      Undefined variable: globalsHelper in wp-content/plugins/visualcomposer/visualcomposer/resources/views/editor/frontend/header.php on line 13

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
  • 10 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=vcv_templates
    • > Console-api (warning) in index.php?vcv-script=vendor&ver=45.6.0+1:2897490
    color-blend: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration
  • 10 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=vcv_templates
    • > Console-api (warning) in index.php?vcv-script=vendor&ver=45.6.0+1:2897490
    postcss-functions: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration
  • 10 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=vcv_templates
    • > Console-api (warning) in index.php?vcv-script=vendor&ver=45.6.0+1:2897490
    postcss-math: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 94% 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
These attributes need to be fixed:
  • Tags: Please delete some tags, you are using 23 tag instead of maximum 10
The official readme.txt is a good inspiration

visualcomposer/plugin-wordpress.php 92% from 13 tests

The entry point to "Visual Composer Website Builder, Landing Page Builder, Custom Theme Builder, Maintenance Mode & Coming Soon Pages" version 45.6.0 is a PHP file that has certain tags in its header comment area
Please make the necessary changes and fix the following:
  • Main file name: Name the main plugin file the same as the plugin slug ("visualcomposer.php" instead of "plugin-wordpress.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 detected41,329 lines of code in 558 files:
LanguageFilesBlank linesComment linesLines of code
PHP3515,3628,03934,903
JavaScript882,9693,2094,982
SVG48334922
JSON3710385
XML50092
CSS2911545

PHP code Passed 2 tests

This is a short overview of cyclomatic complexity and code structure for this plugin
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.38
Average class complexity10.89
▷ Minimum class complexity1.00
▷ Maximum class complexity58.00
Average method complexity2.97
▷ Minimum method complexity1.00
▷ Maximum method complexity19.00
Code structure
Namespaces87
Interfaces6
Traits13
Classes273
▷ Abstract classes10.37%
▷ Concrete classes27299.63%
▷ Final classes00.00%
Methods1,479
▷ Static methods251.69%
▷ Public methods77052.06%
▷ Protected methods70447.60%
▷ Private methods50.34%
Functions127
▷ Named functions2015.75%
▷ Anonymous functions10784.25%
Constants22
▷ Global constants22100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
87 compressed PNG files occupy 0.45MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
elements/singleImage/singleImage/public/prev.png1.33KB1.59KB0.00%
elements/googleFontsHeading/googleFontsHeading/public/google-fonts-thumbnail.png2.15KB2.18KB0.00%
elements/wpWidgetsDefault/wpWidgetsDefault/public/wordpress-widgets-thumbnail.png3.17KB3.23KB0.00%
elements/shortcode/shortcode/public/shortcode-preview.png0.31KB0.31KB0.00%
elements/imageMasonryGallery/imageMasonryGallery/public/prev.png1.33KB1.59KB0.00%