10% unicode-character-keyboard

Code Review | Unicode Character Keyboard

WordPress plugin Unicode Character Keyboard scored10%from 54 tests.

About plugin

  • Plugin page: unicode-character...
  • Plugin version: 1.2
  • PHP version: 7.4.16
  • WordPress compatibility: 2.7-4.3.1
  • WordPress version: 6.3.1
  • First release: Nov 15, 2012
  • Latest release: Nov 11, 2015
  • Number of updates: 56
  • Update frequency: every 19.5 days
  • Top authors: HoosierDragon (100%)

Code review

54 tests

User reviews

2 reviews

Install metrics

100+ active /3,423 total downloads

Benchmarks

Plugin footprint 40% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Please fix the following installer errors
  • The plugin cannot be installed
    • > Warning in wp-content/plugins/unicode-character-keyboard/avp-unicode-charkbd.php+1546
    opendir(wp-content/plugins/unicode-character-keyboard//modules/Custom): failed to open dir: No such file or directory

Server metrics [RAM: ▼1.38MB] [CPU: ▼49.24ms] Passed 4 tests

This is a short check of server-side resources used by Unicode Character Keyboard
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /2.61 ▼0.8610.69 ▼28.74
Dashboard /wp-admin2.63 ▼0.688.41 ▼40.66
Posts /wp-admin/edit.php2.63 ▼0.737.70 ▼38.40
Add New Post /wp-admin/post-new.php2.63 ▼3.269.33 ▼89.14
Media Library /wp-admin/upload.php2.63 ▼0.608.05 ▼26.32
Display Keyboards /wp-admin/admin.php?page=avp-unicode-charkbd-menu-display2.639.38
Settings /wp-admin/admin.php?page=avp-unicode-charkbd-menu2.639.56
Customize /wp-admin/admin.php?page=avp-unicode-charkbd-menu-customize2.638.81
Manage Files /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage2.6310.11

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

A short overview of filesystem and database impact
There were no storage issued detected upon installing this plugin
Filesystem: 95 new files
Database: no new tables, 57 new options
New WordPress options
avp_unicode_charkbd_Spanish
can_compress_scripts
avp_unicode_charkbd_Miscellaneous
avp_unicode_charkbd_Symbols
avp_unicode_charkbd_Braille_Keyboard
avp_unicode_charkbd_Braille
avp_unicode_charkbd_Hirigana
avp_unicode_charkbd_Greek
avp_unicode_charkbd_Alchemical
avp_unicode_charkbd
...

Browser metrics Passed 4 tests

A check of browser resources used by Unicode Character Keyboard
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,838 ▲6713.21 ▼1.161.86 ▼0.1745.05 ▲0.26
Dashboard /wp-admin2,229 ▲435.82 ▲0.92114.16 ▼7.2591.34 ▲45.46
Posts /wp-admin/edit.php2,127 ▲352.02 ▲0.0234.65 ▼5.7334.63 ▼7.64
Add New Post /wp-admin/post-new.php6,415 ▲4,90126.12 ▲8.65969.80 ▲247.4539.02 ▼10.04
Media Library /wp-admin/upload.php1,426 ▲384.15 ▼0.07117.88 ▲16.6145.27 ▲0.21
Display Keyboards /wp-admin/admin.php?page=avp-unicode-charkbd-menu-display17,0532.2674.9833.67
Settings /wp-admin/admin.php?page=avp-unicode-charkbd-menu1,9262.0625.3041.18
Customize /wp-admin/admin.php?page=avp-unicode-charkbd-menu-customize1,2441.9136.1432.95
Manage Files /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage1,5752.3236.7336.07

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
  • The plugin did not uninstall gracefully
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-character handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • This plugin does not fully uninstall, leaving 57 options in the database
    • avp_unicode_charkbd_Subscripts
    • avp_unicode_charkbd_Currency
    • avp_unicode_charkbd_Katakana
    • avp_unicode_charkbd_Ogham
    • avp_unicode_charkbd_APL
    • avp_unicode_charkbd_Astrology
    • avp_unicode_charkbd_French
    • widget_theysaidso_widget
    • avp_unicode_charkbd_Tifinagh
    • db_upgraded
    • ...

Smoke tests 50% 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 errors were triggered by the plugin
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-character handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-file handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-menu handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-post handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-postbox handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-abbr handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-evenodd handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-highlight handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the avp-unicode-charkbd-metabox handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the jquery-validate handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the jquery-validate-additional handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > User notice in wp-includes/functions.php+5905
    Function wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the jquery-validate-style handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu-manage
    • > Warning in wp-content/plugins/unicode-character-keyboard/avp-unicode-charkbd.php+1546
    opendir(wp-content/plugins/unicode-character-keyboard//modules/Custom): failed to open dir: No such file or directory
    • > GET request to /wp-admin/admin.php?page=avp-unicode-charkbd-menu
    • > User deprecated in wp-includes/functions.php+5828
    Hook contextual_help is deprecated since version 3.3.0! Use get_current_screen()->add_help_tab(), get_current_screen()->remove_help_tab() instead.

SRP 50% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please take a closer look at the following
  • 1× GET requests to PHP files have triggered server-side errors or warnings:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function register_activation_hook() in wp-content/plugins/unicode-character-keyboard/avp-unicode-charkbd.php:52

User-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser issues were found

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 94% from 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that require attention:
  • Screenshots: These screenshots have no corresponding images in /assets: #1 (Plugin admin panel for selecting character sets), #2 (Plugin admin panel for displaying character sets), #3 (Plugin widget on edit page panel), #4 (Plugin widget on edit page panel showing the Roman Numeral character set), #5 (Plugin admin panel with status message box)
The official readme.txt is a good inspiration

unicode-character-keyboard/avp-unicode-charkbd.php 92% from 13 tests

The main file in "Unicode Character Keyboard" v. 1.2 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: Name the main plugin file the same as the plugin slug ("unicode-character-keyboard.php" instead of "avp-unicode-charkbd.php")

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Good job! No executable or dangerous file extensions detected12,672 lines of code in 78 files:
LanguageFilesBlank linesComment linesLines of code
XML511351089,384
JavaScript152905041,720
PHP12274821,284
PO File185191200
CSS95065
DTD16119

PHP code Passed 2 tests

Analyzing logical lines of code, cyclomatic complexity, and other code metrics
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.40
Average class complexity187.00
▷ Minimum class complexity187.00
▷ Maximum class complexity187.00
Average method complexity7.00
▷ Minimum method complexity1.00
▷ Maximum method complexity52.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes1
▷ Abstract classes00.00%
▷ Concrete classes1100.00%
▷ Final classes00.00%
Methods31
▷ Static methods00.00%
▷ Public methods31100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions0
▷ Named functions00.00%
▷ Anonymous functions00.00%
Constants0
▷ Global constants00.00%
▷ Class constants00.00%
▷ Public constants00.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
8 compressed PNG files occupy 0.01MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/success-32.png1.48KB1.30KB▼ 11.99%
images/keyboard-32.png1.17KB1.25KB0.00%
images/form-input-16.png0.43KB0.46KB0.00%
images/file-xml-16.png0.56KB0.53KB▼ 5.07%
images/warning-32.png1.57KB1.41KB▼ 10.42%