67% addons-for-elementor

Code Review | Elementor Addons by Livemesh

WordPress plugin Elementor Addons by Livemesh scored67%from 54 tests.

About plugin

  • Plugin page: addons-for-elementor
  • Plugin version: 8.2.1
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.8-6.4
  • WordPress version: 6.3.1
  • First release: Jun 28, 2017
  • Latest release: Nov 30, 2023
  • Number of updates: 225
  • Update frequency: every 10.4 days
  • Top authors: livemesh (100%)

Code review

54 tests

User reviews

154 reviews

Install metrics

70,000+ active /3,583,335 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: ▲5.43MB] [CPU: ▲24.36ms] 75% from 4 tests

A check of server-side resources used by Elementor Addons by Livemesh
Please have a look at the following items
  • Extra RAM: The extra memory usage should kept under 5MB (currently 5.43MB on /wp-admin/admin.php?page=freemius)
PageMemory (MB)CPU Time (ms)
Home /9.20 ▲5.7471.32 ▲31.13
Dashboard /wp-admin9.22 ▲5.8776.51 ▲12.82
Posts /wp-admin/edit.php9.22 ▲5.8682.06 ▲32.58
Add New Post /wp-admin/post-new.php10.12 ▲4.24124.67 ▲20.90
Media Library /wp-admin/upload.php9.22 ▲5.9975.95 ▲44.56
Freemius Debug [v.2.5.12] /wp-admin/admin.php?page=freemius9.2260.24

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

Filesystem and database footprint
This plugin installed successfully
Filesystem: 596 new files
Database: no new tables, 9 new options
New WordPress options
fs_active_plugins
fs_debug_mode
db_upgraded
widget_recent-posts
widget_theysaidso_widget
can_compress_scripts
theysaidso_admin_options
fs_accounts
widget_recent-comments

Browser metrics Passed 4 tests

Checking browser requirements for Elementor Addons by Livemesh
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,850 ▲8814.15 ▼0.181.97 ▲0.1227.12 ▼16.29
Dashboard /wp-admin2,215 ▲385.56 ▲0.0597.21 ▼4.4973.52 ▲30.57
Posts /wp-admin/edit.php2,136 ▲331.95 ▼0.0638.83 ▲1.3935.90 ▼0.98
Add New Post /wp-admin/post-new.php1,544 ▲1821.88 ▼1.34764.21 ▲89.8151.99 ▼1.75
Media Library /wp-admin/upload.php1,432 ▲294.20 ▲0.04109.07 ▲9.2977.31 ▲35.23
Freemius Debug [v.2.5.12] /wp-admin/admin.php?page=freemius1,0841.6624.6327.19

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

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
The following items require your attention
  • Uninstall procedure validation failed for this plugin
    • > Notice in wp-content/plugins/addons-for-elementor/freemius/includes/class-freemius.php+8515
    Undefined property: stdClass::$plugins
  • Zombie WordPress options were found after uninstall: 9 options
    • fs_accounts
    • db_upgraded
    • can_compress_scripts
    • fs_debug_mode
    • theysaidso_admin_options
    • widget_recent-comments
    • fs_active_plugins
    • widget_theysaidso_widget
    • widget_recent-posts

Smoke tests 50% 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 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
The following issues need your attention
  • 3× PHP files output text when accessed directly:
    • > /wp-content/plugins/addons-for-elementor/templates/addons/testimonials-slider/star-rating.php
    • > /wp-content/plugins/addons-for-elementor/templates/addons/testimonials/star-rating.php
    • > /wp-content/plugins/addons-for-elementor/templates/addons/team-members/social-profile.php
  • 29× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_comments_number() in wp-content/plugins/addons-for-elementor/templates/post-meta/comments-number.php:3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html__() in wp-content/plugins/addons-for-elementor/templates/post-meta/author.php:5
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_option() in wp-content/plugins/addons-for-elementor/templates/post-meta/published.php:4
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/addons-for-elementor/templates/addons/posts-carousel/custom-skin.php on line 3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_the_permalink() in wp-content/plugins/addons-for-elementor/templates/post-content/read-more-link.php:4
    • > PHP Warning
      Invalid argument supplied for foreach() in wp-content/plugins/addons-for-elementor/templates/post-meta/taxonomy-info.php on line 5
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_the_excerpt() in wp-content/plugins/addons-for-elementor/templates/post-content/entry-summary.php:6
    • > PHP Fatal error
      Uncaught Error: Call to undefined function lae_template_error() in wp-content/plugins/addons-for-elementor/templates/addons/posts-carousel/custom-skin.php:21
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/addons-for-elementor/templates/addons/team-members/social-profile.php on line 17
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/addons-for-elementor/templates/addons/team-members/social-profile.php on line 18

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 90% from 29 tests

readme.txt Passed 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
7 plugin tags: woocommerce elementor, elementor addons, elementor, elementor ui kit, elementor extensions...

addons-for-elementor/addons-for-elementor.php 77% from 13 tests

The principal PHP file in "Elementor Addons by Livemesh" v. 8.2.1 is loaded by WordPress automatically on each request
The following require your attention:
  • Text Domain: The text domain is optional since WordPress version 4.6; if you do specify it, it must be the same as the plugin slug
  • Domain Path: Note that the domain path follows the same naming rules as the domain name, using only dashes and lowercase characters ("languages")
  • Domain Path: The domain path must begin with a forward slash character ("/languages")

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 detected82,204 lines of code in 425 files:
LanguageFilesBlank linesComment linesLines of code
PHP26411,27419,70150,609
JavaScript672,6711,5669,777
CSS539012128,739
Sass291,27226,003
PO File22,5545,1995,009
HTML1221,533
SVG720517
XML13016
JSON1001

PHP code 50% from 2 tests

This is a very shot review of cyclomatic complexity and code structure
The following items need your attention
  • Cyclomatic complexity of classes should be reduced to less than 1000 (currently 3,088)
Cyclomatic complexity
Average complexity per logical line of code0.51
Average class complexity50.77
▷ Minimum class complexity1.00
▷ Maximum class complexity3,088.00
Average method complexity3.94
▷ Minimum method complexity1.00
▷ Maximum method complexity94.00
Code structure
Namespaces6
Interfaces0
Traits0
Classes93
▷ Abstract classes44.30%
▷ Concrete classes8995.70%
▷ Final classes22.25%
Methods1,603
▷ Static methods21313.29%
▷ Public methods1,09268.12%
▷ Protected methods1287.99%
▷ Private methods38323.89%
Functions137
▷ Named functions13699.27%
▷ Anonymous functions10.73%
Constants161
▷ Global constants11470.81%
▷ Class constants4729.19%
▷ Public constants47100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
23 PNG files occupy 0.19MB with 0.11MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/images/style-select/accordion/style2.png14.50KB4.80KB▼ 66.90%
assets/images/style-select/header-styles/header5-large.png10.80KB5.59KB▼ 48.28%
assets/images/style-select/header-styles/header1-large.png11.19KB5.81KB▼ 48.11%
freemius/assets/img/addons-for-elementor.png31.70KB9.52KB▼ 69.97%
assets/images/style-select/header-styles/header7.png6.67KB3.64KB▼ 45.52%