Abuja Digital Studio · Est. 2018
Start a Project
← All plugins
Live · v0.4.0 · public beta · Premium

OConvert

Conversion optimization for the Orravo stack. A/B testing for any element via shortcode or DOM patch, lightweight click-tracking heatmaps, and exit-intent triggers with frequency caps. Designed to pair with OMailer, OAds, and OMembership for end-to-end funnel optimization. Self-hosted, first-party cookie, no SaaS.

WP 6.0+PHP 7.4+3 database tablesv0.4.0 · public beta
0DOM patch modes
0Exit-intent trigger types
3Database tables
Lifetime updates
~ oconvert / events.log
● live
⚠️
Public beta. v0.4.0 ships A/B testing, click heatmaps, and exit-intent triggers. All three are functional and production-usable. Schema and shortcode attributes may shift before v1.0. Goal and funnel reporting plus multivariate experiments are planned for the v1.0 release.

Score a page.
See its conversion.

This is a UI simulation of OConvert's built-in page scoring panel, showing exactly what the tool looks and feels like inside your WP admin. When installed, it pulls live test assignments, conversion totals, top-performing variants, and heatmap density from the events tables.

Score a page.
Read the funnel.

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

Demo simulation
Active tests·awaiting lookup
Conversion rate·awaiting lookup
Top variant·awaiting lookup
Heatmap density·awaiting lookup

Everything optimization,
nothing extra.

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

// 22 features · 3 database tables · 6 admin pages
Shortcode A/B tests (any element)
DOM patch tests (no template edits)
Patch modes: replace, text, append
Patch modes: prepend, attr, remove
Sticky deterministic variant assignment
Visual click-to-patch editor (?ocv_capture=1)
Click-tracking heatmaps (20x20 grid)
5,000-click sample cap per page
Exit-intent: mouseleave_top trigger
Exit-intent: scroll_pct trigger
Exit-intent: time_on_page trigger
Exit-intent: tab_blur trigger
Cooldown days + per-session caps
First-party visitor cookie (ocv_vid, 365d)
Conversion events via PHP, JS, or REST
Per-test summary endpoint with rates
oconvert:exit CustomEvent for OMailer / OForms
oconvert_active_test_count() suite helper
window.OCV.convert() public JS API
REST API (oconvert/v1 namespace)
fastcgi_finish_request fast ingest
Cmd+K command palette via Orravo Core

Click around.
It's all real.

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

A/B Tests

Active tests, variant assignments, conversion rates, and the winner per test in one admin view.

5Active tests
14,820Total assignments
4.8%Avg conversion
3Significant winners
Running testslive sample
Test keyVariantsAssignmentsConv. rateStatus
hero_cta24,8204.5%winning b
pricing_headline33,1405.4%winning c
signup_form_label22,9103.2%running
nav_cta_color22,1803.8%no signal
checkout_button21,7706.1%winning a

Heatmap

Click density binned to a 20x20 grid per page. Sampled to the last 5,000 clicks. Filter by URL, date range, or device.

4,820Clicks (this page)
218Cells lit
14Hot zones
92%Above the fold
Click density · /pricinglast 5k clicks

Exit Intent

Four trigger types with cookie-based frequency caps. Click Simulate run to watch a trigger fire end-to-end.

