56% scrollsequence

Code Review | Scrollsequence - Cinematic Scroll Image Animation Plugin

WordPress plugin Scrollsequence - Cinematic Scroll Image Animation Plugin scored56%from 54 tests.

About plugin

  • Plugin page: scrollsequence
  • Plugin version: 1.4.5
  • PHP compatiblity: 7.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.0-6.3
  • WordPress version: 6.3.1
  • First release: Aug 29, 2020
  • Latest release: Oct 17, 2023
  • Number of updates: 1
  • Update frequency: every 365.0 days

Code review

54 tests

User reviews

15 reviews

Install metrics

3,000+ active /58,941 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Install script ran successfully

Server metrics [RAM: ▲5.83MB] [CPU: ▲33.94ms] 75% from 4 tests

An overview of server-side resources used by Scrollsequence - Cinematic Scroll Image Animation Plugin
It is recommended to improve the following
  • Extra RAM: The extra memory usage should kept under 5MB (currently 5.83MB on /wp-admin/edit.php?post_type=scrollsequence)
PageMemory (MB)CPU Time (ms)
Home /9.21 ▲5.7474.80 ▲41.08
Dashboard /wp-admin9.23 ▲5.9283.81 ▲39.27
Posts /wp-admin/edit.php9.23 ▲5.8787.55 ▲35.61
Add New Post /wp-admin/post-new.php11.69 ▲5.80116.93 ▲19.78
Media Library /wp-admin/upload.php9.23 ▲6.0078.35 ▲41.36
Add New Scrollsequence /wp-admin/post-new.php?post_type=scrollsequence9.3387.99
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius9.2673.01
Dashboard /wp-admin/admin.php?page=scrollsequence-dashboard9.2368.16
Scrollsequence /wp-admin/edit.php?post_type=scrollsequence9.2398.16

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

How much does this plugin use your filesystem and database?
This plugin installed successfully
Filesystem: 686 new files
Database: no new tables, 9 new options
New WordPress options
widget_recent-posts
fs_accounts
fs_debug_mode
widget_recent-comments
db_upgraded
widget_theysaidso_widget
can_compress_scripts
fs_active_plugins
theysaidso_admin_options

Browser metrics Passed 4 tests

Scrollsequence - Cinematic Scroll Image Animation Plugin: an overview of browser usage
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,054 ▲26818.45 ▲4.181.60 ▼0.2229.67 ▼11.98
Dashboard /wp-admin2,461 ▲2869.10 ▲3.38216.83 ▲112.5444.24 ▼3.06
Posts /wp-admin/edit.php2,406 ▲3066.25 ▲4.2390.58 ▲54.5434.35 ▼1.72
Add New Post /wp-admin/post-new.php1,632 ▲10326.33 ▲3.28745.49 ▲85.2249.47 ▼1.88
Media Library /wp-admin/upload.php1,536 ▲1396.71 ▲2.57113.13 ▲9.5942.25 ▼0.07
Add New Scrollsequence /wp-admin/post-new.php?post_type=scrollsequence2,78310.61347.5691.48
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius1,3996.1368.8726.16
Dashboard /wp-admin/admin.php?page=scrollsequence-dashboard2,59519.12374.34160.71
Scrollsequence /wp-admin/edit.php?post_type=scrollsequence1,4477.2392.7336.37

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

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
The following items require your attention
  • Uninstall procedure had uncaught errors
    • > Notice in wp-content/plugins/scrollsequence/includes/freemius/includes/class-freemius.php+8486
    Undefined property: stdClass::$plugins
  • This plugin did not uninstall successfully, leaving 9 options in the database
    • fs_active_plugins
    • fs_accounts
    • theysaidso_admin_options
    • db_upgraded
    • widget_theysaidso_widget
    • fs_debug_mode
    • widget_recent-posts
    • can_compress_scripts
    • widget_recent-comments

Smoke tests 0% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Please fix the following server-side errors
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/edit.php?post_type=scrollsequence
    • > request to
    • > Notice in wp-config.php+20
    Undefined index: REQUEST_METHOD

