- Escape URLs in two sprintf href templates with esc_url() (#2996)
- Validate attachment ownership when reusing a company logo by ID (#2995)
- Honor restrictive filter_post_status=publish for logged-out visitors (#2994)
Apply the View Job Capability to WordPress search and oEmbed output.
Apply the View Job Capability to the REST search endpoint (#2984)
Fail closed correctly when an author filter resolves to no valid IDs (#2983)
Apply the View Job Capability to job listing feeds (#2982)
Enforce listing submission limit when publishing a previewed listing (#2981)
Restore PHP 8.4 test coverage — modernise bootstrap error handler (#2970)
Fix: Promote button data-href attribute now correctly quoted in job listings table.
Fix: Promote URL in inline script now escaped with esc_js().
Author filter follow-up: centralize parsing, close AJAX array bypass (#2958)
Add square-format hint and configurable max size for company logo uploads (#2957)
“Remove “See what’s new in 2.3″ from Job Statistics Banner”
New: The [jobs] shortcode now supports an author attribute to filter listings by user ID (e.g. [jobs author="42"] or [jobs author="1,2,3"])
Fix Job Dashboard actions menu on Safari (#2947)
Harden submit-form session cookies (#2945)
Fixes a REST API information disclosure where the body, excerpt, and existence of listings restricted by view-capability were exposed to denied viewers. Restricted listings now return 404 indistinguishable from a missing post, including HEAD probes and listings that are also password-protected.
Fixes a data-loss bug where editors opening a password-protected listing in the block editor would save empty meta values (location, company name, application target).
Fixes a series of information disclosure issues affecting password-protected and capability-restricted job listings.
Harden stats AJAX endpoint input validation and rate limiting (#2938)
Company logo uploads now accept WebP images by default
New filter job_manager_company_logo_allowed_mime_types allows customizing allowed file types for the company logo field
The salary currency field on the job submission form now correctly reflects the configured default currency in its placeholder and helper text.
Filled job listings are no longer exposed via the REST API.
Job categories are now included in the job RSS feed XML output.
Added featured=true query parameter support to the job RSS feed to allow filtering by featured listings only.
Fixed PHP 8+ undefined array key warning in the widget caching methods.
Updated Twitter profile links to use the new x.com domain and updated related labels to “X / Twitter” to reflect the platform rebrand.
Added a Settings link to the plugin action links on the Plugins screen for quicker access to plugin settings.
Fix structured data output for password-protected listings (#2913)
Update actions/cache to use v4 (#2896)
Fix job dashboard actions menu in Safari
Fix PHP 8.3 support
Remove support for Internet Explorer 11
Fix WordPress 6.6 compatibility
Fix classic editor support for job listings
New: Add support for reCAPTCHA v3
Security Fix: Check if the user can manage resumes before bulk-approving
Security Fix: Add a nonce check to the resume page setup wizard
New: Add job statistics about how many times the job was sent out in alert e-mails
Dev: Add alert modal logged out version as template
Add application data to job statistics
Add support for ReCAPTCHA version 3
New!
Add Google reCAPTCHA v3 support
Improvements:
Change: Redesign job dashboard
Change: Allow job duplication in the job dashboard for any job
Security: Don’t return unpublished jobs only in the promote job endpoint
Fix renewals for WordPress.com licenses
Fix issues with rich e-mails on some e-mail providers
Fix e-mail styling in some e-mail clients
Fix expiry date not showing up in backend editor
Fix: Add fallback to date format in case it’s missing
Fix: Prevent past dates from being used in the datepicker
For developers:
Add filter to disable promoted jobs
Add placeholder options to select field
Job dashboard template has been rewritten
Fix jobs not being filtered by date for alert e-mails (#467)
Fix: Update alert e-mail schedule when alert is edited in the admin screen (#469)
Fix empty alert duration causing alerts to expire right away
Fix “Manage Alerts” and “Unsubscribe” links in alert e-mails for guest users
Fix company name, logo, location not showing in alert e-mails by default
Fix job tags that the user searches for not being part of the alert
Add a ‘No alerts found’ state to the My alerts page
Show alert frequency in my alerts list
Fix alert form permission checkbox
Fix error when job types are not set
Fix issue with rich e-mails on some e-mail providers (#2753)
Fix: ‘featured_first’ argument now works when ‘show_filters’ is set to false.
Improve checkbox and radio inputs for styled forms
Update the ‘School’ string to ‘Institution’ and ‘Qualification’ to ‘Certification’
Fix: Do not return current directory when there are no resumes attached
Update settings page header
New: HTML e-mails. The Alert e-mails are now formatted. Brand color can be customized, as well as whether company name/logo/location should be displayed for the jobs.
New: Customize which job fields can be used for setting up alerts.
New: Add Alert modal: Instead of navigating to a new page with a form, alerts can be added right from the job listing page. Clicking Add Alert opens a modal to create an alert for the current search.
Fix: Fix shortcode handler only running in pages
Fix: Fix job alert pre-filling data when clicking New Alert
Note: WP Job Manager version 2.2.1 is required for this release.
Developer notes:
Alerts switched to the e-mail system of the core plugin
New HTML variants for the alert and confirmation e-mails
Template updates for the shortcode and new templates for e-mails and the alert modal
General code refactoring
Accountless alerts functionality uses a new guest user concept, implemented in the core plugin. These users are stored as a CPT, and authenticate to manage their alerts via tokens in the URL
If you customize Job Alerts templates in a theme, the templates will need to be updated to work with the new features. If you integrate with the add-on in another way, nothing should break, but please test and check if any code needs to be updated.