83% icon-element

Code Review | Icon Element - Elementor Page Builder Icon Pack (6718 icons)

WordPress plugin Icon Element - Elementor Page Builder Icon Pack (6718 icons) scored83%from 54 tests.

About plugin

  • Plugin page: icon-element
  • Plugin version: 2.0.5
  • PHP compatiblity: 5.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.0-6.4
  • WordPress version: 6.3.1
  • First release: Apr 1, 2020
  • Latest release: Dec 2, 2023
  • Number of updates: 25
  • Update frequency: every 53.6 days
  • Top authors: webangon (100%)

Code review

54 tests

User reviews

5 reviews

Install metrics

10,000+ active /60,341 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲0.42MB] [CPU: ▲2.10ms] Passed 4 tests

Analyzing server-side resources used by Icon Element - Elementor Page Builder Icon Pack (6718 icons)
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /3.88 ▲0.4241.79 ▲2.12
Dashboard /wp-admin3.73 ▲0.4349.03 ▲0.43
Posts /wp-admin/edit.php3.84 ▲0.4947.99 ▲1.61
Add New Post /wp-admin/post-new.php6.31 ▲0.4393.23 ▲7.60
Media Library /wp-admin/upload.php3.65 ▲0.4238.00 ▲4.24
Icon Element /wp-admin/themes.php?page=iconelement3.8035.61

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

Input-output and database impact of this plugin
This plugin installed successfully
Filesystem: 166 new files
Database: no new tables, 71 new options
New WordPress options
icon-elementie-tabler
icon-elementie-mapicon
icon-elementie-prestashop
icon-elementie-woocommerce
icon-elementie-buddyboss
icon-elementie-olicons
icon-elementie-elegant-font
icon-elementie-metrize
db_upgraded
icon-elementie-dripicons-icons
...

Browser metrics Passed 4 tests

This is an overview of browser requirements for Icon Element - Elementor Page Builder Icon Pack (6718 icons)
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,836 ▲7414.19 ▼0.161.71 ▼0.0841.85 ▼1.05
Dashboard /wp-admin2,241 ▲635.51 ▼0.1783.06 ▼29.8738.06 ▼8.02
Posts /wp-admin/edit.php2,146 ▲462.08 ▲0.0740.26 ▲2.0639.58 ▲5.47
Add New Post /wp-admin/post-new.php1,569 ▲3422.96 ▲0.01633.80 ▼15.8558.00 ▲8.19
Media Library /wp-admin/upload.php1,443 ▲404.14 ▼0.0798.62 ▼6.2859.41 ▲12.72
Icon Element /wp-admin/themes.php?page=iconelement1,4111.8744.4035.91

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
You still need to fix the following
  • Zombie WordPress options were found after uninstall: 71 options
    • icon-elementie-wppagebuilder
    • icon-elementie-antdesign
    • icon-elementie-elementor
    • icon-elementie-chart
    • icon-elementie-themify-icons
    • icon-elementie-fabric
    • icon-elementie-captain
    • icon-elementie-woocommerce
    • icon-elementie-tilda
    • icon-elementie-unithinline
    • ...

Smoke tests 75% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Even though no errors were found, this is by no means an exhaustive test

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
The following issues need your attention
  • 2× PHP files trigger errors when accessed directly with GET requests:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/icon-element/admin/options.php:629
    • > PHP Fatal error
      Uncaught Error: Call to undefined function register_activation_hook() in wp-content/plugins/icon-element/includes/optin.php:8

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)
Everything seems fine on the user side

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 94% 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 require attention:
  • Screenshots: These screenshots lack descriptions #1, #2 in icon-element/assets to your readme.txt
The official readme.txt is a good inspiration

icon-element/iconelement.php 85% from 13 tests

The main PHP script in "Icon Element - Elementor Page Builder Icon Pack (6718 icons)" version 2.0.5 is automatically included on every request by WordPress
You should first fix the following items:
  • Text Domain: The text domain must be the same as the plugin slug, although optional since WordPress version 4.6
  • Main file name: It is recommended to name the main PHP file as the plugin slug ("icon-element.php" instead of "iconelement.php")

Code Analysis 97% from 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
There were no executable files found in this plugin69,512 lines of code in 84 files:
LanguageFilesBlank linesComment linesLines of code
CSS272,5547335,766
SVG24603916,636
HTML14,603013,870
PHP63682222,082
JSON25201,056
JavaScript12231102

PHP code 50% from 2 tests

This is a short overview of cyclomatic complexity and code structure for this plugin
These items need your attention
  • Cyclomatic complexity of methods should be reduced to less than 100 (currently 120)
Cyclomatic complexity
Average complexity per logical line of code0.78
Average class complexity52.20
▷ Minimum class complexity10.00
▷ Maximum class complexity121.00
Average method complexity5.49
▷ Minimum method complexity1.00
▷ Maximum method complexity120.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes5
▷ Abstract classes00.00%
▷ Concrete classes5100.00%
▷ Final classes00.00%
Methods57
▷ Static methods3052.63%
▷ Public methods5596.49%
▷ Protected methods11.75%
▷ Private methods11.75%
Functions2
▷ Named functions2100.00%
▷ Anonymous functions00.00%
Constants3
▷ Global constants3100.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
1 compressed PNG file occupies 0.03MB
Potential savings
Compression of 1 random PNG file using pngquant
FileSize - originalSize - compressedSavings
includes/img/banner.png29.17KB30.71KB0.00%