66% track-everything

Code Review | Track Everything

WordPress plugin Track Everything scored66%from 54 tests.

About plugin

  • Plugin page: track-everything
  • Plugin version: 2.0.1
  • PHP version: 7.4.16
  • WordPress compatibility: 3.0.1-3.5.1
  • WordPress version: 6.3.1
  • First release: Nov 14, 2012
  • Latest release: Jan 23, 2014
  • Number of updates: 20
  • Update frequency: every 21.9 days
  • Top authors: ethoseo (100%)

Code review

54 tests

User reviews

2 reviews

Install metrics

100+ active /7,187 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▼0.09MB] [CPU: ▼14.86ms] Passed 4 tests

A check of server-side resources used by Track Everything
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.52 ▲0.0541.35 ▼2.95
Dashboard /wp-admin3.34 ▼0.0050.33 ▼9.87
Posts /wp-admin/edit.php3.39 ▲0.0445.10 ▲0.36
Add New Post /wp-admin/post-new.php5.47 ▼0.4269.47 ▼43.13
Media Library /wp-admin/upload.php3.26 ▲0.0334.48 ▼3.48
Track Everything /wp-admin/admin.php?page=track-everything3.2431.69
Specific Events /wp-admin/admin.php?page=track-everything/specific3.2434.00
Help /wp-admin/admin.php?page=track-everything/help3.2434.92
Tracking Labels /wp-admin/admin.php?page=track-everything/labels3.2332.07

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

A short overview of filesystem and database impact
This plugin installed successfully
Filesystem: 18 new files
Database: no new tables, 12 new options
New WordPress options
widget_theysaidso_widget
ethoseo_te_trackemail
widget_recent-posts
ethoseo_te_activated
ethoseo_te_trackoutbound
ethoseo_te_special
ethoseo_te_dictionary
can_compress_scripts
widget_recent-comments
theysaidso_admin_options
...

Browser metrics Passed 4 tests

A check of browser resources used by Track Everything
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,910 ▲14913.35 ▼0.6610.51 ▲8.9842.53 ▼0.49
Dashboard /wp-admin2,216 ▲365.52 ▼0.1793.30 ▲4.9474.64 ▲32.31
Posts /wp-admin/edit.php2,136 ▲361.98 ▼0.0034.19 ▼2.8130.50 ▼5.12
Add New Post /wp-admin/post-new.php1,709 ▲18319.99 ▼3.32750.06 ▲115.7346.97 ▼3.36
Media Library /wp-admin/upload.php1,439 ▲424.17 ▼0.0396.47 ▼15.7667.43 ▲19.47
Track Everything /wp-admin/admin.php?page=track-everything1,0602.0022.7935.81
Specific Events /wp-admin/admin.php?page=track-everything/specific9261.7127.1327.60
Help /wp-admin/admin.php?page=track-everything/help1,0782.0023.2253.74
Tracking Labels /wp-admin/admin.php?page=track-everything/labels8761.6927.4230.21

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
These items require your attention
  • The uninstall procedure has failed, leaving 12 options in the database
    • widget_theysaidso_widget
    • ethoseo_te_activated
    • ethoseo_te_trackforms
    • ethoseo_te_special
    • db_upgraded
    • ethoseo_te_trackemail
    • widget_recent-comments
    • ethoseo_te_trackoutbound
    • theysaidso_admin_options
    • can_compress_scripts
    • ...

Smoke tests 0% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
These server-side errors were triggered
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=track-everything/labels
    • > Notice in wp-content/plugins/track-everything/inc/screens/dictionary.php+4
    Undefined index: submit
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=track-everything/labels
    • > Notice in wp-content/plugins/track-everything/inc/screens/dictionary.php+21
    Undefined offset: 0
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=track-everything/labels
    • > Notice in wp-content/plugins/track-everything/inc/screens/dictionary.php+27
    Undefined index: selector
    • > GET request to /wp-admin/admin.php?page=track-everything/specific
    • > Notice in wp-content/plugins/track-everything/inc/screens/special.php+32
    Undefined index: category
    • > GET request to /wp-admin/admin.php?page=track-everything/specific
    • > Notice in wp-content/plugins/track-everything/inc/screens/special.php+33
    Undefined index: action
    • > GET request to /wp-admin/admin.php?page=track-everything/specific
    • > Notice in wp-content/plugins/track-everything/inc/screens/special.php+34
    Undefined index: label
  • 6 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=track-everything/specific
    • > Notice in wp-content/plugins/track-everything/inc/screens/special.php+37
    Undefined index: events
  • 6 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=track-everything/specific
    • > Notice in wp-content/plugins/track-everything/inc/screens/special.php+37
    Trying to access array offset on value of type null
    • > GET request to /wp-admin/admin.php?page=track-everything/labels
    • > Notice in wp-content/plugins/track-everything/inc/screens/dictionary.php+28
    Undefined index: name

