68% clickervolt

Code Review | ClickerVolt - Affiliate Links & Click Tracking for Performance Marketers

WordPress plugin ClickerVolt - Affiliate Links & Click Tracking for Performance Marketers scored 68% from 54 tests.

About plugin

  • Plugin page: clickervolt
  • Plugin version: 1.169
  • PHP compatiblity: 7.1+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.9-5.9
  • WordPress version: 5.9.2
  • First release: Mar 23, 2019
  • Latest release: Dec 8, 2021
  • Number of updates: 76
  • Update frequency: every 13.1 days
  • Top authors: clickervolt (100%)

Code review

54 tests

User reviews

11 reviews

Install metrics

1,000+ active / 27,441 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
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲0.70MB] [CPU: ▼304.81ms] Passed 4 tests

This is a short check of server-side resources used by ClickerVolt - Affiliate Links & Click Tracking for Performance Marketers
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /4.13 ▲0.6260.14 ▲9.05
Dashboard /wp-admin4.19 ▲0.7941.79 ▲2.11
Posts /wp-admin/edit.php4.42 ▲0.7871.87 ▼17.05
Add New Post /wp-admin/post-new.php7.67 ▲0.70107.31 ▼1,211.96
Media Library /wp-admin/upload.php3.99 ▲0.6934.42 ▲7.65
Freemius Debug [v.2.4.2] /wp-admin/admin.php?page=freemius4.3133.13

Server storage [IO: ▲11.32MB] [DB: ▲0.04MB] 67% from 3 tests

How much does this plugin use your filesystem and database?
These are issues you should consider
  • Illegal file modification detected: 27 files (125,394.71KB) outside of "wp-content/plugins/clickervolt/" and "wp-content/uploads/"
    • (new file) wp-content/plugins/clickervolt-data/links/fake/blocks
    • (new file) wp-content/plugins/clickervolt-data/links/fake/templates
    • (new file) wp-content/plugins/clickervolt-data/links/fake/me
    • (new file) wp-content/plugins/clickervolt-data/links/fake/themes
    • (new file) wp-content/plugins/clickervolt-data/links/fake/users
    • (new file) wp-content/plugins/clickervolt-data/links/fake/index
    • (new file) wp-content/plugins/clickervolt-data/links/fake/single
    • (new file) wp-content/plugins/clickervolt-data/links/aliases/.empty
    • (new file) wp-content/plugins/clickervolt-data/links/fake/pages
    • (new file) wp-content/plugins/clickervolt-data/links/fake/7
    • ...
Filesystem: 1,119 new files
Database: 30 new tables, 5 new options
New tables
wp_clickervolt_stats_whole_path_geos
wp_clickervolt_funnel_links
wp_clickervolt_stats_whole_path_var10
wp_clickervolt_stats_whole_path_var5
wp_clickervolt_source_templates
wp_clickervolt_stats_whole_path_var4
wp_clickervolt_stats_whole_path_var6
wp_clickervolt_geos
wp_clickervolt_devices
wp_clickervolt_custom_reports
...
New WordPress options
fs_accounts
fs_gdpr
fs_debug_mode
clickervolt-version
fs_active_plugins

Browser metrics Passed 4 tests

ClickerVolt - Affiliate Links & Click Tracking for Performance Marketers: an overview of browser usage
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,805 ▲8315.63 ▲0.035.55 ▲0.102.09 ▼0.37
Dashboard /wp-admin2,923 ▲626.23 ▲0.13120.96 ▼10.42200.59 ▲41.27
Posts /wp-admin/edit.php2,734 ▲403.12 ▼0.1266.81 ▲3.79174.29 ▲26.54
Add New Post /wp-admin/post-new.php1,679 ▼3215.68 ▼5.56501.24 ▲14.92210.52 ▲51.79
Media Library /wp-admin/upload.php1,740 ▲425.55 ▲0.05130.12 ▼12.71240.83 ▲53.71
Freemius Debug [v.2.4.2] /wp-admin/admin.php?page=freemius1,4432.4157.17114.71

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
  • This plugin does not fully uninstall, leaving 30 tables in the database
    • wp_clickervolt_referrers
    • wp_clickervolt_stats_base
    • wp_clickervolt_parallel_ids
    • wp_clickervolt_custom_reports
    • wp_clickervolt_stats_whole_path_geos
    • wp_clickervolt_urls_paths
    • wp_clickervolt_source_templates
    • wp_clickervolt_stats_whole_path_var6
    • wp_clickervolt_stats_whole_path_var5
    • wp_clickervolt_stats_whole_path_referrers
    • ...
  • This plugin does not fully uninstall, leaving 5 options in the database
    • fs_debug_mode
    • fs_active_plugins
    • fs_accounts
    • fs_gdpr
    • clickervolt-version

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
The smoke test was a success, however most plugin functionality was not tested

