Abuja Digital Studio · Est. 2018
Start a Project
← All plugins
Live · v1.0.0 · Premium

OForum

Build a community that actually stays. OForum gives your WordPress site a real, threaded discussion board with votes, reactions, moderation, and a clean UX your members will love. No BuddyPress. No bloat. One plugin.

WP 6.0+PHP 8.0+3 CPTs · 2 taxonomies10 database tables
0Replies posted today
0Reports resolved < 24h
10Database tables
Lifetime updates
yourcommunity.com/forum
Community Forum
SC
How do I add custom fields to member profiles?
Support
Sarah Chen·2h ago
14
7
DT
Welcome to the OForum community 🎉
Announce
Dev Team·3d ago
62
23
MW
Feature request: dark mode for forum
Ideas
Marcus Webb·1d ago
38
11
AO
Bug report: email notifications not sending
Support
Aisha Okonkwo·6h ago
9
5
TR
Showcase: how I built a members-only community with OForum
Showcase
Tom Reyes·4d ago
47
19
Reply to thread
Start a new topic

Threaded discussions, not chaos.

Every reply is anchored to a specific post. Conversations stay coherent even when hundreds of members weigh in. Voting surfaces the signal from the noise.

  • Nested threading up to 4 levels deep
  • Full-text search across all rooms
  • Author badges, pinning, and locking
  • Rich emoji reactions on every post
Community Forum
How do I add custom fields to member profiles?
SC
2h ago
OP
I'm building a directory of local businesses using OForum's member system, and I need to add fields like 'Business Name', 'Website', and 'Location' to each member's profile. Has anyone done this? I saw something in the docs about meta fields but couldn't find a clear example. Any pointers would be super helpful!
MW
1h 45m ago
Yes! You can use the `oforum_user_meta_fields` filter hook. Add it to your theme's functions.php: add_filter('oforum_user_meta_fields', function($fields) { $fields[] = ['key' => 'business_name', 'label' => 'Business Name', 'type' => 'text']; return $fields; }); That'll add the field to the profile edit form automatically.
DT
1h 20m ago
Marcus nailed it. We're also shipping a UI for custom fields in v1.1 (no code required). For now the filter hook is the way to go. You can also set `type` to `url`, `textarea`, or `select` — see the docs at /docs/member-profiles.
SC
45m ago
This worked perfectly, thank you both! One note: I had to flush the permalink cache after adding the filter — the profile page 404'd until I did. Marking this solved.
Reply to thread
Start a new topic

Voting surfaces the best answers.

Members upvote the posts that genuinely helped them. The best replies float to the top automatically. No manual curation required. Watch the counts update live.

  • One-click upvote with instant toggle
  • Emoji reaction system with counts
  • Author reputation score (optional)
  • Sort threads by votes, time, or activity
Community Forum
Showcase: how I built a members-only community with OForum
TR
4d ago
OP
Six weeks ago I launched a paid membership community for indie game developers using OForum + MemberPress. I wanted to share what worked and what didn't. The short version: OForum handled 300 concurrent users without breaking a sweat. The integration took about 4 hours total. Member retention after 30 days is 82% — way better than I expected. Here's the full breakdown with screenshots.
MW
4d ago
This is exactly the kind of showcase I was hoping to see. 82% 30-day retention is exceptional — most membership communities struggle to hit 60%. Would love to know more about your onboarding flow. Did you do anything specific in the first 7 days to keep people engaged?
AO
3d ago
The MemberPress + OForum stack is something I'm considering for my community. How did you handle the member profile sync between the two plugins? Did you need custom code or is there a built-in integration?
TR
3d ago
Great questions! For onboarding: I send a 'welcome to the forum' email with a direct link to post their first intro in the General category. That first post creates a habit loop. For MemberPress sync: OForum has a built-in MemberPress connector under Settings → Integrations. Zero custom code needed.
Reply to thread
Start a new topic

Moderation that keeps quality up.

A built-in moderation dashboard gives your admins full visibility: flag queues, user reputation, bulk actions, and role-based permissions. Community quality on autopilot.

  • Flag queue with one-click approve/remove
  • User banning, warnings, and trust levels
  • Keyword and spam filter (regex-powered)
  • Full audit log for every moderator action
