10% gourl-bitcoin-payment-gateway-paid-downloads-membership

Code Review | GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership

WordPress plugin GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership scored 10% from 54 tests.

About plugin

  • Plugin page: gourl-bitcoin-pay...
  • Plugin version: 1.6.4
  • PHP version: 7.4.16
  • WordPress compatibility: 2.1.0-5.9
  • WordPress version: 5.9.2
  • First release: Dec 24, 2014
  • Latest release: Jan 17, 2022
  • Number of updates: 213
  • Update frequency: every 12.1 days
  • Top authors: gourl (100%)

Code review

54 tests

User reviews

67 reviews

Install metrics

5,000+ active / 240,555 total downloads

Benchmarks

Plugin footprint 40% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
It is recommended to fix the following installer errors
  • The plugin cannot be installed
    • > Warning in wp-content/plugins/gourl-bitcoin-payment-gateway-paid-downloads-membership/gourl.php+6820
    chmod(): No such file or directory

Server metrics [RAM: ▲2.48MB] [CPU: ▼274.92ms] Passed 4 tests

Server-side resources used by GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /6.08 ▲2.5772.26 ▲15.99
Dashboard /wp-admin6.10 ▲2.6954.07 ▲20.09
Posts /wp-admin/edit.php6.10 ▲2.4655.31 ▲17.85
Add New Post /wp-admin/post-new.php9.17 ▲2.20102.37 ▼1,151.33
Media Library /wp-admin/upload.php6.10 ▲2.8041.08 ▲17.81
• Pay-Per-Product /wp-admin/admin.php?page=gourlproducts6.1048.33
    Add New Product /wp-admin/admin.php?page=gourlproduct6.1051.68
Settings /wp-admin/admin.php?page=gourlsettings6.1045.77
• Pay-Per-Membership /wp-admin/admin.php?page=gourlpaypermembership6.1058.79
    ________________ /wp-admin/admin.php?page=gourlpaypermembership_user6.1048.02
• Pay-Per-View /wp-admin/admin.php?page=gourlpayperview6.1048.58
• Summary /wp-admin/admin.php?page=gourl6.1657.56
Add-ons /wp-admin/admin.php?page=gourladdons6.1014.34
• Pay-Per-Download /wp-admin/admin.php?page=gourlfiles6.1048.31
Contacts /wp-admin/admin.php?page=gourlcontact6.1013.84

Server storage [IO: ▲13.05MB] [DB: ▲0.01MB] 67% from 3 tests

Input-output and database impact of this plugin
Just a few items left to fix
  • The plugin illegally modified 4 files (7.48KB) outside of "wp-content/plugins/gourl-bitcoin-payment-gateway-paid-downloads-membership/" and "wp-content/uploads/"
    • (new file) wp-content/plugins/gourl-php/index.html
    • (new file) wp-content/plugins/gourl-php/gourl_ipn.php
    • (new file) wp-content/plugins/gourl-php/.htaccess
    • (new file) wp-content/plugins/gourl-php/gourl.hash
Filesystem: 512 new files
Database: 4 new tables, 28 new options
New tables
crypto_products
crypto_membership
crypto_files
crypto_payments
New WordPress options
gourlpeercoinpublic_key
gourldogecoinpublic_key
gourlmonetaryunitprivate_key
gourlreddcoinpublic_key
gourlpotcoinpublic_key
gourlversion
gourlspeedcoinprivate_key
gourlspeedcoinpublic_key
gourlmonetaryunitpublic_key
gourldashpublic_key
...

Browser metrics Passed 4 tests

An overview of browser requirements for GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,880 ▲12615.58 ▼0.165.89 ▲0.074.78 ▲2.15
Dashboard /wp-admin2,974 ▲1206.16 ▼0.05119.39 ▼12.20184.70 ▼11.99
Posts /wp-admin/edit.php2,781 ▲873.24 ▲0.0162.64 ▼1.39144.04 ▲5.77
Add New Post /wp-admin/post-new.php1,722 ▲6122.80 ▲6.71446.94 ▲15.92194.98 ▲34.64
Media Library /wp-admin/upload.php1,793 ▲955.54 ▲0.04126.79 ▼19.53207.59 ▼35.17
• Pay-Per-Product /wp-admin/admin.php?page=gourlproducts1,5492.5456.40134.74
    Add New Product /wp-admin/admin.php?page=gourlproduct2,81610.09178.23246.96
Settings /wp-admin/admin.php?page=gourlsettings2,2792.5156.40229.51
• Pay-Per-Membership /wp-admin/admin.php?page=gourlpaypermembership3,70212.35238.20322.27
    ________________ /wp-admin/admin.php?page=gourlpaypermembership_user1,2152.5357.52129.94