SRP 0% 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
Please fix the following items
  • 7× PHP files output non-empty strings when accessed directly via GET requests:
    • > /wp-content/plugins/clickervolt/admin/views/dashboardTabLinks.php
    • > /wp-content/plugins/clickervolt/others/spyc/php4/5to4.php
    • > /wp-content/plugins/clickervolt/admin/views/dashboardTabClickLog.php
    • > /wp-content/plugins/clickervolt/freemius/templates/ajax-loader.php
    • > /wp-content/plugins/clickervolt/admin/views/dashboardTabLatestNews.php
    • > /wp-content/plugins/clickervolt/others/spyc/examples/yaml-load.php
    • > /wp-content/plugins/clickervolt/admin/views/dashboardTabReports.php
  • 83× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/clickervolt/others/spyc/tests/IndentTest.php:5
    • > PHP Fatal error
      Uncaught Error: Class 'ClickerVolt\\Reporting\\HandlerWholePath' not found in wp-content/plugins/clickervolt/admin/reporting/handlers/handlerWholePathGeos.php:11
    • > PHP Fatal error
      Uncaught Error: Class 'DeviceDetector\\Parser\\Client\\AbstractClientParser' not found in wp-content/plugins/clickervolt/others/device-detector/Parser/Client/Library.php:18
    • > PHP Fatal error
      Uncaught Error: Interface 'DeviceDetector\\Yaml\\ParserInterface' not found in wp-content/plugins/clickervolt/others/device-detector/Yaml/Spyc.php:15
    • > PHP Fatal error
      Uncaught Error: Class 'DeviceDetector\\Parser\\ParserAbstract' not found in wp-content/plugins/clickervolt/others/device-detector/Parser/BotParserAbstract.php:17
    • > PHP Fatal error
      Uncaught Error: Class 'ClickerVolt\\TableStatsWholePath' not found in wp-content/plugins/clickervolt/db/tableStatsWholePathVarX.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/clickervolt/others/spyc/tests/ParseTest.php:5
    • > PHP Fatal error
      Uncaught Error: Interface 'IPLib\\Range\\RangeInterface' not found in wp-content/plugins/clickervolt/others/ip-lib/src/Range/Pattern.php:17
    • > PHP Fatal error
      Uncaught Error: Class 'DeviceDetector\\Parser\\Client\\AbstractClientParser' not found in wp-content/plugins/clickervolt/others/device-detector/Parser/Client/MediaPlayer.php:18
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/clickervolt/freemius/templates/account/partials/addon.php on line 8

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
No browser errors were detected

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file is an important file in your plugin as it is parsed by WordPress.org to prepare the public listing of your plugin
Attributes that need to be fixed:
  • Tags: Please delete some tags, you are using 20 tag instead of maximum 10
The official readme.txt is a good inspiration

clickervolt/clickervolt.php Passed 13 tests

The main PHP file in "ClickerVolt - Affiliate Links & Click Tracking for Performance Marketers" ver. 1.169 adds more information about the plugin and also serves as the entry point for this plugin
84 characters long description:
Advanced click tracking, link cloaking and affiliate campaigns management made easy.

Code Analysis 97% from 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
Good job! No executable or dangerous file extensions detected123,998 lines of code in 467 files:
LanguageFilesBlank linesComment linesLines of code
PHP31712,11022,50967,449
YAML222,3531,70525,103
PO File137,5319,16116,474
JavaScript324462,8098,775
Sass48691843,891
CSS191579884
Markdown72910674
C17315476
JSON500180
XML1181370
m415014
C/C++ Header14128

PHP code 50% from 2 tests

Analyzing cyclomatic complexity and code structure
The following items need your attention
  • Cyclomatic complexity of classes should be reduced to less than 1000 (currently 2,907)
Cyclomatic complexity
Average complexity per logical line of code0.53
Average class complexity27.89
▷ Minimum class complexity1.00
▷ Maximum class complexity2,907.00
Average method complexity3.81
▷ Minimum method complexity1.00
▷ Maximum method complexity86.00
Code structure
Namespaces16
Interfaces9
Traits1
Classes236
▷ Abstract classes198.05%
▷ Concrete classes21791.95%
▷ Final classes00.00%
Methods2,332
▷ Static methods42018.01%
▷ Public methods1,76375.60%
▷ Protected methods1225.23%
▷ Private methods44719.17%
Functions208
▷ Named functions11756.25%
▷ Anonymous functions9143.75%
Constants500
▷ Global constants10220.40%
▷ Class constants39879.60%
▷ Public constants398100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
593 compressed PNG files occupy 0.78MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/images/icons/os/DEB.png0.90KB0.90KB0.00%
admin/images/icons/browsers/AL.png1.95KB1.94KB▼ 0.75%
admin/images/icons/flags/su.png0.40KB0.34KB▼ 14.18%
admin/images/icons/flags/tr.png0.46KB0.41KB▼ 12.24%
admin/images/icons/browsers/S3.png0.31KB0.29KB▼ 6.58%