SRP 0% 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
Please fix the following
  • 1× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/track-everything/inc/screens/help.php
  • 13× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function plugins_url() in wp-content/plugins/track-everything/inc/support/ethoseo.php:7
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_option() in wp-content/plugins/track-everything/inc/screens/settings.php:41
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_option() in wp-content/plugins/track-everything/inc/screens/dictionary.php:9
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_option() in wp-content/plugins/track-everything/inc/screens/special.php:9
    • > PHP Notice
      Undefined index: hide in wp-content/plugins/track-everything/ethoseo.php on line 2
    • > PHP Warning
      include(ETHOSEO_TE_PATHinc/support/ethoseo.php): failed to open stream: No such file or directory in wp-content/plugins/track-everything/inc/screens/settings.php on line 33
    • > PHP Notice
      Undefined index: submit in wp-content/plugins/track-everything/inc/screens/special.php on line 4
    • > PHP Fatal error
      Uncaught Error: Call to undefined function plugins_url() in wp-content/plugins/track-everything/ethoseo.php:7
    • > PHP Notice
      Undefined index: submit in wp-content/plugins/track-everything/inc/screens/dictionary.php on line 4
    • > PHP Warning
      Use of undefined constant ETHOSEO_TE_PATH - assumed 'ETHOSEO_TE_PATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/track-everything/inc/screens/settings.php on line 33

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
There are user-side issues you should fix
    • > GET request to /wp-admin/admin.php?page=track-everything/specific
    • > Console-api (warning) in unknown
    /wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28609 "jQuery.Deferred exception: $(...).live is not a function" "TypeError: $(...).live is not a function\n at repeater (/wp-content/plugins/track-everything/js/admin.js?ver=0.1.0:18:51)\n at HTMLDocument.\u003Canonymous> (/wp-admin/admin.php?page=track-everything%2Fspecific:180:2)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:26990)\n at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:27292)" undefined
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=track-everything/labels
    • > Javascript (severe) in unknown
    /wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28721 Uncaught TypeError: $(...).live is not a function
    • > GET request to /wp-admin/admin.php?page=track-everything/labels
    • > Console-api (warning) in unknown
    /wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28609 "jQuery.Deferred exception: $(...).live is not a function" "TypeError: $(...).live is not a function\n at repeater (/wp-content/plugins/track-everything/js/admin.js?ver=0.1.0:18:51)\n at HTMLDocument.\u003Canonymous> (/wp-admin/admin.php?page=track-everything%2Flabels:167:2)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:26990)\n at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:27292)" undefined

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 94% from 16 tests

Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
These attributes need your attention:
  • Plugin Name: Please replace "Plugin Name" with the name of your plugin on the first line ( === track-everything === )
The official readme.txt might help

track-everything/index.php 92% from 13 tests

The main file in "Track Everything" v. 2.0.1 serves as a complement to information provided in readme.txt and as the entry point to the plugin
The following require your attention:
  • Main file name: The principal plugin file should be the same as the plugin slug ("track-everything.php" instead of "index.php")

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Everything looks great! No dangerous files found in this plugin652 lines of code in 12 files:
LanguageFilesBlank linesComment linesLines of code
PHP75819436
JavaScript4307205
CSS10011

PHP code Passed 2 tests

This is a very shot review of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity
Average complexity per logical line of code0.30
Average class complexity0.00
▷ Minimum class complexity0.00
▷ Maximum class complexity0.00
Average method complexity0.00
▷ Minimum method complexity0.00
▷ Maximum method complexity0.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes0
▷ Abstract classes00.00%
▷ Concrete classes00.00%
▷ Final classes00.00%
Methods0
▷ Static methods00.00%
▷ Public methods00.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions10
▷ Named functions10100.00%
▷ Anonymous functions00.00%
Constants2
▷ Global constants2100.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
4 PNG files occupy 0.01MB with 0.01MB in potential savings
Potential savings
Compression of 4 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/icon-sprites.png2.14KB1.11KB▼ 48.38%
images/icon32.png4.03KB1.23KB▼ 69.53%
images/icon.png3.16KB0.61KB▼ 80.78%
images/pluginby.png3.13KB1.87KB▼ 40.27%