68% firebox

Code Review | Popup Plugin – On Page Load Popup, Exit Popup, Login Popup, On Click, Sticky Bar, Anti-AdBlock – FireBox

WordPress plugin Popup Plugin – On Page Load Popup, Exit Popup, Login Popup, On Click, Sticky Bar, Anti-AdBlock – FireBox scored68%from 54 tests.

About plugin

  • Plugin page: firebox
  • Plugin version: 2.1.1
  • PHP compatiblity: 7.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.4-6.4
  • WordPress version: 6.3.1
  • First release: Feb 25, 2021
  • Latest release: Nov 9, 2023
  • Number of updates: 149
  • Update frequency: every 6.9 days
  • Top authors: fireplugins (100%)

Code review

54 tests

User reviews

26 reviews

Install metrics

2,000+ active /29,840 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Installer ran successfully

Server metrics [RAM: ▲3.35MB] [CPU: ▲23.71ms] 75% from 4 tests

Analyzing server-side resources used by Popup Plugin – On Page Load Popup, Exit Popup, Login Popup, On Click, Sticky Bar, Anti-AdBlock – FireBox
The following require your attention
  • RAM: Try to keep total memory usage under 10MB (currently 16.16MB on /wp-admin/post-new.php?post_type=firebox)
PageMemory (MB)CPU Time (ms)
Home /6.49 ▲3.0258.75 ▲20.24
Dashboard /wp-admin6.77 ▲3.4272.48 ▲12.40
Posts /wp-admin/edit.php6.83 ▲3.4775.07 ▲27.81
Add New Post /wp-admin/post-new.php15.31 ▲9.43142.87 ▲42.70
Media Library /wp-admin/upload.php6.69 ▲3.4666.07 ▲34.40
Import /wp-admin/admin.php?page=firebox-import6.9864.34
Campaigns /wp-admin/admin.php?page=firebox-campaigns6.9365.52
New Campaign /wp-admin/post-new.php?post_type=firebox16.16208.81
Analytics /wp-admin/admin.php?page=firebox-analytics6.8168.01
Settings /wp-admin/admin.php?page=firebox-settings7.0578.39
Submissions /wp-admin/admin.php?page=firebox-submissions7.0161.38
Overview /wp-admin/admin.php?page=firebox6.8158.82

Server storage [IO: ▲6.36MB] [DB: ▲0.01MB] Passed 3 tests

Filesystem and database footprint
This plugin was installed successfully
Filesystem: 2,208 new files
Database: 4 new tables, 9 new options
New tables
wp_firebox_submission_meta
wp_firebox_logs_details
wp_firebox_submissions
wp_firebox_logs
New WordPress options
firebox_version
firebox_settings
widget_theysaidso_widget
can_compress_scripts
theysaidso_admin_options
widget_recent-posts
db_upgraded
widget_recent-comments
widget_firebox_add_button_widget

Browser metrics Passed 4 tests

