83% woocommerce-digital-content-delivery-with-drm-flickrocket

Code Review | WooCommerce Digital Content Delivery (incl. DRM) - FlickRocket

WordPress plugin WooCommerce Digital Content Delivery (incl. DRM) - FlickRocket scored83%from 54 tests.

About plugin

  • Plugin page: woocommerce-digit...
  • Plugin version: 4.66
  • PHP version: 7.4.16
  • WordPress compatibility: 2.6.0-6.3.1
  • WordPress version: 6.3.1
  • First release: Jul 9, 2014
  • Latest release: Oct 10, 2023
  • Number of updates: 156
  • Update frequency: every 21.7 days
  • Top authors: FlickRocket (100%)

Code review

54 tests

User reviews

10 reviews

Install metrics

80+ active /12,467 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

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

Server metrics [RAM: ▲0.59MB] [CPU: ▼6.00ms] Passed 4 tests

Analyzing server-side resources used by WooCommerce Digital Content Delivery (incl. DRM) - FlickRocket
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /4.10 ▲0.6338.31 ▼3.84
Dashboard /wp-admin3.93 ▲0.5950.40 ▼12.50
Posts /wp-admin/edit.php3.98 ▲0.6348.15 ▲3.37
Add New Post /wp-admin/post-new.php6.45 ▲0.5784.66 ▼10.09
Media Library /wp-admin/upload.php3.79 ▲0.5638.74 ▲2.42
Marketplace /wp-admin/admin.php?page=fr_marketplace3.7634.60
Groups /wp-admin/admin.php?page=content_access_groups3.7632.90
Settings /wp-admin/admin.php?page=fr_settings_link3.7635.55
Content Access Groups /wp-admin/users.php?page=content_access_groups3.7633.53

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

A short overview of filesystem and database impact
This plugin was installed successfully
Filesystem: 25 new files
Database: no new tables, 7 new options
New WordPress options
widget_recent-comments
theysaidso_admin_options
db_upgraded
widget_theysaidso_widget
widget_recent-posts
fr_last_version
can_compress_scripts

Browser metrics Passed 4 tests

Checking browser requirements for WooCommerce Digital Content Delivery (incl. DRM) - FlickRocket
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,991 ▲23013.58 ▼0.778.64 ▲6.8540.34 ▼3.20
Dashboard /wp-admin2,288 ▲1145.69 ▲0.1581.33 ▼10.0974.57 ▲34.83
Posts /wp-admin/edit.php2,205 ▲1082.20 ▲0.2034.97 ▲0.2832.76 ▼7.39
Add New Post /wp-admin/post-new.php1,769 ▲24322.07 ▼1.58641.88 ▼30.0845.44 ▼17.06
Media Library /wp-admin/upload.php1,495 ▲924.40 ▲0.2399.93 ▲1.7978.49 ▲36.21
Marketplace /wp-admin/admin.php?page=fr_marketplace1,3902.9950.9076.10
Groups /wp-admin/admin.php?page=content_access_groups8951.9031.1623.94
Settings /wp-admin/admin.php?page=fr_settings_link8871.7826.0323.08
Content Access Groups /wp-admin/users.php?page=content_access_groups8951.7828.0123.74

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
These items require your attention
  • Zombie WordPress options detected upon uninstall: 6 options
    • can_compress_scripts
    • theysaidso_admin_options
    • widget_recent-posts
    • db_upgraded
    • widget_theysaidso_widget
    • widget_recent-comments

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 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
The following issues need your attention
  • 1× PHP files trigger errors when accessed directly with GET requests:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function plugins_url() in wp-content/plugins/woocommerce-digital-content-delivery-with-drm-flickrocket/woocommerce-flickrocket.php:21

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser issues were found

Optimizations

Plugin configuration 83% from 29 tests

readme.txt 88% 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
Attributes that need to be fixed:
  • Plugin Name: Please replace "Plugin Name" with the name of your plugin on the first line ( === woocommerce-digital-content-delivery-with-drm-flickrocket === )
  • Tags: Please reduce the number of tags, currently 13 tag instead of maximum 10
You can take inspiration from this readme.txt

woocommerce-digital-content-delivery-with-drm-flickrocket/woocommerce-flickrocket.php 77% from 13 tests

"WooCommerce Digital Content Delivery (incl. DRM) - FlickRocket" version 4.66's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
The following require your attention:
  • Description: Please keep the plugin description shorter than 140 characters (currently 309 characters long)
  • Requires at least: The required version number must match the one declared in readme.txt ("3.0.1" instead of "2.6.0")
  • Main file name: Please rename the main PHP file in this plugin to the plugin slug ("woocommerce-digital-content-delivery-with-drm-flickrocket.php" instead of "woocommerce-flickrocket.php")

Code Analysis Passed 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
No dangerous file extensions were detected34,700 lines of code in 18 files:
LanguageFilesBlank linesComment linesLines of code
JSON10030,124
PHP116769462,876
JavaScript2128721,101
PO File1132176470
HTML110057
CSS10148
SVG10124

PHP code Passed 2 tests

A brief analysis of cyclomatic complexity and code structure for this plugin
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.31
Average class complexity57.86
▷ Minimum class complexity1.00
▷ Maximum class complexity147.00
Average method complexity4.83
▷ Minimum method complexity1.00
▷ Maximum method complexity100.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes7
▷ Abstract classes00.00%
▷ Concrete classes7100.00%
▷ Final classes00.00%
Methods104
▷ Static methods9288.46%
▷ Public methods10298.08%
▷ Protected methods00.00%
▷ Private methods21.92%
Functions23
▷ Named functions23100.00%
▷ Anonymous functions00.00%
Constants22
▷ Global constants22100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
2 PNG files occupy 0.00MB with 0.00MB in potential savings
Potential savings
Compression of 2 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/close-icon.png3.43KB1.12KB▼ 67.21%
images/fr_logo.png1.23KB1.05KB▼ 14.31%