10% about-the-author-advanced

Code Review | About the Author Advanced

WordPress plugin About the Author Advanced scored 10% from 54 tests.

About plugin

  • Plugin page: about-the-author-...
  • Plugin version: 0.2.3
  • PHP version: 7.4.16
  • WordPress compatibility: 3.0-3.4.1
  • WordPress version: 5.9.2
  • First release: Jul 24, 2012
  • Latest release: Sep 14, 2012
  • Number of updates: 22
  • Update frequency: every 2.4 days
  • Top authors: dz@203com.com (100%)

Code review

54 tests

User reviews

1 review

Install metrics

100+ active / 12,792 total downloads

Benchmarks

Plugin footprint 40% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
You still need to fix the following installer errors
  • This plugin did not install gracefully
    • > Warning in wp-content/plugins/about-the-author-advanced/about-the-author-advanced.php+54
    Use of undefined constant ataa_version_key - assumed 'ataa_version_key' (this will throw an Error in a future version of PHP)

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

A check of server-side resources used by About the Author Advanced
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /1.89 ▼1.624.37 ▼46.67
Dashboard /wp-admin1.91 ▼1.513.50 ▼35.51
Posts /wp-admin/edit.php1.91 ▼1.734.11 ▼49.37
Add New Post /wp-admin/post-new.php1.91 ▼5.064.58 ▼1,279.80
Media Library /wp-admin/upload.php1.91 ▼1.394.09 ▼22.18
About the Author Advanced /wp-admin/options-general.php?page=ataa-settings1.914.16

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

Filesystem and database footprint
There were no storage issued detected upon installing this plugin
Filesystem: 31 new files
Database: no new tables, 3 new options
New WordPress options
ataa_version_key
ataa_options
widget_author_contact_info

Browser metrics Passed 4 tests

This is an overview of browser requirements for About the Author Advanced
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,806 ▲4815.95 ▲0.246.02 ▼0.452.78 ▲0.06
Dashboard /wp-admin2,895 ▲486.07 ▼0.07117.57 ▼17.65156.30 ▼1.17
Posts /wp-admin/edit.php2,664 ▼273.24 ▲0.0163.79 ▼3.18139.75 ▼5.50
Add New Post /wp-admin/post-new.php1,671 ▼8920.66 ▼1.32455.83 ▲49.49160.07 ▼5.92
Media Library /wp-admin/upload.php1,705 ▲75.51 ▼0.04144.98 ▲0.10186.67 ▼3.13
About the Author Advanced /wp-admin/options-general.php?page=ataa-settings1,6372.4255.93125.58

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
These items require your attention
  • This plugin did not uninstall without warnings or errors
    • > Warning in wp-content/plugins/about-the-author-advanced/about-the-author-advanced.php+54
    Use of undefined constant ataa_version_key - assumed 'ataa_version_key' (this will throw an Error in a future version of PHP)
  • Zombie WordPress options detected upon uninstall: 2 options
    • ataa_version_key
    • widget_author_contact_info

Smoke tests 50% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
These server-side errors were triggered
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Warning in wp-content/plugins/about-the-author-advanced/about-the-author-advanced.php+54
    Use of undefined constant ataa_version_key - assumed 'ataa_version_key' (this will throw an Error in a future version of PHP)
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Deprecated in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+234
    Function create_function() is deprecated
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > User deprecated in wp-includes/functions.php+5409
    The called constructor method for WP_Widget in Ataa_Widget is deprecated since version 4.3.0! Use __construct() instead.
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+70
    Undefined index: show_phone
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+72
    Undefined index: show_web
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+75
    Undefined index: show_bio
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+76
    Undefined index: show_company
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+77
    Undefined index: show_title
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+82
    Undefined index: show_linkedin
  • 5 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+126
    Undefined index: social_link
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+186
    Undefined index: phone
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+187
    Undefined index: company
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+188
    Undefined index: title
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+191
    Undefined index: aim
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+192
    Undefined index: gchat
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+193
    Undefined index: yim
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+198
    Undefined index: linkedin
    • > GET request to /wp-admin/options-general.php?page=ataa-settings
    • > Notice in wp-content/plugins/about-the-author-advanced/classes/edit-options.php+199
    Undefined index: gplus

SRP 50% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Almost there! Just fix the following items
  • 4× GET requests to PHP files trigger server-side errors or Error 500 responses:
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/about-the-author-advanced/classes/ataa-widget.php:3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_template() in wp-content/plugins/about-the-author-advanced/about-the-author-advanced.php:38
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/about-the-author-advanced/about-the-author-advanced.php on line 38
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/about-the-author-advanced/classes/edit-options.php:234

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine on the user side

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 81% from 16 tests

You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
These attributes need your attention:
  • Tags: There are too many tags (11 tag instead of maximum 10)
  • Contributors: The plugin contributors field is missing
  • Screenshots: These screenshots do not have images: #1 (Widget with all fields displayed), #2 (Widget with gravatar, bio and email displayed), #3 (Widget with only contact information displayed), #4 (Sidebar widget settings), #5 (Complete plugin settings)
The official readme.txt might help

about-the-author-advanced/about-the-author-advanced.php Passed 13 tests

The primary PHP file in "About the Author Advanced" version 0.2.3 is used by WordPress to initiate all plugin functionality
116 characters long description:
This plugin creates a sidebar widget which displays the post/page author's information in a highly configurable way.

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
Good job! No executable or dangerous file extensions detected427 lines of code in 4 files:
LanguageFilesBlank linesComment linesLines of code
PHP311938412
CSS17015

PHP code Passed 2 tests

A short review of cyclomatic complexity and code structure
There were no cyclomatic complexity issued detected
Cyclomatic complexity
Average complexity per logical line of code0.46
Average class complexity38.50
▷ Minimum class complexity11.00
▷ Maximum class complexity66.00
Average method complexity10.38
▷ Minimum method complexity1.00
▷ Maximum method complexity66.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes2
▷ Abstract classes00.00%
▷ Concrete classes2100.00%
▷ Final classes00.00%
Methods8
▷ Static methods00.00%
▷ Public methods8100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions7
▷ Named functions7100.00%
▷ Anonymous functions00.00%
Constants5
▷ Global constants5100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
20 PNG files occupy 0.06MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/icons/48/facebook.png3.94KB1.59KB▼ 59.52%
images/icons/32/twitter.png3.50KB1.16KB▼ 66.87%
images/icons/16/tumblr.png3.26KB0.68KB▼ 79.03%
images/icons/16/gplus.png0.51KB0.64KB0.00%
images/icons/32/gplus.png1.48KB1.52KB0.00%