Popup Plugin – On Page Load Popup, Exit Popup, Login Popup, On Click, Sticky Bar, Anti-AdBlock – FireBox: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,919 ▲17214.34 ▼0.341.56 ▼0.2537.68 ▼5.67
Dashboard /wp-admin2,298 ▲1275.53 ▼0.1095.38 ▼5.8283.17 ▲36.91
Posts /wp-admin/edit.php2,275 ▲1751.99 ▼0.0337.92 ▲1.2843.41 ▲7.92
Add New Post /wp-admin/post-new.php1,907 ▲38128.84 ▲5.66795.16 ▲139.82146.55 ▲88.17
Media Library /wp-admin/upload.php1,503 ▲1004.12 ▼0.07102.96 ▲2.6186.39 ▲46.21
Import /wp-admin/admin.php?page=firebox-import1,7093.1051.35104.17
Campaigns /wp-admin/admin.php?page=firebox-campaigns2,4491.8528.9041.68
New Campaign /wp-admin/post-new.php?post_type=firebox12,08825.331,105.85215.99
Analytics /wp-admin/admin.php?page=firebox-analytics2,5943.7276.0259.15
Settings /wp-admin/admin.php?page=firebox-settings2,9231.8537.4054.79
Submissions /wp-admin/admin.php?page=firebox-submissions2,4911.7128.1044.62
Overview /wp-admin/admin.php?page=firebox2,4873.4562.8546.74

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
You still need to fix the following
  • The plugin did not uninstall successfully, leaving 4 tables in the database
    • wp_firebox_submission_meta
    • wp_firebox_submissions
    • wp_firebox_logs_details
    • wp_firebox_logs
  • Zombie WordPress options were found after uninstall: 9 options
    • widget_recent-comments
    • can_compress_scripts
    • firebox_settings
    • widget_recent-posts
    • db_upgraded
    • firebox_version
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • widget_firebox_add_button_widget

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Everything seems fine, however this is by no means an exhaustive test

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
The following issues need your attention
  • 33× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'GeoIp2\\Model\\Country' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/geoip2/geoip2/src/Model/City.php:57
    • > PHP Fatal error
      Uncaught Error: Class 'FPFramework\\Libs\\Vendors\\AbstractRegistryFormat' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/Format/Ini.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'GeoIp2\\Record\\AbstractPlaceRecord' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/geoip2/geoip2/src/Record/Country.php:30
    • > PHP Fatal error
      Uncaught Error: Class 'GeoIp2\\Exception\\GeoIp2Exception' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/geoip2/geoip2/src/Exception/OutOfQueriesException.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'GeoIp2\\Model\\AbstractModel' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/geoip2/geoip2/src/Model/ConnectionType.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'GeoIp2\\Model\\City' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/geoip2/geoip2/src/Model/Insights.php:54
    • > PHP Fatal error
      Uncaught Error: Interface 'GeoIp2\\ProviderInterface' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/geoip2/geoip2/src/Database/Reader.php:35
    • > PHP Fatal error
      Uncaught Error: Class 'MaxMind\\Exception\\WebServiceException' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/maxmind/web-service-common/src/Exception/InvalidInputException.php:10
    • > PHP Fatal error
      Uncaught Error: Class 'GeoIp2\\Model\\City' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/geoip2/geoip2/src/Model/Enterprise.php:54
    • > PHP Fatal error
      Uncaught Error: Class 'MaxMind\\Exception\\InvalidRequestException' not found in wp-content/plugins/firebox/Inc/Framework/Inc/Libs/Vendors/maxmind/web-service-common/src/Exception/InsufficientFundsException.php:8

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
These are user-side errors you should fix
    • > GET request to /wp-admin/post-new.php?post_type=firebox
    • > Console-api (warning) in wp-includes/js/dist/deprecated.min.js?ver=73ad3591e7bc95f4777a+1:627
    Using custom components as toolbar controls is deprecated since version 5.6. Please use ToolbarItem, ToolbarButton or ToolbarDropdownMenu components instead. See: https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols
    • > GET request to /wp-admin/admin.php?page=firebox-analytics
    • > Intervention (severe) in unknown
    /wp-admin/post-new.php?post_type=firebox - Blocked attempt to show a 'beforeunload' confirmation panel for a frame that never had a user gesture since its load. https://www.chromestatus.com/feature/5082396709879808

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 16 tests

Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
These attributes need your attention:
  • Tags: Too many tags (12 tag instead of maximum 10); only the first 5 tags are used in your directory listing
You can look at the official readme.txt

firebox/firebox.php Passed 13 tests

The main PHP script in "Popup Plugin – On Page Load Popup, Exit Popup, Login Popup, On Click, Sticky Bar, Anti-AdBlock – FireBox" version 2.1.1 is automatically included on every request by WordPress
96 characters long description:
WordPress Popup and leads generation plugin that converts visitors into subscribers & customers.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
Everything looks great! No dangerous files found in this plugin44,017 lines of code in 1,826 files:
LanguageFilesBlank linesComment linesLines of code
PHP5978,41119,13339,898
CSS56464101,429
SVG1,084001,129
Markdown73090709
C17315477
JSON450126
JavaScript68464996
SQL20358
Bourne Shell1132228
XML20026
YAML10018
m415014
C/C++ Header14128
HTML1001

PHP code Passed 2 tests

An short overview of logical lines of code, cyclomatic complexity, and other code metrics
There are no cyclomatic complexity problems detected for this plugin
Cyclomatic complexity
Average complexity per logical line of code0.47
Average class complexity9.88
▷ Minimum class complexity1.00
▷ Maximum class complexity134.00
Average method complexity3.23
▷ Minimum method complexity1.00
▷ Maximum method complexity77.00
Code structure
Namespaces85
Interfaces8
Traits4
Classes447
▷ Abstract classes173.80%
▷ Concrete classes43096.20%
▷ Final classes30.70%
Methods1,790
▷ Static methods25314.13%
▷ Public methods1,33874.75%
▷ Protected methods18010.06%
▷ Private methods27215.20%
Functions50
▷ Named functions1326.00%
▷ Anonymous functions3774.00%
Constants89
▷ Global constants3235.96%
▷ Class constants5764.04%
▷ Public constants57100.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
263 compressed PNG files occupy 0.13MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
Inc/Framework/media/admin/images/flags/gp.png1.12KB1.14KB0.00%
Inc/Framework/media/admin/images/flags/ky.png0.95KB0.96KB0.00%
Inc/Framework/media/admin/images/flags/sc.png0.48KB0.48KB0.00%
Inc/Framework/media/admin/images/flags/tr.png0.37KB0.37KB0.27%
Inc/Framework/media/admin/images/flags/cw.png0.26KB0.26KB0.00%