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 paid-tier members message for free. Useful for monetized communities, paid expert advice platforms, and gamified engagement.

Better Messages Points Systems settings — GamiPress provider selected with per-role New Message Pricing grid populated

What it adds#

  • Charge points per message sent
  • Charge points per new conversation started
  • Charge points per call minute of voice/video call duration
  • Per-role pricing — different rates for free / pro / admin
  • Per-conversation-type charging — private threads, groups, and chat rooms can be priced independently
  • Inline balance display in the messenger — up to six placements
  • 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, Better Messages queries the user's point balance from MyCred or GamiPress (whichever is configured). If the role's configured cost is less than or equal to the balance, the message sends and the cost is deducted via the charge_for_message action. If not, the send is rejected and the configured Insufficient Balance Message is shown.

ActionOutcome
User sends message in existing thread"New Message Pricing" deducted; message sends
User starts a new conversation"New Conversation Pricing" deducted; thread cost applies in addition to the per-message cost
User places a voice or video call"Private Call Pricing" deducts per minute of confirmed call traffic; first minute charged at start
User's balance drops below one more minute mid-callCall ends gracefully with the configured Insufficient Balance During Call message; no charge taken for the partial minute
User has insufficient balance to start a messageSend blocked; user sees the configured error
Admin sends a messageBypassed by default if admin's role has 0 cost configured

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

Same UI on both providers#

GamiPress and MyCred share a single Points System UI in Better Messages → Settings → Integrations → Points Systems. Switching providers swaps the per-role pricing tables, log entry tags, and balance integration — the structure of the settings panel stays identical.

Better Messages Points Systems settings — MyCred provider selected with the same per-role New Message Pricing grid and MyCred-specific log entry tags

Per-call billing#

Voice and video calls are priced separately under Private Call Pricing. The rate is per call minute (not per call), with the first minute charged immediately when the call connects. If the caller can't afford one minute up front, the call is blocked with the Cannot Start Call Message.

Private Call Pricing section — per-role per-minute rates for voice and video calls, with Cannot Start Call and Insufficient Balance During Call messages
info

Per-call billing requires the WebSocket version — voice and video calls are not available in the free (AJAX) version.

Balance display in the messenger#

The user's current balance can be shown inline inside the messenger in up to six placements (toggled in the Balance Display section): in the conversations header, above or below the conversations list, in the user menu and its popup, and inside the reply form. Each placement is an independent toggle and the balance number links to a configurable Balance Page URL (typically a WooCommerce points-top-up product or a custom checkout).

Messenger UI showing the user balance pill in the user menu (bottom-left) and inside the reply form area (next to the message input)

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 N messages/day from earned points; paid users unlimited

How to enable#

Navigate to WP Admin → Better Messages → Settings → Integrations → Points Systems and select either MyCred or GamiPress as the Points Provider.

  • Point Type — which point type (from your points engine) to charge against
  • New Message Pricing — per-role cost to send a message
  • New Conversation Pricing — per-role cost to start a new conversation
  • Private Call Pricing — per-role cost per minute of voice or video call (WebSocket version)
  • Conversation Types — which contexts the charge applies to (Private Conversations / Chat Rooms / Group Chats)
  • Insufficient Balance Message — custom text shown when a user lacks points
  • Balance Display — six toggles to surface the balance pill inside the messenger
  • Balance Page URL — where the balance pill links to (top-up product or checkout)
info

The MyCred or GamiPress integration only appears when the respective plugin is installed and active. AI Chat Bots have their own per-bot pricing — general message/conversation pricing is automatically excluded for AI bot conversations.

Frequently asked questions#

Can users see their current point balance inside the messenger?#

Yes — balance display is built into Better Messages with up to six placements (Chat header, threads list top, threads list bottom, user menu, user menu popup, reply form area). Toggle them under Balance Display and set the Balance Page URL to a checkout or top-up product to make the balance pill clickable.

How is per-call billing handled mid-call?#

The first minute is charged at call start (the check_call_balance filter blocks the call if the caller can't afford that minute). Then charge_call_usage runs once per confirmed minute. If the balance drops below one more minute, the call ends gracefully with the Insufficient Balance During Call message — no charge is taken for the partial minute that would have pushed the balance negative.

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. AI Chat Bots additionally have their own per-bot pricing configuration that overrides the general per-message rate inside AI bot conversations.

Can group conversations have different costs from private threads?#

Yes. The Conversation Types checkbox set under each charge type (New Message / New Conversation) lets you enable charging only in selected contexts — Private Conversations, Chat Rooms, or Group Chats. A typical monetized-DM configuration enables charging only on Private Conversations so group chatter stays free.

Will the point cost prevent guest messaging?#

Guests don't have point accounts, so they aren't charged — the per-role grid includes a separate Guests row that you can set independently (typically 0 to allow them, or block them via the role-based access settings).

See also#