74% sticky-buttons

Code Review | Sticky Buttons - floating buttons builder

WordPress plugin Sticky Buttons - floating buttons builder scored74%from 54 tests.

About plugin

  • Plugin page: sticky-buttons
  • Plugin version: 3.2.1
  • PHP compatiblity: 7.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.3-6.4
  • WordPress version: 6.3.1
  • First release: Oct 31, 2019
  • Latest release: Oct 30, 2023
  • Number of updates: 29
  • Update frequency: every 50.3 days
  • Top authors: Wpcalc (100%)

Code review

54 tests

User reviews

4 reviews

Install metrics

5,000+ active /37,947 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
This plugin's installer ran successfully

Server metrics [RAM: ▲0.15MB] [CPU: ▲2.46ms] Passed 4 tests

A check of server-side resources used by Sticky Buttons - floating buttons builder
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /3.62 ▲0.1544.73 ▲4.94
Dashboard /wp-admin3.46 ▲0.1546.28 ▼2.08
Posts /wp-admin/edit.php3.57 ▲0.2146.62 ▲2.15
Add New Post /wp-admin/post-new.php6.04 ▲0.1591.70 ▲7.86
Media Library /wp-admin/upload.php3.38 ▲0.1536.67 ▲4.82
Welcome /wp-admin/admin.php?page=wow-company3.3530.63
Sticky Buttons /wp-admin/admin.php?page=sticky-buttons3.4735.76

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

Input-output and database impact of this plugin
The plugin installed successfully
Filesystem: 138 new files
Database: 1 new table, 6 new options
New tables
wp_wow_sbtn
New WordPress options
widget_theysaidso_widget
can_compress_scripts
theysaidso_admin_options
db_upgraded
widget_recent-comments
widget_recent-posts

Browser metrics Passed 4 tests

Sticky Buttons - floating buttons builder: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,855 ▲6914.34 ▲0.121.67 ▼0.4043.75 ▼0.57
Dashboard /wp-admin2,264 ▲875.63 ▼0.0291.35 ▼2.1838.92 ▲0.81
Posts /wp-admin/edit.php2,166 ▲662.03 ▲0.0340.88 ▲5.3431.94 ▼4.30
Add New Post /wp-admin/post-new.php1,561 ▲3318.28 ▼4.86645.30 ▼29.1561.45 ▲12.68
Media Library /wp-admin/upload.php1,460 ▲574.21 ▲0.01100.39 ▼4.8543.05 ▲1.21
Welcome /wp-admin/admin.php?page=wow-company9252.0026.0638.80
Sticky Buttons /wp-admin/admin.php?page=sticky-buttons1,1142.2146.5945.55

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
These items require your attention
  • The uninstall procedure failed, leaving 1 table in the database
    • wp_wow_sbtn
  • Zombie WordPress options were found after uninstall: 6 options
    • widget_theysaidso_widget
    • widget_recent-comments
    • db_upgraded
    • can_compress_scripts
    • widget_recent-posts
    • theysaidso_admin_options

Smoke tests 75% 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)
Even though no errors were found, this is by no means an exhaustive test

SRP 50% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following items
  • 3× GET requests to PHP files have triggered server-side errors or warnings:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr__() in wp-content/plugins/sticky-buttons/admin/settings/options/main.php:19
    • > PHP Notice
      Undefined variable: icons_new in wp-content/plugins/sticky-buttons/admin/settings/options/clone.php on line 17
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr__() in wp-content/plugins/sticky-buttons/admin/settings/options/clone.php:34

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
These attributes need to be fixed:
  • Screenshots: Add images for these screenshots: #1 (Sticky Buttons 1), #2 (Sticky Buttons 2)
Please take inspiration from this readme.txt

sticky-buttons/sticky-buttons.php Passed 13 tests

"Sticky Buttons - floating buttons builder" version 3.2.1's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
51 characters long description:
Easily create sticky buttons of varying complexity.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Everything looks great! No dangerous files found in this plugin27,577 lines of code in 71 files:
LanguageFilesBlank linesComment linesLines of code
CSS144,49114511,195
SVG4009,571
PHP324835974,584
Sass1418711,192
JavaScript71812771,035

PHP code Passed 2 tests

A short review of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.30
Average class complexity22.60
▷ Minimum class complexity4.00
▷ Maximum class complexity56.00
Average method complexity3.00
▷ Minimum method complexity1.00
▷ Maximum method complexity20.00
Code structure
Namespaces1
Interfaces0
Traits0
Classes5
▷ Abstract classes00.00%
▷ Concrete classes5100.00%
▷ Final classes240.00%
Methods54
▷ Static methods35.56%
▷ Public methods4685.19%
▷ Protected methods11.85%
▷ Private methods712.96%
Functions1
▷ Named functions1100.00%
▷ Anonymous functions00.00%
Constants1
▷ Global constants00.00%
▷ Class constants1100.00%
▷ Public constants1100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
4 PNG files occupy 0.26MB with 0.19MB in potential savings
Potential savings
Compression of 4 random PNG files using pngquant
FileSize - originalSize - compressedSavings
screenshot-1.png68.26KB14.50KB▼ 78.76%
screenshot-2.png72.14KB15.24KB▼ 78.88%
includes/about/image/icon.png121.88KB28.08KB▼ 76.96%
admin/assets/img/sticky-buttons-logo.png7.47KB3.39KB▼ 54.62%