Skip to content

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.

Each tier has a percentage multiplier applied to the base cost:

  • 100 is full price.
  • 50 is half price.
  • 0 is 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.

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.

  1. Set the board’s credit cost to your full price, for example 10.
  2. Add a 0 multiplier for each paid level in the job_post rules.

Members in a listed tier post free. Everyone else pays 10.

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 );