78% easyjobs

Code Review | easy.jobs- Best Recruitment Plugin for Job Board Listing, Manager, Career Page for Elementor & Gutenberg

WordPress plugin easy.jobs- Best Recruitment Plugin for Job Board Listing, Manager, Career Page for Elementor & Gutenberg scored78%from 54 tests.

About plugin

  • Plugin page: easyjobs
  • Plugin version: 2.4.5
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.0-6.4
  • WordPress version: 6.3.1
  • First release: Nov 20, 2019
  • Latest release: Nov 30, 2023
  • Number of updates: 84
  • Update frequency: every 17.5 days
  • Top authors: wpdevteam (57.14%)Asif2BD (25%)re_enter_rupok (20.24%)

Code review

54 tests

User reviews

18 reviews

Install metrics

6,000+ active /189,600 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
Install script ran successfully

Server metrics [RAM: ▲1.57MB] [CPU: ▲8.07ms] Passed 4 tests

Analyzing server-side resources used by easy.jobs- Best Recruitment Plugin for Job Board Listing, Manager, Career Page for Elementor & Gutenberg
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /5.08 ▲1.6249.45 ▲9.39
Dashboard /wp-admin4.91 ▲1.6056.17 ▲8.66
Posts /wp-admin/edit.php4.96 ▲1.6056.87 ▲11.96
Add New Post /wp-admin/post-new.php7.43 ▲1.54100.86 ▲2.27
Media Library /wp-admin/upload.php4.77 ▲1.5450.05 ▲17.67

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

A short overview of filesystem and database impact
This plugin installed successfully
Filesystem: 154 new files
Database: no new tables, 8 new options
New WordPress options
widget_recent-comments
theysaidso_admin_options
easyjobs_version
easyjobs_wp_pages
can_compress_scripts
db_upgraded
widget_theysaidso_widget
widget_recent-posts

Browser metrics Passed 4 tests

easy.jobs- Best Recruitment Plugin for Job Board Listing, Manager, Career Page for Elementor & Gutenberg: an overview of browser usage
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,982 ▲22013.83 ▼0.5210.17 ▲8.5142.53 ▼2.03
Dashboard /wp-admin2,259 ▲855.53 ▼0.0592.65 ▼9.4876.87 ▲34.69
Posts /wp-admin/edit.php2,182 ▲822.12 ▲0.1140.35 ▲3.0039.26 ▲3.69
Add New Post /wp-admin/post-new.php1,591 ▲6218.60 ▼4.66678.65 ▲25.3447.87 ▼2.93
Media Library /wp-admin/upload.php1,479 ▲794.19 ▼0.0597.09 ▼1.0176.41 ▲34.81

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
These items require your attention
  • This plugin does not fully uninstall, leaving 8 options in the database
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • widget_recent-posts
    • db_upgraded
    • easyjobs_version
    • widget_recent-comments
    • can_compress_scripts
    • easyjobs_wp_pages

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
The smoke test was a success, however most plugin functionality was not tested

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 take a closer look at the following
  • 8× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/easyjobs/admin/partials/easyjobs-candidate-details.php
    • > /wp-content/plugins/easyjobs/public/partials/classic/details.php
    • > /wp-content/plugins/easyjobs/admin/partials/easyjobs-add-new.php
    • > /wp-content/plugins/easyjobs/public/partials/default/details.php
    • > /wp-content/plugins/easyjobs/public/partials/elegant/landing.php
    • > /wp-content/plugins/easyjobs/admin/partials/easyjobs-react-layout.php
    • > /wp-content/plugins/easyjobs/public/partials/elegant/details.php
    • > /wp-content/plugins/easyjobs/public/partials/classic/landing.php
  • 29× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Notice
      Undefined variable: login_view in wp-content/plugins/easyjobs/admin/partials/easyjobs-admin-landing.php on line 129
    • > PHP Warning
      require(EASYJOBS_ADMIN_DIR_PATH/partials/easyjobs-admin-header.php): failed to open stream: No such file or directory in wp-content/plugins/easyjobs/admin/partials/easyjobs-dashboard-display.php on line 19
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_url() in wp-content/plugins/easyjobs/admin/partials/easyjobs-admin-display.php:22
    • > PHP Fatal error
      Uncaught Error: Class 'Easyjobs_Helper' not found in wp-content/plugins/easyjobs/admin/partials/easyjobs-admin-header.php:12
    • > PHP Notice
      Undefined variable: ej_is_search in wp-content/plugins/easyjobs/public/partials/elegant/list.php on line 10
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_url() in wp-content/plugins/easyjobs/admin/partials/easyjobs-admin-landing.php:136
    • > PHP Warning
      Use of undefined constant EASYJOBS_ADMIN_DIR_PATH - assumed 'EASYJOBS_ADMIN_DIR_PATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/easyjobs/admin/partials/easyjobs-pipeline-display.php on line 6
    • > PHP Fatal error
      Uncaught Error: Class 'PriyoMukul\\WPNotice\\Utils\\Base' not found in wp-content/plugins/easyjobs/admin/includes/Notice/Dismiss.php:9
    • > PHP Warning
      require(EASYJOBS_ADMIN_DIR_PATH/partials/easyjobs-admin-header.php): failed to open stream: No such file or directory in wp-content/plugins/easyjobs/admin/partials/easyjobs-all-candidates.php on line 17
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/easyjobs/admin/customizer/output-css.php:71

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
Please fix the following attributes:
  • Tags: There are too many tags (15 tag instead of maximum 10)
The official readme.txt is a good inspiration

easyjobs/easyjobs.php Passed 13 tests

The main PHP file in "easy.jobs- Best Recruitment Plugin for Job Board Listing, Manager, Career Page for Elementor & Gutenberg" ver. 2.4.5 adds more information about the plugin and also serves as the entry point for this plugin
84 characters long description:
Easy solution for the job recruitment to attract, manage & hire right talent faster.

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
No dangerous file extensions were detected34,754 lines of code in 116 files:
LanguageFilesBlank linesComment linesLines of code
PHP682,6653,08031,515
CSS15231721,791
JavaScript132371311,300
SVG1900147
JSON1001

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
Everything seems fine, there were no complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.41
Average class complexity30.24
▷ Minimum class complexity1.00
▷ Maximum class complexity168.00
Average method complexity3.65
▷ Minimum method complexity1.00
▷ Maximum method complexity40.00
Code structure
Namespaces2
Interfaces0
Traits2
Classes40
▷ Abstract classes12.50%
▷ Concrete classes3997.50%
▷ Final classes12.56%
Methods452
▷ Static methods11124.56%
▷ Public methods37683.19%
▷ Protected methods153.32%
▷ Private methods6113.50%
Functions26
▷ Named functions1765.38%
▷ Anonymous functions934.62%
Constants22
▷ Global constants1881.82%
▷ Class constants418.18%
▷ Public constants4100.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
20 PNG files occupy 0.40MB with 0.14MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/assets/img/icon-6.png2.72KB1.90KB▼ 30.10%
admin/assets/img/placeholder-analytics.png97.23KB30.99KB▼ 68.13%
admin/assets/img/icon-5.png2.67KB1.93KB▼ 27.75%
admin/assets/img/share_jobs.png0.51KB0.42KB▼ 17.57%
admin/assets/img/icon-3.png2.60KB1.85KB▼ 28.89%