78% fusion

Code Review | Fusion Page Builder

WordPress plugin Fusion Page Builder scored78%from 54 tests.

About plugin

  • Plugin page: fusion
  • Plugin version: 1.6.1
  • PHP version: 7.4.16
  • WordPress compatibility: 3.9-6.2.2
  • WordPress version: 6.3.1
  • First release: Jul 21, 2016
  • Latest release: Jul 11, 2023
  • Number of updates: 112
  • Update frequency: every 23.1 days
  • Top authors: agencydominion (100%)

Code review

54 tests

User reviews

15 reviews

Install metrics

5,000+ active /165,298 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully

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

A check of server-side resources used by Fusion Page Builder
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /3.61 ▲0.1635.74 ▼6.44
Dashboard /wp-admin3.44 ▲0.1446.50 ▼0.84
Posts /wp-admin/edit.php3.49 ▲0.1445.57 ▼0.16
Add New Post /wp-admin/post-new.php3.57 ▼2.3260.35 ▼36.16
Media Library /wp-admin/upload.php3.37 ▲0.1438.13 ▲2.30
Fusion /wp-admin/options-general.php?page=fsn_settings3.3129.63
Add New /wp-admin/post-new.php?post_type=template3.4942.21
All Templates /wp-admin/edit.php?post_type=template3.4137.26
Add New /wp-admin/post-new.php?post_type=component3.4949.39
All Components /wp-admin/edit.php?post_type=component3.4135.45

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

Filesystem and database footprint
No storage issues were detected
Filesystem: 112 new files
Database: no new tables, 8 new options
New WordPress options
widget_recent-comments
fsn_current_version
db_upgraded
theysaidso_admin_options
widget_theysaidso_widget
widget_recent-posts
can_compress_scripts
fsn_options

Browser metrics Passed 4 tests

A check of browser resources used by Fusion Page Builder
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,218 ▲48314.27 ▼0.1317.92 ▲15.6846.54 ▲1.53
Dashboard /wp-admin2,265 ▲775.03 ▼0.8899.82 ▼2.7336.93 ▼4.36
Posts /wp-admin/edit.php2,154 ▲832.30 ▲0.2553.30 ▲17.3745.52 ▲7.39
Add New Post /wp-admin/post-new.php3,323 ▲1,7858.34 ▼14.98236.16 ▼351.0896.45 ▲38.48
Media Library /wp-admin/upload.php1,450 ▲624.41 ▲0.1893.88 ▼1.9642.60 ▲0.47
Fusion /wp-admin/options-general.php?page=fsn_settings8961.8624.4326.83
Add New /wp-admin/post-new.php?post_type=template2,3578.10230.7061.62
All Templates /wp-admin/edit.php?post_type=template1,1122.2230.9028.48
Add New /wp-admin/post-new.php?post_type=component2,3598.10196.0159.17
All Components /wp-admin/edit.php?post_type=component1,1152.2231.0130.42

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
You still need to fix the following
  • The uninstall procedure has failed, leaving 8 options in the database
    • theysaidso_admin_options
    • db_upgraded
    • widget_theysaidso_widget
    • fsn_current_version
    • widget_recent-comments
    • widget_recent-posts
    • fsn_options
    • can_compress_scripts

Smoke tests 50% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
These server-side errors were triggered
    • > GET request to /wp-admin/options-general.php?page=fsn_settings
    • > User deprecated in wp-includes/functions.php+5463
    Function screen_icon is deprecated since version 3.8.0 with no alternative available.
    • > GET request to /wp-admin/options-general.php?page=fsn_settings
    • > User deprecated in wp-includes/functions.php+5463
    Function get_screen_icon is deprecated since version 3.8.0 with no alternative available.

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
Almost there! Just fix the following items
  • 12× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/fusion/includes/utilities/functions.php:18
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/fusion/includes/classes/query.php:19
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/fusion/includes/classes/components.php:19
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/fusion/includes/classes/custom-list.php:23
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/fusion/fusion-core.php:31
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/fusion/includes/extensions/code.php:18
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/fusion/includes/classes/templates.php:19
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_shortcode() in wp-content/plugins/fusion/includes/classes/tabs.php:19
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/fusion/includes/classes/settings.php:18
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/fusion/includes/classes/button.php:19

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine on the user side

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
Attributes that require attention:
  • Tags: Please reduce the number of tags, currently 13 tag instead of maximum 10
You can take inspiration from this readme.txt

fusion/fusion-core.php 92% from 13 tests

The main file in "Fusion Page Builder" v. 1.6.1 serves as a complement to information provided in readme.txt and as the entry point to the plugin
You should first fix the following items:
  • Main file name: Please rename the main PHP file in this plugin to the plugin slug ("fusion.php" instead of "fusion-core.php")

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
Good job! No executable or dangerous file extensions detected29,081 lines of code in 95 files:
LanguageFilesBlank linesComment linesLines of code
JavaScript603,0771,28613,491
CSS199922569,259
PHP156421,5033,961
SVG1032,370

PHP code 50% from 2 tests

This plugin's cyclomatic complexity and code structure detailed below
Please fix the following
  • Cyclomatic complexity of methods has to be reduced to less than 100 (currently 111)
Cyclomatic complexity
Average complexity per logical line of code0.50
Average class complexity67.55
▷ Minimum class complexity2.00
▷ Maximum class complexity330.00
Average method complexity8.01
▷ Minimum method complexity1.00
▷ Maximum method complexity111.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes11
▷ Abstract classes00.00%
▷ Concrete classes11100.00%
▷ Final classes00.00%
Methods103
▷ Static methods1211.65%
▷ Public methods10198.06%
▷ Protected methods21.94%
▷ Private methods00.00%
Functions21
▷ Named functions2095.24%
▷ Anonymous functions14.76%
Constants10
▷ Global constants110.00%
▷ Class constants990.00%
▷ Public constants9100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
11 PNG files occupy 0.03MB with 0.01MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
includes/css/jquery-ui-1.11.4.custom/images/ui-bg_glass_65_ffffff_1x400.png0.20KB0.09KB▼ 57.49%
includes/css/jquery-ui-1.11.4.custom/images/ui-bg_glass_95_fef1ec_1x400.png0.32KB0.15KB▼ 54.82%
includes/css/jquery-ui-1.11.4.custom/images/ui-icons_888888_256x240.png6.83KB4.17KB▼ 38.92%
includes/css/jquery-ui-1.11.4.custom/images/ui-bg_highlight-soft_75_cccccc_1x100.png0.27KB0.18KB▼ 35.00%
includes/css/jquery-ui-1.11.4.custom/images/ui-bg_glass_75_dadada_1x400.png0.26KB0.16KB▼ 38.93%