v1.2.0 Latest
New
- Single-page resume form (wcb/resume-form-simple block, [wcbp_resume_form_simple] shortcode). Captures headline, summary, top skills, years of experience, location, open-to-work, and profile photo. Sits alongside the existing multi-section resume builder.
- BuddyPress group-scoped job boards. Every BP group automatically gets a Jobs tab on the group nav listing only that group's jobs. A linked wcb_board is auto-created per group and titles stay in sync.
- BuddyPress activity stream entries. Approved jobs post to the wcb component (and into the group stream when the job lives on a group board). Hired candidates get a celebratory activity entry too.
- BuddyPress notifications. New applications appear in the employer's BP bell; application status changes appear in the candidate's bell with localised labels.
- Member directory filters at /members/. Chips for "Open to work" (members with a public resume marked open) and "Hiring" (members with at least one published job). Filters write directly to BP_User_Query.
- Tiered credit pricing matrix. Configure per BP member type, PMPro level, or MemberPress membership how many credits each user pays for posting jobs or upgrading to Featured. Cheapest applicable tier wins.
- Group-scoped job moderation. BP group admins and mods can approve / reject jobs posted to their group's board without holding the global wcb_moderate_jobs capability.
- Featured upgrade credit consumer. Employers can spend credits to upgrade an existing job to Featured (separate from the posting cost). Pairs with Free's daily cron that auto-clears _wcb_featured after the configured duration.
- Candidate notifications on application status changes. New component action wcb_app_status_<status> flows into the BP notification bell with localised verbs.
- Custom resume fields. Declarative wcb_resume_form_fields filter on the resume builder and the new single-page resume form. Same group / field schema as Free's wcb_job_form_fields. New wcb_resume_form_initial_state filter for state extension.
- Pro-side shortcodes registered for page-builder compatibility: [wcbp_resume_form_simple], [wcbp_resume_archive], [wcbp_credit_balance], [wcbp_job_alerts].
- Pro-only hook reference at docs/HOOKS.md, cross-linking Free's HOOKS.md as the source of truth for the shared wcb_* filter family.
- Admin Boards tab now paginates at 20 boards per screen and ships a name search box with a Clear link. The previously flat numberposts=>-1 table is unusable past a screenful of boards.
- Open to Work and Featured Candidates blocks now render the resume-form profile photo (falls back to an initial-letter chip, never BuddyPress / Gravatar), plus a location row and a years-of-experience badge computed from the earliest experience entry.
Improve
- Bumped vendored wbcom-credits-sdk to v1.3.0. Server-authoritative pricing resolver closes wbcom-credits-sdk issue #2. Direct-gateway checkout no longer accepts client-supplied price_cents. Career Board Pro is unaffected because all credit purchases route through the WooCommerce / WC Subscriptions / WC Memberships / PMPro / MemberPress adapter paths.
- Job map block now reads the new {jobs, total, pages, has_more} envelope from /wcb/v1/jobs while remaining backwards-compatible with older Free installs during the upgrade window.
- Pro CSS uses Free's expanded design token system. Reign, BuddyX, or any theme overriding --wcb-primary now restyles every block in both plugins automatically.
- Local CI gate via npm run ci. Every commit runs PHP lint, WPCS, and PHPStan before pushing. GitHub Actions removed from Pro by design.
- Open to Work and Featured Candidates blocks now fall back to skill values stored in _wcb_resume_skills meta when the wcb_resume_skill taxonomy is empty for a given resume, so candidates whose sync hook never ran still show pills.
- Admin Credits tab now shows a warning banner when a Purchase URL is set but no product is mapped to a positive credit amount, surfacing the misconfiguration that hides the Buy Credits button on the credit-balance block.
- Open to Work block randomises its candidate order so the widget rotates exposure across everyone open to work, not just the most recent.
Fix
- Pro setup wizard now auto-triggers on first activation. The wcb_board content fallback that was suppressing the activation redirect has been removed.
- BuddyPress group Jobs tab now lists only that group's jobs. The listing block was receiving the wrong attribute name and the board filter never fired.
- BuddyPress group tabs now load the shared frontend stylesheets (wcb_page_needs_frontend_assets filter extended to bp_is_group()) so the .wcb-hidden Interactivity utility resolves. Pre-1.2.0 the Alert me / Alert saved buttons stacked visibly and "Load more / Loading..." artefacts showed on empty group Jobs tabs.
- Boards picker in the job form hides boards whose linked BuddyPress group the current employer is not a member, mod, or admin of. Site admins still see every board.
- Credit ledger schema migration. Renamed employer_id to user_id and post_id to item_id to match the canonical wbcom-credits-sdk schema. Pre-1.2.0 the SDK queries silently failed with "Unknown column 'user_id'" and returned a balance of zero. One-shot ALTER TABLE migration runs on activation; existing data is preserved.
- Buy Credits link on the credit-balance block now hides when a Purchase URL is set but no Credit Mapping points at a positive amount. Pre-fix an employer could complete the order and the adapter would top up zero credits.
- Resume edit screen no longer fatals when a legacy resume has a non-array entry in a section meta. render_section_row now coerces malformed entries to empty arrays before the strict array $entry signature is reached.
- my_applications block / [wcbp_my_applications] shortcode now renders as a semantic table with Job / Status / Submitted column headers, an Applicant column when used in employer context, and a mobile card-layout fallback under 480px container width.
- Boards tab pager URL now builds explicitly from admin_url('admin.php') + array args with the %#% placeholder concatenated outside add_query_arg(), so tab=boards is always preserved and the placeholder cannot get URL-encoded on any WP / PHP combination.
Dev
- Pro install no longer creates wcb_credit_ledger itself. The SDK's Ledger::maybe_create_table() is the single source of truth for the schema.
- Convention codified - wcb_* hooks are the stable customer-facing extension surface (work in Free or Pro), wcbp_* hooks are Pro-internal and may change between releases.
- New public method AbstractEmail::test_send() (Free) gives Pro extensions a clean bridge for previewing disabled email templates without reaching for ReflectionClass.
Compat
- Requires WP Career Board (Free) 1.2.0 or newer. Install both updates together.