84% wp-job-openings

Code Review | WP Job Openings - Job Listing, Career Page and Recruitment Plugin

WordPress plugin WP Job Openings - Job Listing, Career Page and Recruitment Plugin scored84%from 54 tests.

About plugin

  • Plugin page: wp-job-openings
  • Plugin version: 3.4.3
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.8-6.3.1
  • WordPress version: 6.3.1
  • First release: Aug 15, 2018
  • Latest release: Sep 16, 2023
  • Number of updates: 86
  • Update frequency: every 21.6 days
  • Top authors: awsmin (100%)

Code review

54 tests

User reviews

129 reviews

Install metrics

30,000+ active /274,199 total downloads

Benchmarks

Plugin footprint 82% from 16 tests

Installer Passed 1 test

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

Server metrics [RAM: ▲0.39MB] [CPU: ▲2.00ms] 75% from 4 tests

A check of server-side resources used by WP Job Openings - Job Listing, Career Page and Recruitment Plugin
The following require your attention
  • CPU: You should keep total CPU usage under 500.00ms (currently 649.47ms on /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-add-ons)
PageMemory (MB)CPU Time (ms)
Home /3.68 ▲0.2239.53 ▲0.55
Dashboard /wp-admin3.74 ▲0.4054.95 ▼2.43
Posts /wp-admin/edit.php3.87 ▲0.5155.34 ▲9.27
Add New Post /wp-admin/post-new.php6.41 ▲0.5398.24 ▲2.12
Media Library /wp-admin/upload.php3.66 ▲0.4341.18 ▲7.74
Applications /wp-admin/edit.php?post_type=awsm_job_application3.7249.23
Overview /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-overview3.6939.58
New Opening /wp-admin/post-new.php?post_type=awsm_job_openings6.4188.89
Add-ons /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-add-ons3.69649.47
Setup /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-setup3.6840.63
Job Openings /wp-admin/edit.php?post_type=awsm_job_openings3.7240.65
Settings /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-settings3.9647.34

Server storage [IO: ▲2.73MB] [DB: ▲0.01MB] Passed 3 tests

Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 138 new files
Database: no new tables, 38 new options
New WordPress options
awsm_jobs_list_per_page
awsm_jobs_author_notification_subject
awsm_jobs_number_of_columns
awsm_current_appearance_subtab
awsm_jobs_filter
db_upgraded
awsm_jobs_insert_default_specs_terms
awsm_register_default_settings
widget_theysaidso_widget
awsm_permalink_slug
...

Browser metrics Passed 4 tests

A check of browser resources used by WP Job Openings - Job Listing, Career Page and Recruitment Plugin
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,070 ▲32413.78 ▼0.597.46 ▲5.7931.21 ▼10.43
Dashboard /wp-admin2,373 ▲1845.87 ▲0.94100.42 ▼7.2778.20 ▲36.43
Posts /wp-admin/edit.php2,202 ▲1102.03 ▲0.0237.43 ▼2.7933.92 ▼3.27
Add New Post /wp-admin/post-new.php1,626 ▲9318.10 ▼4.95687.05 ▲17.2459.33 ▼3.16
Media Library /wp-admin/upload.php1,498 ▲1104.25 ▲0.0499.93 ▲0.7089.32 ▲45.01
Applications /wp-admin/edit.php?post_type=awsm_job_application1,2952.5348.6351.34
Overview /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-overview1,5703.4863.2777.11
New Opening /wp-admin/post-new.php?post_type=awsm_job_openings6,46820.11910.00172.29
Add-ons /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-add-ons1,3912.6335.1141.55
Setup /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-setup1,0982.6233.8432.33
Job Openings /wp-admin/edit.php?post_type=awsm_job_openings1,3732.5340.2164.08
Settings /wp-admin/edit.php?post_type=awsm_job_openings&page=awsm-jobs-settings3,9443.9565.9766.07

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
You still need to fix the following
  • This plugin did not uninstall successfully, leaving 38 options in the database
    • widget_recent-comments
    • awsm_enable_job_filter_listing
    • awsm_jobs_filter
    • can_compress_scripts
    • awsm_jobs_insert_default_specs_terms
    • awsm_jobs_listing_view
    • awsm_jobs_author_notification_subject
    • awsm_jobs_notification_subject
    • awsm_jobs_upgrade_count
    • awsm_jobs_list_per_page
    • ...

Smoke tests 75% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Even though everything seems fine, this is not an exhaustive test

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
The following issues need your attention
  • 2× PHP files trigger server-side errors or warnings when accessed directly:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function wp_footer() in wp-content/plugins/wp-job-openings/inc/templates/theme-compat/footer.php:16
    • > PHP Fatal error
      Uncaught Error: Call to undefined function language_attributes() in wp-content/plugins/wp-job-openings/inc/templates/theme-compat/header.php:15

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser issues were found

Optimizations

Plugin configuration Passed 29 tests

readme.txt Passed 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
8 plugin tags: job board, job openings, jobs, wp job opening, careers page...

wp-job-openings/wp-job-openings.php Passed 13 tests

Analyzing the main PHP file in "WP Job Openings - Job Listing, Career Page and Recruitment Plugin" version 3.4.3
93 characters long description:
Super simple Job Listing plugin to manage Job Openings and Applicants on your WordPress site.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Good job! No executable or dangerous file extensions detected24,868 lines of code in 92 files:
LanguageFilesBlank linesComment linesLines of code
PHP528791,5328,332
JavaScript131,8629338,109
CSS17422966,740
SVG803879
JSON100790
XML10018

PHP code Passed 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity
Average complexity per logical line of code0.45
Average class complexity65.47
▷ Minimum class complexity7.00
▷ Maximum class complexity315.00
Average method complexity4.48
▷ Minimum method complexity1.00
▷ Maximum method complexity96.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes15
▷ Abstract classes00.00%
▷ Concrete classes15100.00%
▷ Final classes00.00%
Methods278
▷ Static methods6924.82%
▷ Public methods25892.81%
▷ Protected methods10.36%
▷ Private methods196.83%
Functions37
▷ Named functions3594.59%
▷ Anonymous functions25.41%
Constants6
▷ Global constants6100.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
14 PNG files occupy 0.11MB with 0.06MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/img/applications-analytics-chart.png25.87KB9.12KB▼ 64.75%
assets/img/ui-icons_888888_256x240.png6.94KB4.18KB▼ 39.78%
assets/img/ui-bg_glass_65_ffffff_1x400.png0.26KB0.09KB▼ 66.79%
assets/img/applications-by-status-chart.png29.50KB10.10KB▼ 65.75%
assets/img/ui-bg_glass_75_dadada_1x400.png0.32KB0.16KB▼ 50.46%