Tiered credit pricing
You can charge different credit costs to different members. Premium members can post jobs free, a discounted tier can pay half, and everyone else pays the full price.
Tiers come from a BuddyPress member type, a Paid Memberships Pro level, or a MemberPress membership. This works on sites that use only Paid Memberships Pro or MemberPress, without BuddyPress.
How the price is worked out
Section titled “How the price is worked out”Each tier has a percentage multiplier applied to the base cost:
100is full price.50is half price.0is free.- A number above 100 marks the price up.
The final cost is the base cost times the multiplier, divided by 100, rounded, and never below 0.
The base cost is:
- For a job post, the credit cost of the board the job is posted to. You can see it in the Credit Cost column of the Boards list.
- For a featured upgrade, the Featured upgrade amount under Career Board > Settings > Credits.
The price is worked out for the job’s author, not for the moderator who approves it.
If a member belongs to more than one listed tier, the lowest multiplier wins. If the base cost is 0, or the member is not in any listed tier, they pay the base cost.
Where to set the rules
Section titled “Where to set the rules”There is no settings screen for tier pricing. Save the rules in the option wcbp_credit_cost_matrix, for example from a small plugin or with WP-CLI. The Integrations screen does not cover it.
The option is a list of rules per charge type (job_post or featured_upgrade), then per source, then per tier:
| Source | Tier key |
|---|---|
bp_type |
BuddyPress member type slug |
pmpro |
Paid Memberships Pro level ID (a number) |
memberpress |
MemberPress membership ID (a number) |
update_option( 'wcbp_credit_cost_matrix', array( 'job_post' => array( 'bp_type' => array( 'mentor' => 0, // free 'company' => 100, // full price 'staff' => 25, // a quarter ), 'pmpro' => array( 2 => 0, // level 2 posts free 3 => 50, // level 3 pays half ), 'memberpress' => array( 7 => 0, ), ), 'featured_upgrade' => array( 'pmpro' => array( 2 => 0, // level 2 features jobs free ), ),) );A member with PMPro level 3 (50) and the mentor member type (0) pays 0, because the lowest multiplier wins.
Example: free posting for paid members
Section titled “Example: free posting for paid members”- Set the board’s credit cost to your full price, for example 10.
- Add a
0multiplier for each paid level in thejob_postrules.
Members in a listed tier post free. Everyone else pays 10.
Override the price in code (developers)
Section titled “Override the price in code (developers)”The wcbp_consumer_cost filter receives the cost, user ID, item ID, board ID and the charge type (job_post or featured_upgrade). The built-in tier rules run at priority 10, so a later priority overrides them:
add_filter( 'wcbp_consumer_cost', function ( $cost, $user_id, $item_id, $board_id, $consumer ) { if ( 'job_post' === $consumer && 42 === $user_id ) { return 10; // always full price for user 42 } return $cost;}, 20, 5 );
