Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
This plugin's installer ran successfully
Server metrics [RAM: ▲5.93MB] [CPU: ▲38.49ms] 50% from 4 tests
An overview of server-side resources used by Interactive Contact Form and Multi Step Form Builder with Drag & Drop Editor - Funnelforms Free
It is recommended to improve the following
- CPU: Try to keep total CPU usage under 500.00ms (currently 1,692.57ms on /wp-admin/admin.php?page=funnelforms-free)
- Extra RAM: Try to keep extra memory usage under 5MB (currently 5.93MB on /wp-admin/admin.php?page=funnelforms-free)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 9.30 ▲5.84 | 72.95 ▲34.30 |
Dashboard /wp-admin | 9.28 ▲5.97 | 88.82 ▲38.64 |
Posts /wp-admin/edit.php | 9.33 ▲5.97 | 93.90 ▲44.98 |
Add New Post /wp-admin/post-new.php | 11.83 ▲5.94 | 127.94 ▲36.10 |
Media Library /wp-admin/upload.php | 9.23 ▲6.00 | 78.93 ▲44.90 |
Contact forms /wp-admin/edit.php?post_type=af2_kontaktformular | 9.23 | 70.70 |
First steps /wp-admin/admin.php?page=af2_checklist | 9.23 | 66.49 |
Contact forms /wp-admin/admin.php?page=af2_kontaktformulare | 9.23 | 79.49 |
Affiliate program /wp-admin/admin.php?page=af2_partnerprogramm | 9.23 | 62.56 |
Form preview /wp-admin/admin.php?page=af2_formularbuilder_preview | 9.23 | 70.74 |
Demo import /wp-admin/admin.php?page=af2_demo_import | 9.23 | 81.13 |
Appointment events /wp-admin/admin.php?page=af2_terminevents | 9.24 | 71.74 |
Forms /wp-admin/admin.php?page=af2_formulare | 9.23 | 72.12 |
Appointments /wp-admin/admin.php?page=af2_termine | 9.23 | 71.92 |
Funnelforms Free /wp-admin/admin.php?page=funnelforms-free | 9.42 | 1,692.57 |
Server storage [IO: ▲12.44MB] [DB: ▲0.00MB] Passed 3 tests
How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 437 new files
Database: no new tables, 20 new options
New WordPress options |
---|
af2_question_categories |
fs_accounts |
widget_recent-comments |
widget_theysaidso_widget |
theysaidso_admin_options |
checklist_shortcode |
checklist_question |
can_compress_scripts |
af2_verification_codes |
fs_debug_mode |
... |
Browser metrics Passed 4 tests
Interactive Contact Form and Multi Step Form Builder with Drag & Drop Editor - Funnelforms Free: an overview of browser usage
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,919 ▲157 | 14.68 ▲0.42 | 1.52 ▼0.19 | 29.41 ▼17.01 |
Dashboard /wp-admin | 2,300 ▲120 | 5.55 ▼0.07 | 96.79 ▲3.21 | 98.32 ▲50.05 |
Posts /wp-admin/edit.php | 2,227 ▲127 | 2.13 ▲0.12 | 38.68 ▼6.78 | 35.62 ▲1.43 |
Add New Post /wp-admin/post-new.php | 1,616 ▲90 | 22.13 ▼0.88 | 782.65 ▲131.41 | 48.88 ▼4.58 |
Media Library /wp-admin/upload.php | 1,520 ▲123 | 4.19 ▼0.06 | 99.32 ▲0.14 | 76.16 ▲34.10 |
Contact forms /wp-admin/edit.php?post_type=af2_kontaktformular | 1,187 | 1.94 | 38.64 | 29.17 |
First steps /wp-admin/admin.php?page=af2_checklist | 1,694 | 5.49 | 60.83 | 92.92 |
Contact forms /wp-admin/admin.php?page=af2_kontaktformulare | 1,714 | 5.81 | 64.90 | 87.18 |
Affiliate program /wp-admin/admin.php?page=af2_partnerprogramm | 2,312 | 5.56 | 73.11 | 82.54 |
Form preview /wp-admin/admin.php?page=af2_formularbuilder_preview | 1,059 | 1.88 | 28.58 | 62.86 |
Demo import /wp-admin/admin.php?page=af2_demo_import | 1,573 | 2.13 | 28.32 | 76.86 |
Appointment events /wp-admin/admin.php?page=af2_terminevents | 1,659 | 6.34 | 52.47 | 66.53 |
Forms /wp-admin/admin.php?page=af2_formulare | 1,646 | 6.27 | 48.01 | 42.34 |
Appointments /wp-admin/admin.php?page=af2_termine | 1,670 | 6.29 | 52.82 | 64.20 |
Funnelforms Free /wp-admin/admin.php?page=funnelforms-free | 1,077 | 1.88 | 26.94 | 64.09 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
You still need to fix the following
- Uninstall procedure validation failed for this plugin
- > Notice in wp-content/plugins/funnelforms-free/freemius/includes/class-freemius.php+8486
Undefined property: stdClass::$plugins
- This plugin does not fully uninstall, leaving 20 options in the database
- fs_active_plugins
- checklist_form
- fs_debug_mode
- af2_free_version
- af2_version
- theysaidso_admin_options
- af2_categories
- widget_recent-posts
- widget_recent-comments
- af2_verification_codes
- ...
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
These server-side errors were triggered
- > GET request to /wp-admin/admin.php?page=af2_checklist
- > Notice in wp-content/plugins/funnelforms-free/admin/Healthcheck.php+125
Undefined variable: currentPluginVersion
- > GET request to /wp-admin/admin.php?page=af2_kontaktformulare
- > Notice in wp-content/plugins/funnelforms-free/admin/views/menu/menu_types/table.php+226
Undefined property: Fnsf_Af2Kontaktformulare::$pagination
- 4 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=af2_formularbuilder_preview
- > Notice in wp-content/plugins/funnelforms-free/admin/views/builder_templates/formularbuilder/preview.php+3
Undefined index: id
- > GET request to /wp-admin/admin.php?page=af2_terminevents
- > Notice in wp-content/plugins/funnelforms-free/admin/views/menu/menu_types/table.php+226
Undefined property: Fnsf_Af2Terminevent::$pagination
- > GET request to /wp-admin/admin.php?page=af2_formulare
- > Notice in wp-content/plugins/funnelforms-free/admin/views/menu/menu_types/table.php+226
Undefined property: Fnsf_Af2Formulare::$pagination
- > GET request to /wp-admin/admin.php?page=af2_termine
- > Notice in wp-content/plugins/funnelforms-free/admin/views/menu/menu_types/table.php+226
Undefined property: Fnsf_Af2Termine::$pagination
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
Almost there! Just fix the following items
- 10× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/funnelforms-free/admin/Admin.php
- > /wp-content/plugins/funnelforms-free/admin/views/menu/custom_menus/demoimport.php
- > /wp-content/plugins/funnelforms-free/admin/views/menu/snippets/action_buttons.php
- > /wp-content/plugins/funnelforms-free/admin/views/menu/snippets/hooks.php
- > /wp-content/plugins/funnelforms-free/admin/views/menu/custom_menus/integrationen.php
- > /wp-content/plugins/funnelforms-free/admin/views/builder_templates/fragenbuilder/multiselect.php
- > /wp-content/plugins/funnelforms-free/admin/views/builder_templates/kontaktformularbuilder/general.php
- > /wp-content/plugins/funnelforms-free/admin/views/builder_templates/fragenbuilder/textrow.php
- > /wp-content/plugins/funnelforms-free/admin/views/builder_templates/fragenbuilder/textarea.php
- > /wp-content/plugins/funnelforms-free/admin/views/builder_templates/fragenbuilder/general.php
- 182× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Warning
Use of undefined constant AF2F_PLUGIN_DIR - assumed 'AF2F_PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnelforms-free/misc/constants.php on line 74
- > PHP Warning
Use of undefined constant AF2F_PLUGIN_DIR - assumed 'AF2F_PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnelforms-free/misc/constants.php on line 35
- > PHP Warning
Use of undefined constant FNSF_AF2_MENU_PARENTS_CLASS - assumed 'FNSF_AF2_MENU_PARENTS_CLASS' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnelforms-free/admin/menus/physical_menus/Formularbuilder_settings.php on line 3
- > PHP Warning
Use of undefined constant AF2F_PLUGIN_DIR - assumed 'AF2F_PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnelforms-free/misc/constants.php on line 23
- > PHP Warning
Use of undefined constant AF2F_PLUGIN_DIR - assumed 'AF2F_PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnelforms-free/misc/constants.php on line 98
- > PHP Warning
Use of undefined constant AF2F_PLUGIN_DIR - assumed 'AF2F_PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnelforms-free/misc/constants.php on line 19
- > PHP Warning
Use of undefined constant FNSF_AF2_MENU_PARENTS_CLASS - assumed 'FNSF_AF2_MENU_PARENTS_CLASS' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnelforms-free/admin/menus/physical_menus/Import.php on line 3
- > PHP Warning
Use of undefined constant FNSF_AF2_MENU_PARENTS_CLASS - assumed 'FNSF_AF2_MENU_PARENTS_CLASS' (this will throw an Error in a future version of PHP) in wp-content/plugins/funnelforms-free/admin/menus/physical_menus/Kontaktformularbuilder_settings.php on line 3
- > PHP Fatal error
require_once(): Failed opening required 'FNSF_AF2_MENU_PARENTS_CLASS' (include_path='.:/usr/share/php') in wp-content/plugins/funnelforms-free/admin/menus/physical_menus/Kontaktformulare.php on line 3
- > PHP Fatal error
require_once(): Failed opening required 'FNSF_AF2_MENU_PARENTS_CLASS' (include_path='.:/usr/share/php') in wp-content/plugins/funnelforms-free/admin/menus/physical_menus/Fragen.php on line 3
- > PHP Warning
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
These are user-side errors you should fix
- > GET request to /wp-admin/admin.php?page=af2_kontaktformulare
- > Other (warning) in unknown
/wp-admin/admin.php?page=af2_kontaktformulare 274 Allow attribute will take precedence over 'allowfullscreen'.
- > GET request to /wp-admin/admin.php?page=af2_terminevents
- > Other (warning) in unknown
/wp-admin/admin.php?page=af2_terminevents 264 Allow attribute will take precedence over 'allowfullscreen'.
- > GET request to /wp-admin/admin.php?page=af2_formulare
- > Other (warning) in unknown
/wp-admin/admin.php?page=af2_formulare 266 Allow attribute will take precedence over 'allowfullscreen'.
- > GET request to /wp-admin/admin.php?page=af2_termine
- > Other (warning) in unknown
/wp-admin/admin.php?page=af2_termine 269 Allow attribute will take precedence over 'allowfullscreen'.
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
5 plugin tags: quiz, funnel, form, multi step form, contact form
funnelforms-free/Funnelforms-free.php 85% from 13 tests
This is the main PHP file of "Interactive Contact Form and Multi Step Form Builder with Drag & Drop Editor - Funnelforms Free" version 3.5.3.1, providing information about the plugin in the header fields and serving as the principal entry point to the plugin's functions
Please take the time to fix the following:
- Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("funnelforms-free.php" instead of "Funnelforms-free.php")
- Description: Please keep the plugin description shorter than 140 characters (currently 455 characters long)
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
Good job! No executable or dangerous file extensions detected92,692 lines of code in 272 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 187 | 9,355 | 17,681 | 43,440 |
PO File | 8 | 7,517 | 4,233 | 15,182 |
CSS | 39 | 2,811 | 139 | 12,524 |
JavaScript | 30 | 1,569 | 1,128 | 11,561 |
SVG | 3 | 0 | 0 | 9,552 |
Markdown | 3 | 107 | 0 | 324 |
JSON | 2 | 1 | 0 | 109 |
PHP code 50% from 2 tests
An short overview of logical lines of code, cyclomatic complexity, and other code metrics
Please tend to the following items
- Class cyclomatic complexity should be reduced to less than 1000 (currently 3,073)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.52 |
Average class complexity | 63.04 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 3,073.00 |
Average method complexity | 4.26 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 94.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 80 | |
▷ Abstract classes | 6 | 7.50% |
▷ Concrete classes | 74 | 92.50% |
▷ Final classes | 0 | 0.00% |
Methods | 1,566 | |
▷ Static methods | 210 | 13.41% |
▷ Public methods | 935 | 59.71% |
▷ Protected methods | 250 | 15.96% |
▷ Private methods | 381 | 24.33% |
Functions | 161 | |
▷ Named functions | 156 | 96.89% |
▷ Anonymous functions | 5 | 3.11% |
Constants | 264 | |
▷ Global constants | 217 | 82.20% |
▷ Class constants | 47 | 17.80% |
▷ Public constants | 47 | 100.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
33 PNG files occupy 0.58MB with 0.29MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
res/images/question_types/text_area.png | 3.30KB | 1.13KB | ▼ 65.85% |
res/images/menu_icon.png | 1.72KB | 1.05KB | ▼ 39.15% |
freemius/img/plugin-icon.png | 9.16KB | 5.26KB | ▼ 42.58% |
res/images/contact_form_types/email_type.png | 3.35KB | 1.23KB | ▼ 63.38% |
res/images/logo-white.png | 18.92KB | 11.16KB | ▼ 41.00% |