🛡️ Moderation Dashboard
Live
🚩
Flagged reply by @spamuser99
In: Bug Reports · Flagged by 3 members · 12m ago
🚩
New post pending review
In: Showcase · New member · 5m ago
👤
@sarah_chen reached Trust Level 3
124 posts · 98% positive · 2h ago
📌
Auto-pinned: “Welcome to OForum 🎉”
In: Announcements · Pinned by rule · 1d ago
2
In Queue
0
Banned Today
48
New Posts
312
Active Members

Look up a member.
See their reputation.

This is a UI simulation of OForum's built-in member lookup panel, showing you exactly what the tool looks and feels like inside your WP admin. When installed, it pulls live thread counts, reply counts, reputation scores, and room activity from the forum tables.

Look up a member.
Read the profile.

Simulated demo. Runs automatically as you scroll. The real plugin reads live data from your forum tables.

Demo simulation
Threads started·awaiting lookup
Replies posted·awaiting lookup
Reputation score·awaiting lookup
Top room·awaiting lookup

Everything community,
nothing extra.

One plugin. No external services unless you want them. No tracking pixels phoning home. Your data, your server, your rules.

// 30 features · 3 CPTs · 2 taxonomies · 10 tables
Forum rooms (of_room CPT)
Threads with parent room (of_thread CPT)
Replies threaded under threads (of_reply CPT)
Hierarchical categories (of_category)
Free-form tags (of_tag)
Thread types: discussion, question, announcement, showcase
Accepted-solution marking on question threads
Emoji reactions on every reply
Upvote / downvote on threads + replies
Bookmarked threads per user
Per-thread subscriptions
Per-room subscriptions
In-forum notification center with @mentions
Email digest cadence (immediate / daily / weekly)
Cron-batched digest delivery
Content reporting (spam, abuse, off-topic, duplicate)
Moderation queue with inline + bulk actions
Moderation audit log (of_mod_log)
Shadow ban + IP ban with expiry
Per-user rate limits (replies/min, threads/hour)
Spam filter (link caps + Akismet bridge)
4-tier trust levels, auto-recalculated per post
Support mode: staff badges, SLA labels, KB conversion
Private rooms with member roster (of_room_members)
Rich-text reply editor (option toggle)
Thread-stats cache for fast room listings
REST namespace: rooms, threads, replies, votes, bookmarks, reactions, search
Shortcodes: [oforum], [oforum_room], [oforum_thread]
OMembership XP + OMailer segment integrations
SEO: BreadcrumbList + DiscussionForumPosting schema, Yoast / SEO Framework sitemap
WordPress profile integration
WP-CLI commands for migration + maintenance

Click around.
It's all real.

Six interactive previews of the actual OForum admin. No screenshots; these are working mock-ups of what ships in the plugin.

Rooms

Top-level forum sections. Each room is a CPT, so capabilities, taxonomy, and SEO behavior all match the WordPress core post model.

8Total rooms
1,204Threads (all rooms)
9,418Replies (all rooms)
92%Active rooms · 7d
Active roomslive sample
RoomThreadsRepliesSubscribersLast active
#help3422,4184182m ago
#show-and-tell2181,94030214m ago
#bugs1841,21026634m ago
#feature-requests1629822411h ago
#tutorials986201883h ago

Threads

Discussion, question, announcement, and showcase thread types. Filter by room, type, taxonomy, or author. Bulk-pin or bulk-close from this view.

Replies posted · last 8 weeksgrowing
Recent threadsacross rooms
TitleRoomTypeReplies
How do I migrate from bbPress?#helpquestion14
Show & tell: typography-only theme#show-and-telldiscussion22
v1.1 ships next week#announcementsannouncement41
Pinned threads per room?#feature-requestsdiscussion9
Best caching layer for forums?#helpquestion18

Members

Forum activity per WordPress user: thread count, reply count, reputation, trust level, and last seen. Sort by any column.

2,418Active members · 30d
418New this month
62Trust level 3+
4Banned
Top membersby reputation
NameThreadsRepliesReputationTrust
Adaeze Okeke344184,820L3
Tunde Bello223623,940L3
Maryam Okafor182842,910L2
Chiamaka Nwosu141982,180L2
Ifeoma Eze111421,720L2

