Skip to main content

Pay-to-Message via MyCred / GamiPress

Better Messages integrates with the two leading WordPress point systems — MyCred and GamiPress — to charge users points for sending messages, starting new conversations, or placing voice/video calls. Pricing is per-role, so free-tier members might pay more (or be blocked) while premium members message for free. Useful for monetized communities, paid expert advice platforms, and gamified engagement.

What it adds#

  • Charge points per message sent
  • Charge points per new conversation started
  • Charge points per minute of voice/video call duration
  • Per-role pricing — different rates for free / pro / admin
  • Custom error messages when a user's balance is insufficient
  • Works identically with MyCred or GamiPress (pick whichever you already use)
  • Real-time balance check — message blocked before send if balance is too low

How it works#

When a user submits a message, the plugin queries the user's point balance from MyCred or GamiPress (whichever is active). If the configured cost ≤ balance, the message sends and the cost is deducted. If not, the send is rejected with the configured error message.

ActionOutcome
User sends message in existing thread"Points Per Message" deducted; message sends
User starts a new conversation"Points Per New Conversation" deducted; thread + first message both deduct (if both costs configured)
User places a voice/video call"Points Per Call Minute" deducts per minute of call duration
User has insufficient balanceSend blocked; user sees the configured error + their current balance
Admin sends a messageBypassed by default if admin's role has 0 cost configured

Per-role pricing means a "Free Tier" role might pay 10 points per message while a "Pro Member" role pays 0 — implementing a paid-messaging upsell directly in the chat UX.

When to use it#

Use casePattern
Expert consultation platformCharge users to message verified experts; experts message free
Fan / creator communityFans pay to DM the creator; creator replies free
Premium content gatingPay to start a conversation about a paid resource
Engagement gamificationCost is symbolic (1 point) — users earn points via activity, spend on messaging
Limit messaging on free tierFree users get 10 messages/day from earned points; paid users unlimited

How to enable#

Navigate to WP Admin → Better Messages → Settings → Integrations → MyCred (or GamiPress).

  • Points Per Message — Cost to send a message (per-role configurable)
  • Points Per New Conversation — Cost to start a new conversation
  • Points Per Call Minute — Cost per minute of voice/video call
  • Error Messages — Custom text shown to users with insufficient points
info

The MyCred or GamiPress integration tab only appears when the respective plugin is installed and active.

Frequently asked questions#

Can users see their current point balance in the chat UI?#

Not by default — balances live inside the MyCred / GamiPress UI. Most sites pair this with the Mini Widgets → Points balance display (which is built-in: see the mini widgets feature page) to surface the user's balance next to the chat trigger.

What happens during a multi-minute call if the user runs out of points mid-call?#

Call usage is charged after the call ends based on the recorded duration. If the user can't afford the next minute's increment, future calls are blocked at start time rather than mid-call.

Does the cost apply to AI bot replies?#

No. The cost applies to the user's outgoing message, not the bot's reply. Users pay to ASK; the AI's response is free of point-cost.

Can group conversations have different costs?#

The cost-per-message setting is global per user-role. To vary by context, hook the better_messages_points_message_charge_rate filter and return a different rate based on the thread id ($thread_id) or sender role.

Will the point cost prevent guest messaging?#

Guests don't have point accounts, so they can't be charged — typically you'd either exclude guests from the cost (via role check) or block them from messaging entirely on a paid-only site.

See also#