Developer Guide - Overview
WP Career Board Pro is built as an extension of WP Career Board
(Free), not a fork. Pro extends Free through Free’s hooks. The runtime guard
(wcbp_free_active()) makes sure Pro degrades gracefully when
Free is deactivated.
Use this guide when:
- You’re writing an addon that consumes Pro features (resume builder, application kanban, AI hiring tools, credit SDK).
- You want to see how Pro and Free work together.
- You’re writing a custom credit adapter or payment gateway.
For Free-side dev surface (the hooks, REST endpoints, and CLI commands every site is built on), start with the Free developer guide (see the WP Career Board docs).
Free/Pro coupling contract
Section titled “Free/Pro coupling contract”Pro extends Free through four rules. The check script
(bin/architecture-checks.sh) enforces A1-A3; A4 is enforced in code review:
| ID | Title | What it guards |
|---|---|---|
| A1 | Lockstep version | Pro and Free keep the same version number in their plugin headers, so a half-updated install shows up in the check. |
| A2 | Dependency guard | Pro defines wcbp_free_active() and uses it to gate boot. Deactivating Free does not fatal Pro. |
| A3 | REST namespace shared, paths disjoint | Both register under wcb/v1; Free and Pro routes never collide. |
| A4 | No source modification | Pro hooks Free via documented filters only. Never patches Free’s classes. |
If you’re shipping your own Pro-side addon, follow the same invariants - they’re the operational contract that lets Pro and the addon coexist without one breaking the other.
Architecture at a glance
Section titled “Architecture at a glance”| Layer | Where | Purpose |
|---|---|---|
| Blocks | blocks/<name>/render.php + view.js |
Pro blocks such as kanban, alerts, resume builder and search, credit balance, AI chat search, and job and resume maps |
| REST API | api/endpoints/class-*-endpoint.php |
Pro routes under wcb/v1/* extending Free’s WCB\Api\RestController (via Pro’s WCB\Pro\Api\ProRestController); see the REST API reference |
| Modules | modules/<area>/ |
Pro features, one folder each, for example ai, alerts, boards, credits, fields, maps, pipeline, push, resume |
| SDK | libs/wbcom-credits-sdk/ |
Wbcom Credits SDK (bundled in libs/, not vendor/, so it ships in release zips). Adapters: WooCommerce, WC Subscriptions, WC Memberships, PMPro, MemberPress. Gateways: Stripe, PayPal |
| Core | core/class-*.php |
Lifecycle: ProInstall, ProPlugin, License, FreeCoordination |
Contents
Section titled “Contents”| Doc | What’s inside |
|---|---|
| 02-extending-free.md | The canonical Pro-extends-Free contract - dependency guard, REST sharing, lockstep |
| 03-hooks-reference.md | Pro’s own actions and filters |
| 04-credits-sdk.md | The Wbcom Credits SDK - registration, consumers, adapters, gateways, ledger |
| 05-ai-providers.md | The AI hiring tools - REST endpoints, provider drivers, and how to add your own provider |
| 06-rest-api-reference.md | The Pro REST routes: method, who may call it, parameters |
| 07-shortcodes.md | The Pro shortcodes and their attributes |
Working against Pro from a third-party plugin
Section titled “Working against Pro from a third-party plugin”To build an addon that depends on Pro:
- Declare Pro as a
Requires Plugins:header in your main file. - Gate your runtime hooks behind a
defined( 'WCBP_VERSION' )check. - Verify your minimum Pro version with
version_compare()againstWCBP_VERSION. - Hook into Pro’s documented actions/filters from 03-hooks-reference.md. Never reach into internal classes - those aren’t part of the public contract.
Pro’s bin/architecture-checks.sh (run with composer arch-checks) is a working example of a check script you can copy for your own addon.