Moderation

Reports queue, audit log, and IP bans in one view. Click Simulate run to watch a report flow from filing to resolution.

Report filedMember flags a reply as spam. Report row inserted with status=pending.
Queue reviewModerator opens the queue, sees the original reply inline with the reason.
Action takenMod marks the reply as resolved, deletes the post, bans the IP for 30 days.
Audit loggedEvery action is written to the of_mod_log table with mod_id, action, and timestamp.
Pending reports3 pending
Reply #9214spampending
Reply #8918off-topicpending
Reply #8806harassmentpending

Reactions

Per-emoji counts per reply, stored in wp_of_reactions. Toggle is a single SQL UPSERT, indexed by user + reply + emoji.

14,820Total reactions
418Reactions today
8Emoji in default set
2.4Avg per reply
Top emoji this weekby usage
👍
thumbs up
this week4,218
🎉
party
this week2,940
🔥
fire
this week2,418
❤️
heart
this week1,820
👏
clap
this week1,418
🚀
rocket
this week982
💡
idea
this week612
😂
laugh
this week412

Settings

Forum-wide configuration: rich-text editor toggle, default subscription cadence, trust level thresholds, and emoji set.

Core settingslive sample
Rich-text reply editorof_rich_text_enabledon
Replies per pageof_replies_per_page25
Edit window (minutes)of_edit_window_minutes30
Trust level 1 (Member)of_trust_threshold_15 posts
Trust level 2 (Regular)of_trust_threshold_225 posts
Trust level 3 (Leader)of_trust_threshold_3100 posts
Akismet spam filterof_akismet_enabledopt-in
Reply rate limitof_rate_reply_per_min3 / min
Notification rulesper event type
EventIn-forumEmail
New reply on subscribed threadonon
Mention in thread or replyonon
Reaction on your replyonoff
Moderator reviewed your reportonon

bbPress charges for every feature.
OForum ships all of them.

bbPress core is free but thin. Reactions, voting, email digests, moderation queues, private rooms, and spam filtering all require paid add-ons from separate developers. BuddyPress is a full social network framework: overkill if forums are all you need. wpDiscuz starts free but the bundles run $120+.

bbPress + add-ons

Free core. Paid everything else.

bbPress gives you rooms and threads. Everything beyond that is a separate paid add-on, often from different developers with different release cycles.

bbPress · core forum
Emoji reactions · paid add-on
Upvote / downvote · paid add-on
Email digest notifications · paid add-on
Moderation queue + audit log · paid add-on
Private rooms · paid add-on
Spam filter + Akismet bridge · paid add-on
Thread types (Q&A / Announcements) · paid add-on
No built-in reactions or voting
No trust levels or rate limiting
No IP bans or moderation queue
Add-on costs grow with your needs
OForum

One plugin. Everything included.

Every feature ships in the single plugin. No BuddyPress dependency. No add-on shopping. Activate and your forum is complete.

OForum · rooms, threads, replies
Emoji reactions + upvote / downvote
Email digest · immediate / daily / weekly
Moderation queue, audit log, bulk actions
Private rooms with member roster
Spam filter + Akismet bridge
Thread types: Discussion / Q&A / Announcement
Trust levels, IP bans, per-user rate limits
No BuddyPress dependency
$69 once · all features, no add-ons
Inherits your existing WP theme
WP-CLI importer for bbPress migrations
bbPressBuddyPresswpDiscuzOForum
Rooms / categoriesBuilt in
Threads with repliesBuilt in
Taxonomy categories + tags on threadspartialnoBuilt in
Discussion / question / announcement / showcase thread typespaid add-onnopaid add-onBuilt in
Emoji reactions on repliesnonopaid add-onBuilt in
Upvote / downvote on threads + repliesnonopaid add-onBuilt in
Bookmarked threads per usernononoBuilt in
Per-thread + per-room subscriptionspaid add-onnoBuilt in
In-forum notification centernonopartialBuilt in
Email digest cadence (immediate / daily / weekly) with cron batchingpaid add-onnopartialBuilt in
Content reporting (spam / abuse / off-topic)noBuilt in
Moderation queue with audit log + bulk actionspaid add-onnopartialBuilt in
IP ban list with expirynononoBuilt in
Per-user rate limits (replies/min, threads/hour)nononoBuilt in
Spam filter (link caps + Akismet bridge)paid add-onnopartialBuilt in
Trust levels (4 tiers, auto-recalc on every post)nononoBuilt in
Support mode (staff badges, SLA labels, KB conversion)nononoBuilt in
Private rooms with member rosterpaid add-onpartialnoBuilt in
OMembership XP + OMailer segment integrationsnononoBuilt in
Rich-text reply editor (option toggle)noBuilt in
REST namespace (rooms / threads / replies / votes / bookmarks / search)partialpartialBuilt in
Shortcodes ([oforum], [oforum_room], [oforum_thread])Built in
BuddyPress dependency requirednoyesnoNo
Forum search across rooms + tagspartialBuilt in
SEO-friendly URLs + DiscussionForumPosting schemapartialBuilt in
User profile integration with WP_UserBuilt in
Pricing modelFree + paid add-onsFree + heavy stackFree + $120+ bundles$69 once

