62% funnel-builder

Code Review | Funnel Builder for WordPress by FunnelKit - Customize WooCommerce Checkout Pages, Create Sales Funnels & Maximize Profits

WordPress plugin Funnel Builder for WordPress by FunnelKit - Customize WooCommerce Checkout Pages, Create Sales Funnels & Maximize Profits scored62%from 54 tests.

About plugin

  • Plugin page: funnel-builder
  • Plugin version: 2.16.0
  • PHP compatiblity: 7.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.4.0-6.4.1
  • WordPress version: 6.3.1
  • First release: Feb 11, 2021
  • Latest release: Nov 24, 2023
  • Number of updates: 315
  • Update frequency: every 3.5 days
  • Top authors: teamwoofunnels (83.81%)amans2k (16.51%)

Code review

54 tests

User reviews

614 reviews

Install metrics

20,000+ active /348,355 total downloads

Benchmarks

Plugin footprint 64% from 16 tests

Installer Passed 1 test

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

Server metrics [RAM: ▲7.42MB] [CPU: ▲61.44ms] 50% from 4 tests

This is a short check of server-side resources used by Funnel Builder for WordPress by FunnelKit - Customize WooCommerce Checkout Pages, Create Sales Funnels & Maximize Profits
It is recommended to improve the following
  • RAM: The total memory usage must be kept under 10MB (currently 10.89MB on /wp-admin/admin.php?page=bwf&path=/templates)
  • Extra RAM: The extra memory usage should kept under 5MB (currently 7.42MB on /wp-admin/admin.php?page=bwf&path=/templates)
PageMemory (MB)CPU Time (ms)
Home /11.21 ▲7.7496.12 ▲55.79
Dashboard /wp-admin10.68 ▲7.33189.19 ▲126.31
Posts /wp-admin/edit.php10.67 ▲7.30111.93 ▲62.22
Add New Post /wp-admin/post-new.php13.68 ▲7.79152.14 ▲58.66
Media Library /wp-admin/upload.php10.52 ▲7.29103.75 ▲69.10
Store Checkout /wp-admin/admin.php?page=bwf&path=/store-checkout10.89105.56
Automations NEW! /wp-admin/admin.php?page=bwf&path=/automations10.89100.11
Optin Confirmation Pages /wp-admin/admin.php?page=wf-oty10.4090.40
Settings /wp-admin/admin.php?page=bwf&path=/settings10.8995.81
Optin Page /wp-admin/admin.php?page=wf-op10.4887.05
Black Friday 🔥 /wp-admin/admin.php?page=upgrade_pro10.4985.55
Sales Page /wp-admin/admin.php?page=wf-lp12.5584.59
Funnels /wp-admin/admin.php?page=bwf&path=/funnels10.8990.81
License /wp-admin/admin.php?page=woofunnels10.5287.40
Templates /wp-admin/admin.php?page=bwf&path=/templates10.8988.33

Server storage [IO: ▲21.33MB] [DB: ▲0.31MB] Passed 3 tests

A short overview of filesystem and database impact
This plugin was installed successfully
Filesystem: 1,326 new files
Database: 7 new tables, 11 new options
New tables
wp_bwf_optin_entries
wp_bwf_contact_meta
wp_bwf_wc_customers
wp_wfco_report_views
wp_bwf_contact
wp_bwf_funnels
wp_bwf_funnelmeta
New WordPress options
_wfopp_db_version
widget_recent-posts
_bwf_upgrade_1_9_13
widget_theysaidso_widget
_wffn_db_version
db_upgraded
widget_recent-comments
_bwf_db_table_list
bwf_needs_rewrite
can_compress_scripts
...

Browser metrics Passed 4 tests

A check of browser resources used by Funnel Builder for WordPress by FunnelKit - Customize WooCommerce Checkout Pages, Create Sales Funnels & Maximize Profits
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,908 ▲14614.23 ▼0.451.58 ▲0.0137.51 ▼1.76
Dashboard /wp-admin2,313 ▲1395.62 ▼0.0295.15 ▼0.7351.41 ▲7.99
Posts /wp-admin/edit.php2,204 ▲1012.00 ▲0.0638.11 ▼1.9543.55 ▲7.05
Add New Post /wp-admin/post-new.php1,599 ▲7320.91 ▼2.42717.93 ▲106.0555.92 ▼0.75
Media Library /wp-admin/upload.php1,496 ▲1024.26 ▲0.12110.80 ▲13.8251.09 ▲11.06
Store Checkout /wp-admin/admin.php?page=bwf&path=/store-checkout1,1619.47209.8541.93
Automations NEW! /wp-admin/admin.php?page=bwf&path=/automations1,2659.83132.0952.69
Optin Confirmation Pages /wp-admin/admin.php?page=wf-oty1,7444.1060.2438.15
Settings /wp-admin/admin.php?page=bwf&path=/settings1,30811.24130.1151.80
Optin Page /wp-admin/admin.php?page=wf-op2,1275.2482.7168.04
Black Friday 🔥 /wp-admin/admin.php?page=upgrade_pro8751.9826.4838.41
Sales Page /wp-admin/admin.php?page=wf-lp1,7294.0547.4935.75
Funnels /wp-admin/admin.php?page=bwf&path=/funnels1,74912.14129.1649.93
License /wp-admin/admin.php?page=woofunnels1,1632.0126.6438.19
Templates /wp-admin/admin.php?page=bwf&path=/templates1,99311.36133.8866.29