• Pay-Per-View /wp-admin/admin.php?page=gourlpayperview2,9099.91174.18330.98
• Summary /wp-admin/admin.php?page=gourl3,1305.76126.14300.83
Add-ons /wp-admin/admin.php?page=gourladdons3,1304.84136.37287.58
• Pay-Per-Download /wp-admin/admin.php?page=gourlfiles1,6022.5454.21113.83
Contacts /wp-admin/admin.php?page=gourlcontact3,1305.93131.60243.17

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
You still need to fix the following
  • Zombie tables detected upon uninstall: 4 tables
    • crypto_payments
    • crypto_membership
    • crypto_files
    • crypto_products
  • Zombie WordPress options detected upon uninstall: 28 options
    • gourldogecoinprivate_key
    • gourldashprivate_key
    • gourlvertcoinpublic_key
    • gourlmonetaryunitpublic_key
    • gourlreddcoinprivate_key
    • gourlbitcoinpublic_key
    • gourlpeercoinprivate_key
    • gourllitecoinpublic_key
    • gourlpotcoinpublic_key
    • gourldogecoinpublic_key
    • ...

Smoke tests Passed 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Everything seems fine, however this is by no means an exhaustive test

SRP Passed 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
The SRP test was a success

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 83% from 29 tests

readme.txt 88% 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 need to be fixed:
  • Tags: Please delete some tags, you are using 102 tag instead of maximum 10
  • Screenshots: These screenshots have no corresponding images in /assets: #1 (GoUrl Bitcoin Plugin Summary Page), #2 (What Makes Us Unique), #3 (Free Bitcoin Gateway Addons), #4 (Plugin General Settings Page - place free Private/Public keys from Gourl.io and activate bitcoin/cryptocoin payments), #5 (All Payments Page - list of all received payments), #6 (Pay-Per-Membership Settings Page - sell Premium Access to Your Webpages/Videos), #7 (Example Pay-Per-Membership locked page), #8 (Example Pay-Per-View locked page), #9 (Pay-Per-Product Page - list of all paid payments), #10 (Pay-Per-Product New Record Page - add new product for sale), #11 (Example Pay-Per-Product - selling product online), #12 (Example Pay-Per-Download - selling file online), #13 (Pay-Per-Download Page - list of all paid files)
The official readme.txt is a good inspiration

gourl-bitcoin-payment-gateway-paid-downloads-membership/gourl_wordpress.php 77% from 13 tests

The main file in "GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership" v. 1.6.4 serves as a complement to information provided in readme.txt and as the entry point to the plugin
You should first fix the following items:
  • Requires at least: Required version must match the one declared in readme.txt ("3.5" instead of "2.1.0")
  • Main file name: Please rename the main PHP file in this plugin to the plugin slug ("gourl-bitcoin-payment-gateway-paid-downloads-membership.php" instead of "gourl_wordpress.php")
  • Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 397 characters long)

Code Analysis 95% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
Everything looks great! No dangerous files found in this plugin128,480 lines of code in 45 files:
LanguageFilesBlank linesComment linesLines of code
CSS28169305113,780
PO File31,9522,0697,285
PHP42,8921,4457,043
JavaScript47236247
Markdown261093
HTML48032

PHP code 0% from 2 tests

This is a short overview of cyclomatic complexity and code structure for this plugin
Please tend to the following items
  • Please reduce cyclomatic complexity of classes to less than 1000 (currently 1,451)
  • Please reduce cyclomatic complexity of methods to less than 100 (currently 117)
Cyclomatic complexity
Average complexity per logical line of code0.57
Average class complexity316.50
▷ Minimum class complexity28.00
▷ Maximum class complexity1,451.00
Average method complexity14.52
▷ Minimum method complexity1.00
▷ Maximum method complexity117.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes6
▷ Abstract classes00.00%
▷ Concrete classes6100.00%
▷ Final classes116.67%
Methods140
▷ Static methods42.86%
▷ Public methods10373.57%
▷ Protected methods00.00%
▷ Private methods3726.43%
Functions40
▷ Named functions40100.00%
▷ Anonymous functions00.00%
Constants14
▷ Global constants14100.00%
▷ Class constants00.00%
▷ Public constants00.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
443 compressed PNG files occupy 6.45MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/flags/BLZ.png0.59KB0.71KB0.00%
images/flags/EGY.png0.45KB0.61KB0.00%
images/flags/DNK.png0.48KB0.61KB0.00%
images/logos/appthemes.png6.98KB5.83KB▼ 16.49%
images/flags/EST.png0.42KB0.58KB0.00%