Selling ad placements one-by-one does not scale. WB Ad Manager Pro turns the site into a self-serve advertising portal: members top up credits through your existing WooCommerce or membership billing and run their own campaigns.
Buy ad credits directly with Stripe or PayPal. Advertisers can top up their credit balance using a card or PayPal account without going through a WooCommerce / EDD / PMPro checkout. The hosted-checkout flow is server-authoritative and resilient to gateway retries, so a single click can't be charged twice.
Weekly performance report. Admins now receive an opt-in weekly email summarising impressions, clicks, CTR, and top-performing placements across the whole site. Useful for monitoring trends without opening the dashboard every day.
Target ads by user role and BuddyPress member type. The ad-targeting module now respects both standard WordPress roles and BuddyPress member types, so you can show different creatives to "Gold members" vs "Editors" without writing any code.
"Visitors Reached" metric on the analytics dashboard. The previous Unique Visitors counter was harder to interpret at a glance; the new Visitors Reached tile is end-user-focused and clearly labelled.
Improve
Membership lifecycle emails (subscribe, switch, cancel, reactivate, payment-failed, and 3 more) are now stored as theme-overridable template files instead of being hard-coded in PHP. Sites can customise the markup without forking the plugin.
The `[wbam_submit_ad]` shortcode markup is now a theme-overridable template, so custom submission forms no longer require child-class extensions.
Replaced a confirm-dialog implementation with the shared accessible modal used elsewhere in the plugin - keyboard users no longer hit a native browser confirm.
Fix
"Unique Visitors" was being inflated on busy campaigns. The number now reflects actual unique visitors instead of double-counting some events.
The "Performance Over Time" chart on the analytics dashboard now actually loads. Previously the chart could come up blank or showing zero on every day.
The "Top Placements" widget was reading from the wrong analytics table on some installs, so the list could be empty or out-of-date. It now uses the same data source as the rest of the dashboard.
The Device Breakdown chart now reflects real traffic instead of all-Unknown. (This release wires Pro to consume the device-type signal that the free plugin started recording in 2.8.1.)
Editing a "Rich Content" ad from the backend no longer reverts the ad type back to the default on save. A one-time migration also normalises any ads that had been stored with the old "rich" type slug.
Re-running the setup wizard no longer creates a duplicate advertiser record for the site owner. The wizard now detects an existing advertiser profile and reuses it.
The "Switch Plan" confirmation modal now shows the real prorated amount you will be charged or credited, instead of the new plan's full price. (The actual charge was always prorated correctly - only the modal was wrong.)
The active-listings count and the categories count on the classifieds admin screen no longer disagree. Both numbers now use the same query.
Confirmation dialogs on the advertiser dashboard now appear consistently - previously some confirm prompts could silently no-op on certain themes.
Closed 6 QA-rejected bugs in the campaign list, analytics filtering, and campaign override flows. Closed 2 QA-rejected bugs in the advertiser portal.
9 previously-shipped customer fixes were re-browser-verified during the 1.6.0 audit pass - every one is now covered by an automated upgrade-path test (Free → Pro), so they won't silently regress in a future release.
Security
6 REST endpoints that previously read `__return_true` for their permission check now use an explicit `REST_Permissions::public_read` gate so the intent is auditable. No behaviour change for legitimate clients.
Bundled Wbcom Credits SDK bumped to v1.3.0. Adds a server-authoritative pricing resolver so the direct-pay checkout endpoint cannot accept client-supplied prices. This release introduces the first WBAM feature to use direct-pay (Stripe / PayPal Buy Credits), so the SDK upgrade ships in lockstep with the new gateway flow.
Dev
36 unused capability registrations removed from the database (Database schema 4.0.0). The plugin now registers only the capabilities it actually checks against.
Manager classes (Custom_Field_Manager, Geolocation_Manager, Review_Manager, Package_Manager, Advertiser_Manager, Credits_Bridge, Billing_Manager) now return `WP_Error` objects on failure instead of `false`, so callers can surface the actual reason. The new `Manager_Interface` contract makes the pattern enforceable.
Centralised advisory-lock helper now wraps every cron callback, so two overlapping cron runs can no longer corrupt analytics counters.
v1.5.0
April 19, 2026
New 21 Improve 11 Fix 20 Security 2 Dev 6
New
Five site-owner modes (Publisher, Sponsored Advertisers, Paid Advertiser Portal, Classifieds Marketplace, Full Platform). Pick one during setup and switch anytime from Pro Settings > General. Switching never deletes data.
Per-advertiser billing mode (self-serve or managed) so one site can run wallet-based advertisers alongside admin-assigned contracts.
Impressions-only analytics option for Publisher mode. Hides Clicks, CTR, and Spent tiles across the portal and admin dashboards.
Managed-advertiser UX. Packages show "Contract: N impressions / N clicks / N days" instead of a price. Wallet tab and balance widget hidden. Public registration disabled.
Auto-flip to "Custom" mode when admin manually edits module toggles, with a "Reset to previous" path.
Complete membership state machine. Subscribe, switch plans with prorated refund, cancel at period end (keeps benefits until renewal date), reactivate while cancelled, past-due grace window for failed renewals.
State-aware portal UI. Cancelled and past-due banners, dynamic plan-card buttons (Subscribe, Switch, Current Plan, Current Plan ending).
Dedicated email templates for subscribe, switch, cancel, reactivate, and payment-failed events.
3-step setup wizard on first activation. Site Mode, payment adapter, page setup.
Direct messaging on classified pages. Real-time conversation view between buyers and sellers.
Browse classifieds sort options. Newest, oldest, price low/high, featured first.
Classified expiry reminder emails with configurable days-before-expiration.
Demo data uses real stock images, seeds a campaign per ad, links taxonomy terms, and removes cleanly on uninstall.
Plug-and-play default settings seeded on activation across all module tabs.
Help page with Pro features, classifieds FAQ, and demo-data guide.
Full Lucide icon migration across admin and frontend (about 450 dashicons replaced).
Semantic CSS token layer with theme.json inheritance and prefers-color-scheme dark mode across 13 stylesheets. Plugin re-skins to the active theme's palette.
Improve
Admin onboarding. admin_as_advertiser defaults ON so site owners can self-test without creating a second user account.
Backfill orphan ads when an advertiser record is created.
Membership plans submenu moved from Advertisers to Classifieds with a scope note on the list screen.
Edit existing membership plans flow plus all fields surfaced on the admin editor.
Overview stat cards gate by enabled modules. Classifieds mode shows Active Listings instead of ad-centric cards. Active Campaigns section hidden when campaigns module is off.
Unified stat card pattern across Overview, Analytics, Wallet tabs.
Consistent empty states (icon, title, description, CTA) across all portal tabs.
Removed duplicate headings from Ads, Campaigns, Classifieds, Profile tabs.
Membership UI. Green active badge, current-plan card, dimmed current plan in the upgrade grid.
Only 2 essential pages auto-created on activation (Dashboard + Classifieds) instead of 5.
Package meta saved to the ad post for billing-badge display in the ads list.
Fix
Fatal error on fresh install - Site_Mode class was not loaded in the installer.
Toast notifications were silently broken since launch. A nested block comment closed the outer JSDoc early so window.wbamToast was never defined. Fixed the syntax and added the missing dependency across 10 consumer scripts.
Ad edit form now pre-fills correctly when the ad was saved with the legacy meta-key convention (demo data, classic wizard). Title, image preview, Click URL, and alt text all populate.
My Ads cards show real view and click counts (previously always zero). Now reads from wbam_analytics_daily instead of stale post meta.
Membership current-plan card cleaned up. Removed empty "Status:" label and duplicate "Current Plan" text under the disabled button.
Proration refund on plan switch uses round half-up instead of floor, so a same-day switch gives back the full plan price.
Classified review step strips the hierarchical prefix from Category and Location, and omits the Condition row when no condition is picked.
Wizard step scroll honours theme sticky-header height so the step title is not hidden under pinned site headers.
Unauthenticated advertiser portal login card centered on all viewport sizes.
Package placement inheritance. Ads now display at package-configured placements correctly.
Ads tab pagination. Pager links no longer 404 inside the WP_Query loop.
Geolocation map shows for all users (not just non-owners). Duplicate location text removed.
Messaging. Single DM form replaces dual contact/message forms. "Send Message" scrolls to the form.
Membership race condition. Subscribe wrapped in a DB transaction with row locking.
Campaign status syncs to the ad enabled flag. Paused campaigns stop showing ads.
Missing wbam_get_placements() function that caused a fatal on the ad submission form.
Disabled module tabs show a "Feature Not Available" notice instead of a blank page.
Portal Inquiries tab rendered blank because of a user_id vs advertiser_id mismatch.
Setup wizard oversized text and unscrollable viewport at 125% and 150% browser zoom.
Classifieds mode dialog description now accurately reads "No paid ads, no link partnerships - classifieds-only marketplace".
Security
Replaced bare __return_true REST permission callbacks with named REST_Permissions helpers that gate on module state and emit WP_Error on denial.
Registered 12 previously-unsanitized options via Settings API with proper sanitize_callback (license key, credits URL, module configs, page IDs).
Dev
25+ new public hooks documented in docs/HOOKS.md. wbam_pro_before_/after_ filters and actions on Advertiser, Campaign, Classified, and Package managers.
4 ad submission wizard action slots (wbam_pro_ad_form_step_N_after_fields) plus wbam_pro_before_submit_ad filter.
REST response-shape filters on Packages and Classifieds APIs (wbam_pro_rest_prepare_*).
New Settings_Helper::get_free() cross-plugin bridge with wbam_pro_free_setting_{key} filter.
Email templates receive site defaults via the new wbam_pro_email_view_defaults filter.
Rotation_Engine memoizes settings per request. Cuts redundant autoload lookups on ad-dense pages.
v1.4.0
March 2, 2026
New 5 Improve 2 Fix 4
New
Pre-funded budget reservation system for CPM/CPC campaigns
Manual/bank transfer payment with admin approve/cancel flow
BuddyPress xProfile seller fields for classified listings
wbam_classified_meta table for classified-specific meta storage (DB 2.8.0)
Action hooks on all shortcode forms for extensibility
Improve
Billing transparency for advertisers
Ad submission uses campaign/reservation system
Fix
6 critical plus 4 high-severity data flow issues
Campaign builder balance lookup and CPM/CPC validation
Double-credit, double-debit, and silent-failure vulnerabilities
Module settings save and error handling standardization
v1.3.0
Improve 4 Fix 1
Improve
Comprehensive admin documentation with screenshots
Add default packages creation on plugin activation
Module enable/disable checks across all 10 modules
Ad submission simplified to dashboard only
Fix
Distribution excludes development files and demo data
v1.2.0
New 4 Improve 1 Fix 1 Security 1
New
User Profile Integration - manage advertiser data from the WordPress user edit screen
Admin as Advertiser setting - automatically create advertiser accounts for administrators
Advertiser user meta for faster lookups
Comprehensive demo data generator
Improve
Database upgrade to version 2.3.0 with automatic migration
Fix
A/B Test winner logic, Link Scanner nonce verification, campaign budget race conditions
Security
A/B Test capability check and Stripe payment ownership verification
v1.1.0
Fix 6 Security 2
Fix
Campaign budget race condition in record_impression() and record_click()
Replace transient-based locking with database-level locks in classified billing
Floating-point precision in CPM/CPC calculations
Campaign billing race condition, idempotency, and refund negative balance
Classified API ownership check and payment order
16 additional bugs from comprehensive audit
Security
Fix SQL injection risk in analytics API with whitelist validation
GDPR consent detection for CookieYes and other plugins
v1.0.0
Note 1
Note
Initial release with analytics, advertiser portal, classifieds, wallet, packages, campaigns, BuddyPress integration, REST API, and email notifications.
Seriously, one of the best software tech experiences I've ever had!
After 16 years of buying WordPress themes and plugins, I know exactly what bad support looks like and Wbcom Designs is the polar opposite. My setup was a nightmare: multiple tools, deep integrations, custom configurations that required…
Duston McGroarty·US·
Great service, great plugins
I was using an excellent plugin created by Wbcom Designs and had both an error and discovered a slight bug in one aspect of the plugin. After creating a support ticket I got a super-quick response and discovered the error was on my part…
Edward Bonthrone·US·
Excellent Theme, Powerful Plugins and Outstanding Support
I am using the REIGN theme and several plugins from Wbcom Designs on my website. The theme is beautifully designed, and the plugins are user-friendly. Everything works smoothly, and the features are perfect for building professional…
S W Malcolm·US·
The best development team ever
It has been a very pleasurable experience working with Wbcom Designs. Anmybia Siddiqui has been a stellar leader of the dev team. Her communications are very professional and productive. Anmybia and her team have completed every task we…
Real America's Voice News·US·
Top notch support
Top notch support. I have been frustrated generally by the slow support for most themes and plugins, but they are helpful and quick to reply. Highly recommend.
Woods·DE·
I was impressed
I have worked with many WordPress plugins over the past 14 years part time. I have learned that if the support is not prompt and effective it is a sign to move on. Tonight, Wbcom has impressed me and I will be hiring them for some more…
Steve Valencia·US·
Perfect plugins for community sites
I wanted to build a community website and these guys created the perfect plugins for me. To be honest, I want to buy every single one of their plugins. If I had more money I would.
Sora Seaton·US·
Excellent Plugins and Outstanding Support
We use BuddyPress with several free BP plugins from Wbcom Designs, and we are extremely satisfied. The plugins add real value for our community, are updated regularly, and are continuously improved. They integrate seamlessly with their…
Peter Gibson·DE·
Great and very supportive
This company have been great and very supportive. I highly recommend them.
Steve s·GB·
Excellent template and first-class support
The template from Wbcom Designs is truly great, modern, flexible, and easy to use. The support is very helpful and friendly. For questions or problems you receive fast, competent assistance and feel well taken care of. Highly recommended.