Uninstaller [IO: ▲0.00MB] [DB: ▲0.31MB] 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 plugin did not uninstall successfully, leaving 7 tables in the database
    • wp_bwf_funnelmeta
    • wp_wfco_report_views
    • wp_bwf_optin_entries
    • wp_bwf_wc_customers
    • wp_bwf_contact
    • wp_bwf_contact_meta
    • wp_bwf_funnels
  • This plugin does not fully uninstall, leaving 11 options in the database
    • _wffn_db_version
    • db_upgraded
    • widget_recent-posts
    • widget_recent-comments
    • bwf_needs_rewrite
    • widget_theysaidso_widget
    • _bwf_upgrade_1_9_13
    • theysaidso_admin_options
    • can_compress_scripts
    • _bwf_db_table_list
    • ...

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Smoke test failed, please fix the following
  • 6 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=wf-lp
    • > Notice in wp-content/plugins/funnel-builder/modules/landing-pages/class-wffn-landing-pages.php+740
    Trying to get property 'post_status' of non-object
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=wf-lp
    • > Notice in wp-content/plugins/funnel-builder/admin/views/landing-pages/without-template.php+55
    Undefined index: section

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
Please fix the following items
  • 3× PHP files output non-empty strings when accessed directly via GET requests:
    • > /wp-content/plugins/funnel-builder/modules/optins/admin/views/optin-pages/fields/add-section-model.php
    • > /wp-content/plugins/funnel-builder/admin/views/commons/single-wffn-head.php
    • > /wp-content/plugins/funnel-builder/modules/optins/admin/views/optin-pages/fields/css.php
  • 187× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'WFACP_Divi_HTML_BLOCK' not found in wp-content/plugins/funnel-builder/modules/checkouts/builder/divi/modules/class-divi-form.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'WFFN_Ecomm_Tracking_Common' not found in wp-content/plugins/funnel-builder/modules/landing-pages/includes/class-wffn-ecomm-tracking-landing.php:11
    • > PHP Fatal error
      Uncaught Error: Call to undefined function WFACP_Core() in wp-content/plugins/funnel-builder/modules/checkouts/builder/divi/class-wfacp-divi.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'Pelago\\Emogrifier\\HtmlProcessor\\AbstractHtmlProcessor' not found in wp-content/plugins/funnel-builder/includes/libraries/Emogrifier/CssInliner.php:25
    • > PHP Fatal error
      Uncaught Error: Class 'BWF_Plugin_Compatibilities' not found in wp-content/plugins/funnel-builder/woofunnels/compatibilities/class-bwf-compatibility-with-aelia-cs.php:85
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnel-builder/woofunnels/includes/class-woofunnels-file-api.php on line 6
    • > PHP Fatal error
      Uncaught Error: Class 'OxyEl' not found in wp-content/plugins/funnel-builder/modules/checkouts/builder/oxygen/class-abstract-wfacp-fields.php:5
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_url() in wp-content/plugins/funnel-builder/modules/checkouts/admin/views/sections/products/no-product-new.php:6
    • > PHP Fatal error
      Uncaught Error: Class 'WFFN_Base_Node' not found in wp-content/plugins/funnel-builder/admin/canvas/node_types/class-wffn-node-condition.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'WFACP_Plugin_Compatibilities' not found in wp-content/plugins/funnel-builder/modules/checkouts/compatibilities/plugins/class-yith-subscription.php:17

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 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
Please fix the following attributes:
  • Screenshots: No descriptions were found for these screenshots #1, #2, #3, #4, #5 in funnel-builder/assets to your readme.txt
The official readme.txt is a good inspiration

funnel-builder/funnel-builder.php Passed 13 tests

The principal PHP file in "Funnel Builder for WordPress by FunnelKit - Customize WooCommerce Checkout Pages, Create Sales Funnels & Maximize Profits" v. 2.16.0 is loaded by WordPress automatically on each request
121 characters long description:
Create high-converting sales funnels on WordPress that look professional by following a well-guided step-by-step process.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Everything looks great! No dangerous files found in this plugin221,215 lines of code in 1,142 files:
LanguageFilesBlank linesComment linesLines of code
PHP83732,74618,476129,065
JavaScript1255,6513,20344,397
CSS888,97475443,601
JSON6201,925
SVG810331,602
HTML1494477
Vuejs Component26476
Sass15064
XML1008

PHP code Passed 2 tests

Analyzing cyclomatic complexity and code structure
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.47
Average class complexity28.39
▷ Minimum class complexity1.00
▷ Maximum class complexity447.00
Average method complexity3.69
▷ Minimum method complexity1.00
▷ Maximum method complexity100.00
Code structure
Namespaces4
Interfaces3
Traits0
Classes647
▷ Abstract classes385.87%
▷ Concrete classes60994.13%
▷ Final classes121.97%
Methods6,593
▷ Static methods93914.24%
▷ Public methods5,79387.87%
▷ Protected methods4286.49%
▷ Private methods3725.64%
Functions234
▷ Named functions7833.33%
▷ Anonymous functions15666.67%
Constants90
▷ Global constants5156.67%
▷ Class constants3943.33%
▷ Public constants39100.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
48 compressed PNG files occupy 0.26MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
(invalid) modules/checkouts/admin/assets/img/badges/mb_4.png0.00KB0.00KB0.00%
(invalid) modules/checkouts/admin/assets/img/welcome.png0.00KB0.00KB0.00%
(invalid) modules/checkouts/admin/assets/img/layer-eye.png0.00KB0.00KB0.00%
(invalid) modules/checkouts/admin/assets/img/tab.png0.00KB0.00KB0.00%
(invalid) modules/checkouts/admin/assets/img/woo_checkout_logo_layout_9.png0.00KB0.00KB0.00%