FAQ
Getting started
Section titled “Getting started”Where do I find Dino Discover in the admin?
Section titled “Where do I find Dino Discover in the admin?”Once activated, there’s a top-level Dino Discover menu in the WordPress sidebar. It has four sub-pages: Dashboard, Quizzes, Catalogue Coverage, and Settings. The Dashboard has a setup checklist that walks you through publishing your first quiz.
Why doesn’t the menu show up after activation?
Section titled “Why doesn’t the menu show up after activation?”Probably a capability issue. Dino Discover registers a custom
manage_dino_discover capability and grants it to administrators and
shop managers by default. If you’re logged in as a different role, the
menu is hidden. Either add the capability to your role, or filter
dino_discover_capability to point at a capability your role already
has.
Do I need a separate licence key?
Section titled “Do I need a separate licence key?”Not during Beta. The Beta builds run without a licence key. Once we
ship 1.0 the Settings page will gain a Licence tab — there’s already
a Licence namespace in the codebase so the wiring will be incremental.
Compatibility
Section titled “Compatibility”Does it require HPOS?
Section titled “Does it require HPOS?”No — Dino Discover is HPOS-compatible. Every order read goes through
wc_get_orders(), and a PHPStan rule fails the build if any code path
reaches the legacy posts table. The plugin works on both HPOS-enabled
and legacy-storage stores; HPOS-enabled is the recommended setup.
Will it work with my theme?
Section titled “Will it work with my theme?”Yes — the storefront quiz is theme-agnostic. The templates use scoped
CSS classes and a small set of --dino-discover-* design tokens you
can override site-wide. Both block themes and classic themes are
supported.
Does it conflict with caching plugins?
Section titled “Does it conflict with caching plugins?”No, with one note. The shortcode emits a server-rendered container plus
a small bootstrap; full-page caching of the host page is fine. Only
don’t cache the /wp-json/dino-discover/* endpoints — those carry
session state.
Multisite?
Section titled “Multisite?”Supported. Activate per site or network-activate; each site gets its own tables, secrets, and scheduled jobs. There’s no cross-site shared state.
Performance
Section titled “Performance”Will it slow down my store?
Section titled “Will it slow down my store?”The storefront bundle has a hard CI gate on its gzipped size — currently parked at 18 KB, target 12 KB. The page that hosts the quiz only injects a ~1.5 KB inline bootstrap; the full bundle fires on first interaction. The recommendation calculation happens off the cart hot path entirely.
Are recommendations cached?
Section titled “Are recommendations cached?”Yes — published snapshots and the per-target product expansions are cached behind a versioned cache key, invalidated on publish.
Quizzes & recommendations
Section titled “Quizzes & recommendations”How many question types are there?
Section titled “How many question types are there?”Seven: single-select, multi-select, rating, slider, number, image choice, and free text. See Question Builder for what each one looks like and when to use it.
Can I branch the question flow?
Section titled “Can I branch the question flow?”Yes. Every answer carries a routing pill — default (next question in order), jump to a specific question, or end the quiz immediately. Routing is variant-scoped, so each A/B variant can have its own graph.
How does the default recommendation engine work?
Section titled “How does the default recommendation engine work?”Each answer carries upvote weights against specific products or variants. The engine sums every upvote a shopper accumulates and ranks the result. Out-of-stock and non-purchasable products are filtered out before ranking. See Recommendation Rules.
Can I A/B test my quizzes?
Section titled “Can I A/B test my quizzes?”Yes. Each quiz can have multiple variants — independent question order, routing, and upvote weights, with weighted traffic split. The PointEstimate statistics engine gives you point estimates today; confidence intervals are wired for a v2 swap.
Drafts, publishing & rollback
Section titled “Drafts, publishing & rollback”What if I publish something wrong by accident?
Section titled “What if I publish something wrong by accident?”Restore the previous snapshot from the History tab and republish. Every publish is a hashed, immutable snapshot row — none of them are deleted unless you explicitly do so. See History & Snapshots.
Can two admins edit the same quiz at once?
Section titled “Can two admins edit the same quiz at once?”Yes, but the second writer can’t clobber the first. Every PATCH and
publish carries an expected_draft_version; on mismatch the request
returns 409 dd_draft_version_mismatch and the Builder shows a
“refresh to see the latest” banner.
Can a shopper ever see my draft?
Section titled “Can a shopper ever see my draft?”No. The storefront only reads published snapshots, enforced by a custom PHPStan rule. The single exception is the Builder’s preview tab, which is admin-session-gated, nonce-protected, expires after 30 minutes, and is audit-logged.
Lead capture & integrations
Section titled “Lead capture & integrations”Which integrations ship today?
Section titled “Which integrations ship today?”Three: Klaviyo, Mailchimp, and a generic webhook. They’re configured per quiz on the Connect tab in the Builder. API keys are encrypted at rest with the activation-generated key; pushes happen asynchronously off the request path.
What about CSV export of leads?
Section titled “What about CSV export of leads?”The leads CSV endpoint exists (GET /leads/export.csv) and works.
A one-click export button from the Connect tab is on the Beta gap list
— ship-soon, not shipped today.
Beta gap list — what’s not yet shipped
Section titled “Beta gap list — what’s not yet shipped”These are documented for transparency. They’re tracked as tasks in the repo and will land in subsequent Beta builds:
- Popup and slide-in launchers — the shortcode attributes parse, but only inline rendering is wired.
- Native Gutenberg block — use the core Shortcode block.
- Sankey / flow-map analytics — the Metrics tab is currently funnel-style.
- A/B declare-winner action — drop the losing variant’s traffic weight to 0 as a workaround.
- Results-page WYSIWYG designer — the engine produces results; the designer surface is pending.
- One-click leads CSV export from the Connect tab — the
GET /leads/export.csvREST endpoint works. - Top-level Embeds admin page — the per-quiz Share tab is the current place.
- Per-quiz analytics Flow + Coverage sub-tabs — the Metrics tab carries Dashboard A1 KPIs + A/B today.
Reporting bugs
Section titled “Reporting bugs”The right way to report a bug is the Report a bug form linked in the footer of every page. No GitHub account required — your report goes straight into the issue tracker.
What’s next
Section titled “What’s next”- Glossary — quick definitions for the vocabulary used across the docs.
- Getting Started — the install and first-quiz path.
- For Developers — extension points, REST, hooks.
- Report a bug — the bug-reporting form.