SRP 0% 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
  • 2× PHP files perform the action of outputting non-empty strings when accessed directly:
    • > /wp-content/plugins/scrollsequence/public/partials/scrollsequence-public-display.php
    • > /wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/templates/Exception/incorrect-syntax.php
  • 122× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Warning
      Invalid argument supplied for foreach() in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/templates/Exception/incorrect-syntax.php on line 35
    • > PHP Fatal error
      Uncaught Error: Interface 'Carbon_Fields\\Datastore\\Datastore_Interface' not found in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/core/Datastore/Datastore.php:12
    • > PHP Fatal error
      Uncaught Error: Call to undefined function settings_errors() in wp-content/plugins/scrollsequence/admin/partials/scrollsequence-admin-display.php:36
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Field\\Scripts_Field' not found in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/core/Field/Footer_Scripts_Field.php:9
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/templates/Container/user_meta.php:1
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Container\\Condition\\Condition' not found in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/core/Container/Condition/Post_Parent_ID_Condition.php:8
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/templates/Container/nav_menu_item.php:1
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Field\\Field' not found in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/core/Field/Color_Field.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function settings_fields() in wp-content/plugins/scrollsequence/admin/partials/scrollsequence-admin-display-options.php:5
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Field\\Field' not found in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/core/Field/Association_Field.php:19

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Please fix the following browser errors
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/edit.php?post_type=scrollsequence
    • > Console-api (warning) in wp-content/plugins/scrollsequence/includes/carbonfields/htmlburger/carbon-fields/build/classic/vendor.min.js?ver=3.6.0+48:54975
    wp.compose.withState is deprecated since version 5.8. Please use wp.element.useState instead.
    • > GET request to /wp-admin/admin.php?page=scrollsequence-dashboard
    • > Other (warning) in unknown
    /wp-admin/admin.php?page=scrollsequence-dashboard 313 Allow attribute will take precedence over 'allowfullscreen'.

Optimizations

Plugin configuration 97% 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:
  • Screenshots: These screenshots lack descriptions #10, #11, #8, #9 in scrollsequence/assets to your readme.txt
The official readme.txt might help

scrollsequence/scrollsequence.php Passed 13 tests

The primary PHP file in "Scrollsequence - Cinematic Scroll Image Animation Plugin" version 1.4.5 is used by WordPress to initiate all plugin functionality
114 characters long description:
Create stunning image animation that play and rewind on scroll. Make your website come alive with just few clicks.

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
Good job! No executable or dangerous file extensions detected71,149 lines of code in 574 files:
LanguageFilesBlank linesComment linesLines of code
PHP28510,99725,89644,190
JavaScript1797,26411,29617,078
PO File331,8692,5455,277
CSS222621,1762,299
Sass4936531,868
JSON300369
Markdown324068

PHP code 50% from 2 tests

A short review of cyclomatic complexity and code structure
These items need your attention
  • Class cyclomatic complexity should be reduced to less than 1000 (currently 3,073)
Cyclomatic complexity
Average complexity per logical line of code0.54
Average class complexity30.96
▷ Minimum class complexity1.00
▷ Maximum class complexity3,073.00
Average method complexity3.57
▷ Minimum method complexity1.00
▷ Maximum method complexity94.00
Code structure
Namespaces24
Interfaces5
Traits0
Classes184
▷ Abstract classes137.07%
▷ Concrete classes17192.93%
▷ Final classes21.17%
Methods2,270
▷ Static methods31413.83%
▷ Public methods1,70375.02%
▷ Protected methods1848.11%
▷ Private methods38316.87%
Functions205
▷ Named functions12360.00%
▷ Anonymous functions8240.00%
Constants185
▷ Global constants10456.22%
▷ Class constants8143.78%
▷ Public constants81100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
7 compressed PNG files occupy 0.34MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/img/select-images.png36.82KB36.83KB0.00%
admin/img/animation.png5.50KB5.50KB0.00%
includes/freemius/assets/img/theme-icon.png10.97KB5.78KB▼ 47.37%
admin/img/add-new-scrollsequence-images.png23.97KB23.98KB0.00%
admin/img/add-content.png224.59KB224.51KB0.03%