Visitor lands on /checkoutPage loads. OConvert reads ocv_vid cookie, attaches the exit-intent listener for the cart_save trigger.
Trigger firesCursor exits the viewport at the top edge. mouseleave_top condition matches. Frequency cap is checked.
Modal rendersCap passes, modal renders inline (no third-party iframe). Visitor sees the discount offer.
Conversion recordedVisitor clicks the CTA. OMailer subscribe records. Conversion event written against any active test.
Configured triggersrunning
cart_savemouseleave_top · /checkout, /cartactive
read_morescroll_pct 75% · /blog/*active
idle_nudgetime_on_page 90s · /pricingactive
tab_blur_ctatab_blur · all pagespaused

Integrations

Native hooks into the rest of the Orravo stack. No mapping, no glue code. Detected on activation.

3Suite plugins linked
918Cross-events today
12Active hook subscribers
0Mapping rules needed
Detected suite pluginshealthy
OMailer
listens to oconvert:exit and surfaces a subscribe popup; conversions fire window.OCV.convert().
418 events today
OAds
cross-plugin dashboard reads oconvert_active_test_count(); ad zones can call OCV.convert on click.
312 events today
OMembership
visitor cookie shared site-wide; conversion events attributed to the member record.
188 events today

Events

Raw event log: assignments, clicks, conversions, exit-intent fires. Filter, search, export to CSV.

Recent eventslive
variant.assigned
vid 9f3a..2c · test "hero_cta" · variant b
2s ago
conversion.event
test "hero_cta" · variant b · subscribe (omailer)
8s ago
click.captured
/pricing · grid (14, 22)
11s ago
exit.intent
/checkout · mouseleave_top · modal fired
24s ago
variant.assigned
vid 4b21..91 · test "pricing_headline" · variant c
38s ago
heatmap.flush
/pricing · 218 clicks · sampled
1m ago

Settings

Sampling rates, cookie behavior, retention windows, and the REST API namespace. Sensible defaults; tweak only what you need.

Cookie & samplingdefaults shown
Visitor cookie nameocv_vidfirst-party
Cookie TTL365 daysSameSite=Lax
Heatmap sample cap5,000 clicks per pageFIFO
Heatmap grid20 x 20 cellsbinned
Event retention180 days (admin)auto-cleanup
REST namespaceoconvert/v1public + admin
Database tables3 total
wp_oconvert_teststest definitions and variants5 rows
wp_oconvert_assignmentsvisitor → variant pairings14,820 rows
wp_oconvert_eventsclicks, conversions, exit fires218,440 rows
Read the developer docs

What you get
vs. what they sell you.

Conversion-optimization SaaS prices on visitor count and gates the basics behind tier upgrades. OConvert is the same surface area in a WP plugin, with one purchase, no per-visitor tax, and no traffic leaving your server.

VWOConvert.comOptimizelyOConvert
A/B test any element via shortcodepaid planpaid planpaid planBuilt in
DOM patch tests (no template edits)Built in
Six patch modes (replace, append, text, attr, etc)Built in
Sticky deterministic variant assignmentBuilt in
Click heatmaps (binned grid)paid planpaid planpaid planBuilt in
Exit-intent triggers (mouseleave)paid add-onpaid planpaid planBuilt in
Scroll-depth triggerspaid planpaid planpaid planBuilt in
Time-on-page triggerspaid planpaid planpaid planBuilt in
Tab-blur triggersnononoBuilt in
Frequency caps (cookie)paid planpaid planpaid planBuilt in
Visitor cookie (first-party, no SaaS)nononoBuilt in
REST API (public + admin)paid planpaid planpaid planBuilt in
Visual click-to-patch editorpaid planpaid planpaid planBuilt in
oconvert:exit CustomEvent (OMailer / OForms hook)nononoBuilt in
Public window.OCV.convert() JS APInononoBuilt in
Cmd+K command palette (via Orravo Core)nononoBuilt in
Self-hosted (no traffic to vendor)nononoBuilt in
No per-visitor pricingnononoBuilt in
Pricing modelFrom $314/moFrom $299/moQuote-based$99 once

Clean public API.
Read the source.

PSR-4 namespaced classes, helper functions for the common stuff, REST endpoints under the oconvert/v1 namespace, WP-CLI commands, and a hook surface that lets you extend any subsystem without forking.

// Shortcode A/B test. Wrap each variant. Sticky per visitor.
[oconvert_test key="hero_cta"]
   [oconvert_variant id="a"]
      <a href="/signup" class="btn">Start free trial</a>
   [/oconvert_variant]
   [oconvert_variant id="b"]
      <a href="/signup" class="btn">Try it free</a>
   [/oconvert_variant]
[/oconvert_test]

// Visitor sees one variant, always the same one.
// Sticky assignment: crc32(vid:test_key) % count

Choose your plan.
Lifetime or monthly.

Beta pricing. No tiers based on visitor count. No per-seat tax. Pay once, install on the sites in your tier, get every future update including the v1.0 release free.

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

Asked & answered.

What does "public beta" actually mean? +
v0.4.0 ships A/B testing, click heatmaps, and exit-intent triggers as fully working subsystems. We use it on our own sites. The label is honest about two things: the database schema may shift one more time before v1.0, and we are still tracking down rough edges in the admin UI. Pricing reflects beta status; today's license includes the v1.0 release and every update after.
Will my v0.4.0 tests still work after v1.0? +
Yes. We will ship a migration script for any schema change. Shortcode keys, variant ids, and exit-intent slugs are part of the public surface and will not silently break. If anything has to change, you get a notice in admin and a one-click migration.
How does the visitor cookie work? +
OConvert sets a first-party cookie called ocv_vid containing a 32-character random id. TTL is 365 days, SameSite is Lax, no third-party domains involved. The cookie is the only piece of state that lets us give the same visitor the same variant across page loads. No fingerprinting, no IP logging, no SaaS handoff.
Why no goal or funnel reporting yet? +
Both are planned for v1.0. v0.4.0 records conversion events (you can fire them from PHP, JS, or via the REST endpoint), but the report side is intentionally minimal: per-test summaries with conversion rates per variant. Multi-step funnel reports and goal-based attribution land in v1.0.
Can I run OConvert with VWO or Optimizely already installed? +
Yes, the two will not conflict, but you will be paying for the same visitor twice. The point of OConvert is that it slots into the same WP install you already have, with no per-visitor pricing and no traffic leaving your server. Most teams install OConvert to retire the SaaS account once they have parity.
Refund policy? +
14-day no-questions refund. We are a small studio in Abuja and we would rather you tell us what did not work and let us fix it, but we will not argue if you would rather have your money back.

Stop renting your conversion data.
Run the experiments on your own server.

Get OConvert for ≈ ₦93K one-time