Clean public API.
Read the source.

PSR-4 namespaced classes, helper functions for the common stuff, REST endpoints for rooms / threads / replies / reactions / search, WP-CLI commands, and a hook surface that lets you extend any subsystem without forking.

// Create a thread programmatically. Triggers room + taxonomy hooks.
use Orravo\OForum\Threads;

$thread_id = Threads::create([
    'room_id'     => 42,
    'title'       => 'How do I migrate from bbPress?',
    'content'     => 'Looking for a clean migration path...',
    'type'        => 'question',
    'author_id'   => get_current_user_id(),
    'tags'        => ['wordpress', 'migration'],
]);

// Triggers, in order:
//   1. of_thread CPT inserted with parent = room
//   2. of_thread_type meta saved
//   3. of_category + of_tag terms attached
//   4. Subscribers to the room get notifications
//   5. oforum_thread_created hook fires

Choose your plan.
Lifetime or monthly.

Lifetime licence includes every future update. One payment, no renewals. Prefer flexibility? The monthly plan has no lock-in and cancels any time.

// lifetime
One-time payment. All future updates included.
₦186K
≈ ₦93K
// monthly
Cancel any time. No lock-in.
≈ ₦5K/mo

Asked & answered.

Does OForum require BuddyPress or any other community plugin? +
No. OForum is a self-contained forum for plain WordPress. It registers its own CPTs (of_room, of_thread, of_reply), its own taxonomies (of_category, of_tag), and ten purpose-built tables for reactions, subscriptions, notifications, reports, IP bans, moderation logs, votes, bookmarks, room members, and a thread-stats cache. You install OForum, and you have a forum.
Can I migrate from bbPress? +
Yes. OForum ships with a WP-CLI importer that maps bbPress forums, topics, and replies onto rooms, threads, and replies. User IDs are preserved so attribution is intact. Run `wp oforum import:bbpress --dry-run` first to see the diff.
How does moderation work? +
Members report content with a reason (spam, harassment, off-topic, etc.). Reports land in the moderation queue with the original post inline. Moderators approve, dismiss, delete, or escalate to an IP ban. Every action is written to the of_mod_log audit table. You can wire any moderation event to your own pipeline via the oforum_report_resolved hook.
Will my forum be slow at scale? +
No. The ten tables are indexed for the common queries (per-thread reactions, per-user notifications, unread counts, moderation status, vote scores). The of_thread_stats table caches reply counts, view counts, and vote scores so listings never fan out into post meta lookups. Reaction toggles are a single SQL UPSERT. Subscription emails fan out via the WP cron in batches. On a moderately busy install (10k+ threads, 100k+ replies), median page render stays under 200ms.
Can I gate a private room behind a paid membership or role? +
Yes. Each room is a CPT, so the standard WP capability system applies. The of_room_members table backs invite-only rooms with per-user roles. You can also use OForum’s built-in trust levels to auto-promote active members and auto-restrict new accounts. For paid memberships, the of_room_can_view filter lets you check any external membership state.
Refund policy? +
14-day no-questions refund. We are a small studio in Abuja and we would rather you tell us what didn’t work and let us fix it, but we will not argue if you would rather have your money back.

Stop bolting plugins together.
Run your community like a product.

Get OForum for ≈ ₦93K one-time