Skip to content
WordPress.org
  • Showcase
  • Plugins
  • Themes
  • Hosting
  • News
    • Learn WordPress
    • Documentation
    • Education
    • Forums
    • Developers
    • Blocks
    • Patterns
    • Photos
    • Openverse ↗︎
    • WordPress.tv ↗︎
    • About WordPress
    • Make WordPress
    • Events
    • Five for the Future
    • Enterprise
    • Gutenberg ↗︎
    • Job Board ↗︎
  • Swag ↗︎
  • Get WordPress
Get WordPress
WordPress.org

Plugin Directory

Rooster One

  • Submit a plugin
  • My favorites
  • Log in
  • Submit a plugin
  • My favorites
  • Log in

Rooster One

By Oxford Metadata Ltd
Download
Live Preview
  • Details
  • Reviews
  • Installation
  • Development
Support

Description

One plugin instead of dozens. 471 tools, and they agree with each other.

Rooster One does the work that would otherwise take dozens of separate plugins, and it does it from one place, on one set of numbers.

Dozens of plugins means dozens of different vendors, dozens of renewal dates to keep track of, dozens of update cycles that have to keep working alongside each other, and a different support desk to write to depending on which part has gone wrong. One plugin means one licence, one update, one place to ask, and one thing for WordPress to load on every request instead of dozens.

What is actually in it: a full SEO engine that replaces Yoast or AIOSEO. Product recommendations built from your real sales. Role, wholesale and tiered pricing. Meta, Google Ads, GA4 and TikTok measurement, sent server-side so an ad blocker cannot silence it. Sixteen couriers with vouchers, labels, tracking and daily closings. Marketplace feeds and order import for Skroutz, Shopflix, eMAG, Etsy, Amazon and more. Side cart, wishlist, back-in-stock waitlist, swatches, trust badges. Popups and scheduled announcements. Abandoned-cart recovery, email and web push campaigns, audiences. Surveys, competitions and events. Invoices, packing slips and credit notes. A GDPR consent banner with a cookie scanner. The EU withdrawal button that Directive 2023/2673 now requires. And an AI assistant that answers from your own catalogue rather than making things up.

That is 140 screens and 471 tools, and there is a written description of what every one of them is for.

Why one plugin rather than dozens

Because separate plugins cannot see what the others know, so they disagree, and each one works the same thing out again while your customer waits.

Rooster One measures your whole business on a schedule instead: every product, page, customer, order and session, written into flat tables. Which products sell and which never do, which pages are read, who bought and who nearly did. The SEO engine, the recommendations, the audiences, the ad ROI report and the AI assistant then all read those same tables. That is why they agree, and why the plugin gets faster to use as you switch more of it on: the heavy work already happened, before the request arrived. The trade-off is timing and we would rather say so plainly. A figure is only as new as its last run.

And it is one plugin to load, not dozens

This part has nothing to do with how well any plugin is written. WordPress loads every active plugin on every request, before it knows whether that request needs it: a file to read from disk, hooks to register, options to fetch, a translation catalogue to load. That toll is paid on the home page, on every admin screen and on every REST call, by every plugin, including the ones that will do nothing at all on that particular request. A site carrying a hundred of them pays it a hundred times before a single line of useful work happens.

Rooster One is one plugin, and the parts you have not switched on register nothing. On Pro, the storefront is served by a separate lightweight runtime rather than the admin half, so your customer’s page load carries the code that draws the page and not the code that runs the shop.

Everything is off by default. It installs beside your current SEO plugin, pixel manager and consent tool and changes nothing until you switch a piece on.

Rooster One runs on your own server. Everything it ever sends to an outside service, and what triggers it, is listed under “What does Rooster One send to an outside service, and when?” in the FAQ below.

The free version is a complete product, not a demo: 697 of the 1,085 screens, tools and actions are in it. Pro adds the operational half and the separate front-end runtime plugin.

Who builds it

Rooster One is built by Oxford Metadata Ltd, whose organisation is approved under Anthropic’s Cyber Verification Program for dual-use security work such as penetration testing and vulnerability research. That is the same discipline the plugin’s own defensive features come out of: the bot filtering, the form captcha, the consent and proof-of-consent log, and the login hardening. The AI features run on Anthropic Claude for chat and reasoning and Voyage AI for embeddings.

It reads your site for what it is

  • Shop — sales and add-to-carts are the measure.
  • Catalogue — products published but not sold; engagement is the measure.
  • Content — no WooCommerce; visits, engagement and forms are the measure.

Auto-detected, overridable in one click. Scoring, cornerstones and applicable signals all follow from it.

You can find all of it

Ctrl+K reaches 663 addressable places: 140 screens, 52 tabs and 471 tools, each one openable directly. All Features lists every one, with pinnable favourites. Every page carries a written description of what you can do there, and that text feeds the search.

What gets measured

Computed on a schedule, stored flat. Everything below reads these.

  • Product vitals — velocity, out-of-stock history, price history, basket role, returns, and a 0–100 demand score.
  • Content vitals — reach, engagement, freshness and a content-demand score for every post, page and custom type.
  • Customer vitals — an omnichannel profile: purchases, affinities, lifecycle stage, survey answers, return risk.
  • Session and attribution rollups — engagement joined to conversion on one session id, with landing page, campaign and five UTMs.
  • Effective prices — every price rule resolved ahead of time into one row per product per audience.

The features

AI chat & semantic search

  • Chat widget on Anthropic Claude, grounded in your catalogue — only real, in-stock items with exact links.
  • Semantic search on Voyage AI embeddings across products, posts, pages and terms.
  • A knowledge base you control, with identity guardrails so it cannot mis-describe you.
  • Chat analytics — what was asked, how it was rated, which questions found nothing, which chats ended in an order.

SEO engine

A drop-in replacement for AIOSEO/Yoast. Stays gated behind your current SEO plugin until you switch over; read-only importer and head-parity check included.

  • Head, canonical, robots, Open Graph, Twitter and JSON-LD, assembled once into a cache.
  • Commerce schema from the same tables — ProductGroup + hasVariant, per-variant colour, gtin, brand, shipping and return policy.
  • AI titles and descriptions written against the live SERP. Drafts await approval, or run on Autopilot.
  • Opportunity grid — traffic × conversion: hidden gem, intent mismatch, defend, prune.
  • Rank tracking (optional DataForSEO, under your spend cap).
  • Redirects and 404s, slug monitor, static sitemap, robots.txt, alt-text filling, EU Omnibus history, hreflang, Local SEO.

Selling more

  • Recommendations — up-sell, cross-sell and same-need alternatives from your real sales patterns.
  • Rails you order by drag-and-drop, block and classic themes, with custom slots.
  • Pricing engine — role and wholesale prices, brand discounts, loyalty tiers, points, free gifts. Stacked, resolved ahead of time.
  • Merchandising — swatches, labels, trust badges, payment logos, galleries, layout builder, custom tabs, one master button style.
  • Lift measurement — the incremental orders and revenue the engine adds.

Cart, checkout, recovery

  • Side cart, sticky add-to-cart, wishlist, back-in-stock waitlist.
  • Saved and abandoned carts — share and resume, cookieless restore that survives CDN caching.
  • Checkout tuning — distraction-free checkout with A/B assignment, minimum order, and business-invoice fields.
  • Full block and classic parity.

Reaching customers

  • Audiences — top, lapsed, lookalike, abandoned-cart, reactivation, competition entrants. Recomputed nightly.
  • Automated campaigns — abandoned cart, win-back, birthday, back in stock, post-purchase. Email and web push, quiet hours honoured.
  • Social posts from your catalogue, competitions on any Gravity Form, surveys scored into NPS and voice-of-customer.

Knowing what worked

  • Server-side measurement you own — Meta CAPI, GA4, Google Ads Enhanced Conversions, TikTok Events API. Deduplicated, sent after the order is saved, with a daily safety net.
  • Consent / GDPR CMP — first-party banner, Consent Mode v2, proof-of-consent log, cookie scanner.
  • ROI Wizard — orders, revenue, cost, net, ROAS and ROI by engine, offer, channel, campaign or creative.
  • Ad spend typed, by CSV, or nightly from Google Ads / Meta / TikTok. Conversion goals for non-shops.
  • Insights Chat — ask your shop questions in wp-admin. Customers pseudonymised, no data export.

Running the shop

  • Marketplace order import — Skroutz, Shopflix, eMAG, eFood, Wolt, Etsy, Amazon → native WooCommerce orders. The catalogue importer runs it in reverse.
  • Streaming feeds — ready-made templates for Amazon Inventory Loader, BestPrice, eBay File Exchange, eFood, EMAG, Etsy, Facebook Product Catalog, Facebook Marketplace, Google Shopping, Google Local, Google AdWords Custom Remarketing, Shopflix, Skroutz, Tolstoy and Wolt, plus Generic CSV and a fully custom builder.
  • Sixteen couriers — vouchers, labels, COD, tracking, bulk printing, daily closings. ACS, BOX NOW, Courier Center, ELTA, Geniki Taxydromiki, Speedex, DHL Express, FedEx, UPS, USPS, Royal Mail, DHL Paket, Colissimo, BRT, Correos Express, Sendcloud — plus a manual carrier for one with no API.
  • Order documents — invoices, packing slips, proformas, credit notes. Singly or merged across a date range.
  • Delivery economics — real break-even free shipping from your carrier costs, per-carrier × zone P&L.
  • Operational intelligence — stock recovery, missing hot sellers, out-of-stock predictor, branch stock, barcode scanning, optional ERP.

The withdrawal button — Directive (EU) 2023/2673

Every EU distance seller must now give consumers a prominent, permanently available button to declare withdrawal electronically. No transition period.

  • A real button, for the whole statutory period.
  • 14 calendar days from receipt — computed from delivery, not the order date.
  • Guests included. An account is offered afterwards, never required.
  • No reason, no prior contact, partial withdrawal by item and quantity.
  • Acknowledgement on a durable medium with content, date and time.
  • Cancellation stays distinct from withdrawal — one you may refuse, the other you may not.
  • Return vouchers checked by an operator before the customer sees them. Ships disabled.

Content, blocks and regional selling

  • Events with RSVP and self-registration, FAQ accordions, Store Pages, Food & Beverages option groups, Google reviews, Media Cleanup that quarantines before it deletes.
  • Dozens of server-rendered blocks — store, product, recommendation, swatch, brand, category, blog, competition and event, plus Custom Slot regions.
  • Regional checkout — COD by country or courier, “from X,XX €” labels before a postcode is entered, and per-country payment and shipping rules.

Speed and resilience

  • Pre-computed into flat tables; the storefront reads single cached rows.
  • A thin front-end runtime plugin (Pro) serves the storefront even when the admin plugin is trimmed from the request.
  • Self-healing jobs re-arm after updates, stay dormant until used, and collapse runaway third-party tasks.
  • Tables are never dropped on update, activation or deactivation — only on explicit uninstall.

Free and Pro

GPLv3. The free version is a complete, working product — not a demo with the useful parts removed.

Free — everything above except where marked: AI chat and semantic search, the whole SEO engine, pricing and merchandising, storefront features, measurement and consent, product feeds and the catalogue importer, courier fulfilment across all sixteen carriers, the block library, Ctrl+K — and the complete withdrawal button. That last is a legal obligation for every EU distance seller; charging for it would be a poor thing to do.

Pro adds the operational half:

  • The front-end runtime plugin — serves the storefront without loading the admin half. The biggest speed difference between free and Pro.
  • Marketplace order import — Skroutz, Shopflix, eMAG, eFood, Wolt, Etsy, Amazon.
  • Attribution and ROI — dashboard, ROI Wizard, ad-spend connectors, shipping cost against margin.
  • Audiences and campaigns — audience builder, email and web-push flows, social posts, AI-suggested offers.
  • Customer intelligence — customer lookup, surveys, cancellations and returns analysis, chat analytics.
  • Insights Chat, physical retail and ERP, events and competitions, Action Scheduler cleanup.

Activated by connecting the site to your Rooster One account — no per-feature keys. Everything Pro-locked stays visible, with an explanation of what it does.

Optional integrations

Rooster One runs entirely on your own server. Nothing below is required for the plugin to work — each is an opt-in add-on you enable only if you want that capability, using your own account.

  • Rooster AI credits (rooster.systems) — powers the AI chat, AI SEO copy and Insights Chat via Anthropic Claude and Voyage AI embeddings, with no per-provider API keys to manage.
  • Recommendations service (eshop-optimizer.com) — graph-database up-sell/cross-sell analysis of your order history.
  • DataForSEO — optional keyword rank tracking under a spend cap you set.
  • Ad and measurement platforms — Google Ads, GA4, Meta and TikTok, each independently selectable.
  • Couriers and marketplaces — your own carrier and marketplace accounts, for vouchers and order import.
  • Google Places / Search Console for location data and search performance.

Screenshots

Every feature in one catalogue - search 471 tools across 140 screens and open any of them from here.
Every feature in one catalogue – search 471 tools across 140 screens and open any of them from here.
The module grid: turn on only what your shop needs. Each card says what it does before you enable it.
The module grid: turn on only what your shop needs. Each card says what it does before you enable it.
Ask your shop a question in plain language and get an answer from your own data.
Ask your shop a question in plain language and get an answer from your own data.
Couriers: print vouchers, track parcels and reconcile what each carrier actually billed you.
Couriers: print vouchers, track parcels and reconcile what each carrier actually billed you.
Withdrawal and returns handled to the letter of EU consumer law: one click for the customer, and a queue that runs from request to refund.
Withdrawal and returns handled to the letter of EU consumer law: one click for the customer, and a queue that runs from request to refund.
Role pricing: wholesale, trade and member prices per customer role, without a second catalogue.
Role pricing: wholesale, trade and member prices per customer role, without a second catalogue.
Discounts across a whole brand or category, including the monthly-offer CSV import.
Discounts across a whole brand or category, including the monthly-offer CSV import.
Customer discount tiers that move with what a shopper has actually spent.
Customer discount tiers that move with what a shopper has actually spent.
Free gifts triggered by basket value, brand or category.
Free gifts triggered by basket value, brand or category.
Free shipping and cash-on-delivery rules, per country and per payment method.
Free shipping and cash-on-delivery rules, per country and per payment method.
Price history with the EU Omnibus 30-day lowest price recorded on every change.
Price history with the EU Omnibus 30-day lowest price recorded on every change.
Table rate shipping by weight, value, zone and courier.
Table rate shipping by weight, value, zone and courier.
Marketplace and comparison-shopping feeds, generated and kept current.
Marketplace and comparison-shopping feeds, generated and kept current.
Catalogue importer: bring products in from a supplier file and map the columns once.
Catalogue importer: bring products in from a supplier file and map the columns once.
SEO health: what is wrong across the catalogue, ranked by how much traffic it costs.
SEO health: what is wrong across the catalogue, ranked by how much traffic it costs.
The SEO engine: titles, descriptions and indexing rules for every product and category.
The SEO engine: titles, descriptions and indexing rules for every product and category.
Product schema that search engines and AI assistants can actually read.
Product schema that search engines and AI assistants can actually read.
Redirects, including the ones a migration would otherwise have left broken.
Redirects, including the ones a migration would otherwise have left broken.
The search queries bringing people to the shop, and the pages they land on.
The search queries bringing people to the shop, and the pages they land on.
Content opportunities: what to write next, argued from your own search data. (Pro)
Content opportunities: what to write next, argued from your own search data. (Pro)
Storefront display: every customer-facing element in one place.
Storefront display: every customer-facing element in one place.
Colour and image swatches on the product page and across the catalogue.
Colour and image swatches on the product page and across the catalogue.
AI Chat: Embeddings population. (Pro)
AI Chat: Embeddings population. (Pro)
A side cart that shows the basket without leaving the page.
A side cart that shows the basket without leaving the page.
The Navigator: help shoppers find a product by what they need it for.
The Navigator: help shoppers find a product by what they need it for.
Performance: which channel, campaign and landing page produced the revenue. (Pro)
Performance: which channel, campaign and landing page produced the revenue. (Pro)
Units sold online against each physical branch, so you can see where stock belongs. (Pro)
Units sold online against each physical branch, so you can see where stock belongs. (Pro)
GDPR consent, with tags and pixels that genuinely wait for it.
GDPR consent, with tags and pixels that genuinely wait for it.
Pixels and conversions for Google, Meta and TikTok, measured the same way once.
Pixels and conversions for Google, Meta and TikTok, measured the same way once.
Star ratings analytics: what is rated well, what is not, and what changed.
Star ratings analytics: what is rated well, what is not, and what changed.
Web push: the opt-in prompt, who subscribed, and what to send them. (Pro)
Web push: the opt-in prompt, who subscribed, and what to send them. (Pro)

Blocks

This plugin provides 44 blocks.

  • AIEO Google Reviews Live Google reviews pulled from the local cache. Single location, mixed feed, or cards grid.
  • AIEO Store Hero Shop-page header hero in the category-hero style (centred image, title, horizontal line). Listing title, heading and description come from the bound location. Auto-resolves on a store page, or set a location slug.
  • AIEO Opening Hours A store location's opening hours. Auto-resolves on a store page, or set a location slug.
  • AIEO Store Locator Grid or list of all your store locations — address, phone, opening hours and Google Maps / review links.
  • AIEO Store Info (address, phone, hours) Structured store contact info — address, clickable phone, and per-day hours. Reads from post meta + the linked Google location row.
  • AIEO Store Map A single store's location map (keyless Google Maps embed) plus a directions link. Auto-resolves on a store page, or set a location slug.
  • AIEO Business Info A store location's address, phone, opening hours and Google links — from your Locations & Reviews data.
  • AIEO Sale Eligibility Message Conditional badge that appears under the price WHEN the current product is on sale, telling the shopper how they qualify for the sale price (everyone, signed-in only, PRO role, etc.). Auto-hides on non-sale products. Token replacement: {regular_price}, {sale_price}, {savings_amount}, {savings_pct}, {role}.
  • AIEO Taxonomy Archive Hero Generic per-term archive hero. Auto-detects queried taxonomy (product_brand / pa_need / product_tag / product_cat) and dispatches to the right data source — brand vitals + extras for product_brand, need_extras for pa_need, term thumbnail + description for product_tag, category extras for product_cat. Filterable via aieo_taxonomy_archive_hero_data for new taxonomies.
  • AIEO Popup Panel The split layout for a popup: a content pane you fill with any blocks, and a full-bleed image pane that sits beside it on desktop and moves above it on mobile — with a separate mobile image so a landscape photo never gets cropped to nothing on a phone. Built for the aieo_popup post type, but usable inline on any page.
  • AIEO Post Related Needs Need-tag chips for the current blog post. Reads wp_aieo_dmm_term_relations for pa_need → post edges. Each chip links to the need archive.
  • AIEO Brand Slider Lazy-hydrated brand carousel. Modes: top, new_brand, new_product, favourites (per-user affinity), manual. Server-renders the first N cards as a noscript fallback; client hydrates into a vanilla scroll-snap carousel with arrow nav.
  • AIEO Product Card Swatches Variation swatch column for a product card inside any block-based product loop (wp:woocommerce/product-collection, query loop, recommendations, blog→taxonomy template). Reads block-context postId and renders the same cached swatch HTML the classic-loop path emits — so CSS/JS keep working unchanged.
  • AIEO Product Variations Gallery Variation-aware product gallery: when a shopper selects a variation, the main product image and its gallery swap in place to that variation's own images. Reads each variation's existing image set, so there is no data migration.
  • AIEO Lowest Price Message EU Omnibus: on on-sale products, shows the operator-configured message with the lowest price before the reduction. Auto-hides when the product is not on sale.
  • AIEO Brand Related Cross-link strip for the brand archive: related product categories (chips), related blog articles (3-card row), and 'other brands you love' for logged-in viewers. Reads wp_aieo_dmm_term_relations + customer brand affinity.
  • AIEO Brand Archive Hero Per-brand hero for the brand archive (taxonomy-product_brand). Reads queried brand term, joins core_brand_vitals + dmm_brand_extras. Renders hero image, logo overlay, headline, product count, wishlist heart, rating stars.
  • AIEO Taxonomy Related Articles Renders 'From the Blog' article cards related to the queried term — works for any taxonomy (product_cat, pa_need, product_tag, supplier, custom). Reads bidirectional edges from wp_aieo_dmm_term_relations (the same source brand-related uses for product_brand). On the brand archive itself, prefer aieo/brand-related — this block is for the OTHER taxonomies.
  • AIEO Recommendations Renders one AIEO recommendation surface (same_needs / crosssells / upsells / related / recently_viewed) as the placeholder div the lazy-recommendations.js bundle hydrator picks up on first user interaction. Same emitted markup as the legacy inline `<div id="aieo-X-placeholder">` blocks so the existing JS hydrator works unchanged.
  • AIEO Loyalty Connection Bonus-card loyalty — connect/identify, then show the most recent points.
  • Event Registration A self-registration form for an event — guests sign up by email and are taken to their RSVP page. Auto-binds to the event it's placed on, or pick a specific event.
  • AIEO Brand Story Renders brand long-form copy (history, ambassadors, importer, footer) on the brand archive page. Reads queried brand term + wp_aieo_dmm_brand_extras. Emits nothing for sections with no copy.
  • AIEO Breadcrumb SEO-consistent breadcrumb. Uses the SAME pinned canonical category as AIEO's canonical URL and JSON-LD BreadcrumbList, so the visible trail never disagrees with what Google reads.
  • AIEO Free Shipping (PDP bar) Per-product free-shipping progress bar. Reads threshold + messages + appearance from AIEO_DMM_Free_Shipping (admin: DMM → Free Shipping + COD) and the current cart subtotal from WC()->cart. Self-hides when the operator's `display_product` setting is off, when the threshold is 0, when the product is on the no-free-shipping exclusion list, or when the cart is empty AND the operator chose to suppress the empty-cart message. Updates client-side on every cart change via a tiny REST poll.
  • AIEO Latest Posts Overlay Latest blog posts with image overlay + category badge. Mobile: horizontal slider with bullet nav. Desktop: grid.
  • AIEO Taxonomy Archive Footer Per-term editorial / SEO footer copy. Reads the queried taxonomy's *_extras table footer column when present (need_extras.footer_text, brand_extras.footer_text, category_extras.footer_text). Emits nothing when no footer copy exists for the term.
  • AIEO Professional Signup Professional / student registration via Gravity Forms (renders [membership_gf]).
  • AIEO Custom Slots Region Placeholder block that, at render time, enumerates every enabled slot from the Custom Slots admin store and emits each as a sibling div. Designed to sit inside the .ff-recommendations-cluster flex container so each slot participates in the Recommendations Ordering CSS (`order:` / `display:none`) alongside the built-in aieo/recos rails. This block emits NO wrapper of its own — slot divs are direct flex children of the parent group.
  • AIEO Product Slider A horizontal product slider with the SAME look as the product-page recommendations (thin uppercase title + line, then cards). Set the title manually and pick products by category, tag and/or specific product IDs.
  • AIEO Brand A-Z Index Server-rendered A-Z brand directory. Every letter A–Z (plus '#' for non-Latin brands) is always present; empty letters render disabled. Sticky letter bar + per-letter brand grid with product counts. Reads exclusively from wp_aieo_core_brand_vitals.
  • AIEO Post Related Brands Brand-logo slider for the current blog post. Reads wp_aieo_dmm_term_relations for product_brand → post edges.
  • AIEO Post Related Product Categories Dropdown of related product categories for the current blog post. Reads wp_aieo_dmm_term_relations for product_cat → post edges.
  • Competition Renders a competition — hero image, title, short description, the entry form and share buttons. Auto-binds to the competition page it's placed on, or pick a specific competition.
  • AIEO Custom Slot Renders one operator-defined slot (Tolstoy widget OR free-form HTML/code) from the Custom Slots admin store. Used inside the single-product recommendations cluster so each slot can be drag-positioned alongside the built-in reco rails. Resolve target via slotId.
  • AIEO Brand Rails Stacked curated brand rails (Featured / New / Your Favourites / Top). Each rail has its own count and slides-per-view, configurable in the inspector.
  • AIEO Product Post Meta (SKU + Barcodes) Renders the SKU + per-variation barcode rows for the current product. Wraps AIEO_DMM_Product_Meta — the same module the `[om_ppe_product_meta]` shortcode uses (admin-configurable via DMM settings: show_sku, show_barcode, label customisation). On variable products the barcode row expands to one barcode per variation, hidden behind a `+ more` toggle.
  • AIEO Product Needs Renders the 'This product covers:' Επιθυμίες (needs) list for the current single-product page. Wraps the existing AIEO_DMM_Product_Needs renderer so non-block themes keep their PHP path; on a block-themed PDP this is the canonical entry. Reads from `wp_aieo_dmm_product_needs` and `pa_need` taxonomy.
  • AIEO Category Hero The queried category's hero — image, title and description — auto-filled from the term, for product or blog category archive headers.
  • AIEO Category Chips A row of clickable category chips for the current archive — the term's child categories.
  • AIEO Category Footer Hero The category's SEO footer text beside the category image (image left, rich text right) with the hero divider line. Auto-fills from the queried product category.
  • AIEO Blog Hero (Latest Post) Featured latest-post hero with the category-hero look: a top title, the newest post's title as the headline, its excerpt as the description and its featured image — all clickable. On a blog category/tag archive it features that term's latest post.
  • AIEO Page Hero Manual hero — top title, left headline, right description and desktop/mobile images. Identical look to the category hero, usable on any page.
  • AIEO Category Lead The current category's description, falling back to its name when it has none. For blog category archive headers.
  • AIEO Blog Subcategories (Dropdown) A dropdown of the current blog category's subcategories, styled like the blog-post categories dropdown. Renders nothing when the category has none.

Installation

  1. Install through Plugins → Add New and search for “Rooster One”, or upload the plugin zip to wp-content/plugins/.
  2. Activate it. Nothing changes on your site yet — almost everything ships off by default.
  3. Open Rooster One in the admin menu. The header shows whether your site was read as a shop, a catalogue or a content site; correct it in one click if it is wrong.
  4. Switch on one capability at a time. Each runs alongside your existing tools until you retire them.

Press Ctrl+K on any admin screen to find anything.

FAQ

This is an enormous amount of functionality. Am I supposed to use all of it?

No, and nobody does. Everything is off by default. Rooster One installs beside your current SEO plugin, pixel manager and consent tool and changes nothing at all until you switch a piece on. Turning one thing on does not commit you to the next.

The right way in is to pick the single problem that is costing you most right now and switch on only that. Most shops start with recommendations or the AI chat, see what it does for a fortnight, and only then look further. There is no configuration you must complete before anything works.

Why is this one plugin rather than twelve?

Because it is one idea, not twelve features. Rooster One measures your whole business on a schedule — every product, page, customer, order and session, scored into flat tables — and every feature reads those same tables.

That is why the recommendations, the SEO engine, the audiences, the ad ROI and the AI assistant agree with each other instead of each maintaining a private version of the truth. Twelve plugins cannot do that: they would each need their own copy of your catalogue, their own idea of who your best customers are, and their own cron job to build it.

It is also why the plugin gets faster to use as you switch things on rather than slower. The expensive thinking already happened, on a schedule, off your customer’s request. The second feature you enable reads figures the first one already paid for.

How do I find anything in here?

Ctrl+K from anywhere in wp-admin reaches every addressable place in the plugin, pages, tabs and individual panels, searchable by what a thing does rather than by what it is called. All Features lists every one with pinnable favourites, and every page carries a written description of what it is for. If you cannot remember where something lives, you are not expected to.

Can you help me set it up?

Yes. Pro customers get direct support, and there is a support group one click from the top bar in wp-admin for everyone. Beyond support we offer paid set-up and configuration, and further customisation where a shop needs something the plugin does not do out of the box.

Worth saying plainly: the plugin is built for a real shop we run ourselves, so what a working shop needs tends to already be in it, and when it is not, we are the people who can add it. If you would rather hand the configuration to somebody who has done it before, that is a service we sell rather than a favour we occasionally do.

We have our own developers. Can they work with it directly?

Yes, and this is the case we design for rather than tolerate. The plugin is GPLv3, so there is nothing to license and nothing obfuscated. Your team gets 218 filters and 48 actions with the aieo_ prefix covering the parts most likely to need bending, a REST surface, and nine WP-CLI commands for anything that belongs in a deployment script rather than in a browser.

Behaviour is switchable in code as well as in the admin, so a decision your team wants to own can live in your own plugin instead of in our settings table. Where an integration is genuinely missing we would rather add the hook than have you patch the plugin, since a patched copy stops receiving updates. Send us the case.

We are also happy to work alongside an in-house team rather than instead of one: they keep the domain knowledge and the deployment pipeline, we cover the parts of the plugin nobody outside it should have to reverse-engineer.

Do I need WooCommerce?

No. Rooster One works on content sites and catalogues too, and adapts what it measures: a content site is scored on visits, engagement and form submissions rather than sales. A badge in the header tells you which of the three it has decided you are, so you are never guessing why a number looks the way it does.

Is the free version crippled?

No. It is a complete product: the AI assistant, the full SEO engine, the whole pricing and merchandising stack, the storefront features, measurement and consent, and the product feeds are all in the free version. Pro adds operational capability, not the basics. The withdrawal button is free as well, because it is a legal obligation for every EU distance seller and charging for it would be a poor thing to do.

What does Pro add?

The operational half: courier fulfilment and order documents, marketplace order import, attribution and ROI, audiences and automated campaigns, web push, customer intelligence, Insights Chat, physical-retail and ERP tooling, and events and competitions. Pro also delivers the front-end runtime plugin — a separate, frontend-only companion that serves the storefront, SEO head, sitemap and redirects without loading the admin half, which is the biggest single speed difference between free and Pro.

Do I have to pay for AI to use the plugin?

No. The plugin is GPLv3 and a great deal of it — the chat, recommendations, the SEO engine and every storefront and pricing tool — runs without any subscription. Only features that actually call a model consume Rooster AI credits, and the ones that do say so before they run rather than after.

Will it slow my site down?

The design goal is the opposite. Expensive work is pre-computed on a schedule into flat tables, and the storefront reads single cached rows, so enabling a feature adds a feature rather than a per-request query. On Pro the runtime plugin serves the front end without loading the admin half at all.

Will it cope with a large catalogue?

That is what the architecture is for. Heavy analysis runs on a schedule into flat pre-computed tables; the storefront reads single cached rows regardless of how many products sit behind them. Background jobs re-arm themselves after updates, stay dormant until a feature is actually used, and will collapse a runaway third-party task rather than queue politely behind it.

What can the AI chat actually answer?

Questions about your catalogue, grounded in it. It recommends only real, in-stock products and links to them exactly, because it answers from your data rather than from a general model’s memory. You control a knowledge base for the things a catalogue cannot tell it — opening hours, delivery times, returns policy — and identity guardrails stop it describing your business as something it is not.

What happens when the chat does not know something?

It says so, and then tells you. Chat analytics show what was asked, how answers were rated, which questions found nothing, and which conversations ended in an order. The list of questions that found nothing is usually the most valuable screen in the plugin: it is your customers writing your content backlog for you.

Can the chat quote a wrong price?

It reads the same prices the storefront does, including role and wholesale pricing, so a logged-in trade customer and a retail visitor are told different and correct numbers. It is not working from a snapshot taken when the model was trained.

Where does my data go when the AI features run?

Chat runs on Anthropic Claude and semantic search on Voyage AI embeddings. Nothing else leaves your site for those features. Insights Chat, which answers questions about your own shop inside wp-admin, pseudonymises customers and exports no data at all. Every external service the plugin can talk to is listed under “What does Rooster One send to an outside service, and when?” below.

Does semantic search replace the WooCommerce search box?

It can. Semantic search indexes products, posts, pages and terms as embeddings, so “something for dry hair in winter” finds the right products without those words appearing in any title. It runs alongside the built-in search rather than ripping it out, so you can compare before you commit.

How do the recommendations decide what to show?

From what your customers actually did, not from tags you maintain by hand. Up-sells, cross-sells and same-need alternatives are derived from real order history and refreshed on a schedule, so a new product earns its place as soon as it starts selling and a discontinued one leaves without you remembering to remove it.

Can I control where recommendations appear?

Yes. You order the rails by drag and drop, they work on both block and classic themes, and custom slots let you place one anywhere a theme accepts a block. Each rail can be turned off independently, which matters more than it sounds: the commonest cause of a slow product page is four rails nobody asked for.

Can I tell whether the recommendations are actually working?

Yes, and this is the part most plugins leave out. Lift measurement reports the incremental orders and revenue the engine adds, rather than counting every order that happened to contain a recommended product. The second number is always bigger and always flattering, which is presumably why it is the one usually reported.

Can I do wholesale or B2B pricing?

Yes. The pricing engine handles role and wholesale prices, brand-level discounts, loyalty tiers, points and free gifts, and it stacks them in a defined order rather than letting the last filter to run win. Prices are resolved ahead of time into the same pre-computed tables everything else reads, so a complicated rule set does not become a slow product page.

Do you support variation swatches?

Yes, with colour, image and button styles, and they render on archives and product pages from a cache rather than by loading every variation. Alongside them sit labels, trust badges, payment logos, gallery handling, a layout builder, custom tabs, and one master button style so the shop stops looking like four plugins bolted together.

How does abandoned-cart recovery work, and do I need an email service?

Carts are saved server-side, and the restore is cookieless so it survives CDN caching and a customer moving device. Recovery messages go out through automated campaigns by email or web push, using WordPress’s own mail path or your SMTP plugin. You do not need a third-party marketing service, and quiet hours are honoured so nobody is pushed a cart at three in the morning.

What else can the campaigns do?

Win-back, birthday, back-in-stock, post-purchase follow-ups and reactivation, all triggered from the same audience data. Audiences themselves — top customers, lapsed, lookalike, abandoned-cart, reactivation, competition entrants — are recomputed nightly, so a campaign aimed at “lapsed” means lapsed today rather than lapsed whenever the segment was last built by hand.

How are audiences built?

From behaviour the plugin already records, recomputed nightly rather than assembled by hand. The ready-made ones are top customers, lapsed, lookalike, abandoned-cart, reactivation and competition entrants, so “lapsed” means lapsed as of last night rather than lapsed whenever somebody last exported a spreadsheet.

Can I define my own audiences?

Yes. The audience builder takes rules over what customers bought, browsed, abandoned or responded to, combined the way you would say them out loud: ever purchased this brand, not in the last ninety days, opted in. An audience is a live definition, not a frozen list, so it repopulates itself as people move in and out of it.

What can I do with an audience once it exists?

Send it a campaign, target an offer at it, exclude it from another campaign, or push it as a segment for advertising. The same definitions feed the ROI reporting, so you can ask what a segment actually returned rather than only how many people are in it.

Do I need a separate service for web push?

No. Push is served from your own site with its own opt-in gating, and the same quiet-hours rules apply. It is part of the campaign engine rather than a separate product with its own dashboard.

Will it conflict with my current SEO plugin?

No. The SEO engine self-gates behind AIOSEO, Yoast and Rank Math and stays dormant until you explicitly switch it on. There is a read-only importer and a head-parity check, so you can compare the output before cutting over, and switch back if you do not like what you see.

What does the SEO engine do that a general SEO plugin does not?

It knows what you sell. Commerce schema is assembled from the same tables the rest of the plugin uses: ProductGroup with hasVariant, per-variant colour, gtin, brand, shipping and return policy. Titles and descriptions are written against the live search results page and wait for your approval, or run on Autopilot if you would rather they did not.

Will I lose rankings if I switch SEO plugins?

That is exactly what the head-parity check exists to answer. It compares what your current plugin emits against what Rooster One would emit, page by page, before anything changes. The importer is read-only, so your existing plugin’s data is never altered, and the engine stays gated until you decide.

Which SEO problems does it actually find?

The opportunity grid plots traffic against conversion and sorts pages into hidden gems, intent mismatches, pages to defend and pages to prune. That is a different question from “what is my score out of a hundred”, and a more useful one. Underneath it sit redirects and 404 monitoring, a slug monitor, a static sitemap, robots.txt, alt-text filling, hreflang, Local SEO, and EU Omnibus price history.

Do you track keyword rankings?

Optionally, through DataForSEO, under a spend cap you set. It is off unless you turn it on and give it your own credentials, because rank tracking is the one part of SEO with a per-query cost and we would rather you decided the size of that bill.

Does it work with the block checkout?

Yes, with full block and classic parity. That is deliberate and tested rather than assumed: the newer block checkout behaves differently enough that features working in one can silently do nothing in the other. Several bugs we have reported upstream to WooCommerce were exactly that shape.

Do I need my own courier accounts?

Yes. The plugin holds sixteen carrier integrations and talks to each with your credentials; it is not a reseller and takes no cut of your shipping. Vouchers, labels, cash on delivery, tracking, bulk printing and daily closings are handled in wp-admin, and a manual carrier covers anyone without an API.

How do I know what free-shipping threshold to set?

Delivery economics computes the real break-even from your actual carrier costs rather than from a round number that felt about right. It also reports profit and loss per carrier and per zone, which usually reveals that one zone has been quietly subsidised by the rest for a long time.

Can I print invoices and packing slips?

Yes: invoices, packing slips, proformas and credit notes, singly or merged across a date range for a whole day’s dispatch. They are generated from the order rather than from a template you keep in sync by hand.

Can I sell on marketplaces from my catalogue?

Both directions. Ready-made feed templates cover the major marketplaces and shopping engines, with a custom builder for anything not on the list, and marketplace orders come back as native WooCommerce orders rather than into a separate silo. The catalogue importer runs the same road in reverse when you want to pull a marketplace listing set in.

Does the measurement replace GA4 and the Meta pixel?

It complements them and makes them survive ad blockers and consent choices. Conversions go server-side to Meta CAPI, GA4, Google Ads Enhanced Conversions and the TikTok Events API, deduplicated against the browser tags you already have, sent after the order is saved so a failed send can never cost you an order, with a daily safety net that re-sends anything that slipped.

How does it handle consent?

A first-party consent banner with Google Consent Mode v2, a proof-of-consent log so you can show what a visitor agreed to and when, and a cookie scanner that reports what your site actually sets rather than what you believe it sets. Measurement respects the answer rather than working around it.

Can I see the return on my ad spend?

The ROI Wizard reports orders, revenue, cost, net, ROAS and ROI by engine, offer, channel, campaign or creative. Ad spend can be typed in, uploaded as CSV, or synced nightly from Google Ads, Meta and TikTok. Shops that do not sell can set conversion goals instead and be measured on those.

Does it suggest what to advertise?

Yes. The composer turns what the shop already knows — your product sets, brands, categories and demand signals — into a complete draft Google Ads campaign, written down in full before anything touches Google’s API. You read the campaign, the ad groups and the actual copy as plain text and decide.

Will it spend my ad budget without asking?

No, and this is the part we would want you to check rather than take on trust. A plan has three states. Draft exists only on your site. Created means it has been pushed to Google Ads and is sitting there paused, real objects spending nothing. Activated means a human enabled it in Google.

Rooster One records that third step. It never performs it. There is no code path in the plugin that turns a campaign on, which is deliberate: composing an advert and committing your money are different decisions and only one of them should be automatable.

What should I write about next?

Ask the customers who already told you. Content gaps are distilled from the storefront chat agent’s own conversations: the questions that returned no products, and the answers customers rated badly, weighted by how often they come up. That turns “what do people keep asking that we answer poorly” into a ranked list of things to write, sourced from demand rather than from a keyword tool’s guess.

It is the loop we are most pleased with in the whole plugin: the chat widget’s failures become the SEO team’s brief.

Can it write social posts for me?

In two steps, kept separate on purpose. First it ranks which of your products and posts are worth promoting, using the same demand scores the SEO engine uses, so you are not promoting whatever happened to be published last. Then, for one object you choose, it drafts platform-native copy for Facebook, Instagram, X, LinkedIn or TikTok.

It only ever drafts. Nothing is published, and no social account tokens are touched by the drafting step. Ranking candidates is free; writing the copy is the part that consumes AI credits.

What is Insights Chat?

Somewhere to ask your shop a question in plain language inside wp-admin, instead of building a report. Customers are pseudonymised and no data is exported. It is the one AI feature aimed at you rather than at your visitors.

What does it do about stock?

Stock recovery finds sales you lost to out-of-stocks, missing-hot-sellers finds products you should be carrying, and an out-of-stock predictor warns you before the shelf empties. There is branch stock for multi-location retail, barcode scanning, and an optional ERP bridge.

What happens to my data if I update or deactivate?

Nothing is removed. Tables are never dropped on update, activation or deactivation — only when you explicitly uninstall the plugin. Deactivating to test something is safe.

Is it translated?

Yes. Admin and storefront are both fully translatable, a complete translation ships with the plugin, and source strings are English and extractable with Poedit.

Does this make my shop compliant with the withdrawal-button law?

It gives you the mechanism Directive (EU) 2023/2673 requires: a permanent, prominent withdrawal button that works for guests, a separate confirmation step, partial withdrawal on multi-item orders, and an email acknowledgement recording the content, date and time of the declaration. That is the part software can do. Every EU member state transposes the Directive into national law, so check the date that applies in your own market.

The rest is yours: your terms of sale, who pays return postage (Directive 2011/83/EU article 14 leaves that partly to your terms), and actually processing the declarations and refunds you receive. The plugin will not pretend those are done because a button exists. The feature ships disabled for that reason — switch it on when your policy is ready.

Is “cancel my order” the same as withdrawal?

No, and treating them as the same is the commonest way a compliant-looking implementation fails. Cancelling an unshipped order is a commercial courtesy you grant on your own terms and may refuse once the parcel has left. Withdrawal is a statutory right exercisable for 14 calendar days from receipt, which you cannot refuse and whose window you do not set. Rooster One keeps them as two separate flows.

What does Rooster One send to an outside service, and when?

Rooster One runs on your own server. It contacts an outside service only in the
cases listed here, and every one of them is either something you switched on or
something you pressed Send on.

rooster.systems — our own service. Privacy policy: https://rooster.systems/privacy/

  • Feedback. When you press Send in the feedback window, we receive your
    message, the category and star rating you chose, the Rooster One screen you
    were on, your site address, an install identifier, and the versions of Rooster
    One, WordPress, WooCommerce and PHP. Your reply address is included unless you
    tick “send anonymously”. Nothing is sent if you close the window.
  • Surveys. When you press Send on the welcome or check-in survey, we receive
    your answers as short codes (never the wording you saw, so every language
    answers can be counted together), your site address, an install identifier, an
    opaque per-person identifier that lets us tell two administrators of the same
    shop apart without telling us who either of them is, the Rooster One version,
    your admin language, and whether the site reports itself as production or
    staging. Your reply address is included only if you leave it in. Closing the
    window sends nothing.
  • Feature usage — Pro and trial only, and off unless you switch it on. A
    weekly report of which Rooster One controls have been used on this site: a
    control name, a screen and a count. Never an order, a customer, a price, or
    anything typed into a field. A free installation schedules no background task
    and makes no request. Turn it off under Rooster One and the schedule is
    removed on the next admin page load.
  • AI credits. If you connect a Rooster account, AI chat, AI SEO copy and
    Insights Chat are served through rooster.systems, which relays them to
    Anthropic (Claude) and Voyage AI. Only the text needed to answer is sent.

No user agent and no browsing history is collected on any of these paths, and
none of them runs on your storefront
— they are admin-only, and the first two
happen only when a human presses a button.

Other services are listed under Optional integrations above; each is off until
you supply your own account details for it.

How is personal data handled?

For WooCommerce stores, product recommendations are produced by our graph-database service at https://eshop-optimizer.com. It is privacy-centric: you can opt out of sharing product and category names and prices with limited impact on quality, and withhold customer IDs for anonymity. Oxford Metadata Ltd maintains privacy provisions approved by both Google and Facebook — see https://eshop-optimizer.com/compliance.

Hashed PII is never stored or logged raw. Customers are pseudonymised in Insights Chat. Consent is recorded with an IP/UA-hashed proof-of-consent audit log.

Reviews

Great Analysis plugin for commerce, the new ai chat is a nice bonus

panosfasoulis November 3, 2025
Great plugin with practical use cases, no dumb paywalls and core functionality behind payed versions. Everything you need to get your job done is available from the get go with generous limits on order analysis.That being said the data you get from the pro version if you want to scale is invaluable and I highly recommend it.

Best Ai Plugin

araksia April 29, 2024
That’s a great plugin! 
Read all 2 reviews

Contributors & Developers

“Rooster One” is open source software. The following people have contributed to this plugin.

Contributors
  • Oxford Metadata Ltd

“Rooster One” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Rooster One” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

11.0.7 – 2026-08-08

  • The cookie banner no longer talks about advertising on shops that do not advertise. The wording was written for an ad-funded publisher: it told every visitor that we and our partners collect their data to “fund our services through advertising”, and described the Marketing category as delivering ads to them. On a shop or a content site that carries no advertising that is simply untrue, and asking permission for things nobody is doing invites people to refuse the ordinary visitor statistics you do want. The banner now describes what it actually controls: keeping the site working, remembering your preferences, collecting usage statistics with your consent, and — only where such technologies are in use — showing or measuring content through third-party services. The count of third-party services found on your own site is still shown, because that number is real and it comes from your own cookie scan. You can still replace any of this wording from Cookies & Consent.
  • The Agree button is always reachable on a phone. The buttons are now pinned to the bottom of the dialog with the text scrolling behind them, so consenting never requires scrolling first, in any language and at any length of wording you write. A consent dialog whose Agree button is off-screen measures patience rather than agreement.
  • “Decline all” no longer records that the visitor agreed to functional cookies. It was recording a refusal as consent for that one category in the proof-of-consent log, and ticking the box when the visitor reopened the panel. Existing records are unchanged; new ones are correct.
  • The cookie banner is now served by the runtime plugin. It keeps working on shops whose front end is trimmed down to runtime code only, where previously the banner, the Google Consent Mode signals and the consent answer the tracking gates depend on were all simply absent.
  • The banner survives more of WP Rocket. It was already protected from delayed JavaScript; it is now also protected from Remove Unused CSS, which would strip the styling and leave an unreadable block of text, and from Lazy Render Content, which would show the banner only to visitors who scroll.
  • The Facebook and TikTok pixels no longer hold up the page on cheap phones. The pixel code still records every event the moment it happens; only the download of Facebook’s and TikTok’s own scripts now waits for the browser to be free, or for the visitor’s first tap. On a low-end Android these two were a large part of what made the site slow to respond to the first touch.
  • The checkout invoice script no longer loads on pages with no checkout on them. It was running on every page of the shop looking for VAT and tax-office fields that cannot exist there.
  • Duplicate now appears on every content type that supports it, including Stores and FAQ entries, which could be duplicated in principle but offered no way to do it.
  • The cookie scanner can now recognise third-party services again. The list of known services was never reaching the storefront, so a scan could only ever find cookie names and never the service behind them — which is why the number of partners shown in the banner was usually missing.

11.0.6 – 2026-08-07

  • Popups: design an announcement in the block editor, then schedule it. A new Popups screen replaces the old Exit-intent modal. Each popup is a post you build with blocks, so you lay it out the way you lay out any other page, and it translates the same way too. The supplied “Popup — split media” layout puts your text beside a full-bleed picture on a computer and stacks them on a phone, with a separate mobile picture so a wide photograph is not cropped down to nothing on a small screen. Set the dates it should run between, where in the shop it appears, who sees it, what makes it open and how often the same person may see it.
  • Exit intent is now one of four ways a popup can open, alongside on load, after a delay, and after scrolling. Every one of them works on a phone: the old exit-intent modal listened for the mouse leaving the window, which never happens on a touchscreen, so on mobile it could not appear at all. On a touchscreen exit intent now reads a pause or a quick flick back to the top instead. Your existing exit-intent message and coupon are carried over automatically, keeping their reporting history intact.
  • A popup stops when you said it should stop. Shops run pages from a cache, and a page saved while a promotion was still running would happily keep showing it for hours afterwards. The end time is now enforced three separate ways, so an announcement about being closed for the holidays disappears when the holidays end.
  • Test mode. While you are working on the design, one checkbox makes a popup appear on every page every time you reload, instead of once and then not again. It carries a visible TEST MODE badge and records no statistics, so trying it out never distorts your figures.

11.0.5 – 2026-08-03

  • Cash-on-delivery orders are now always charged the delivery surcharge, and card orders never are. The block checkout works out the surcharge before it knows which payment method the customer actually picked, so an order could be placed without the surcharge, and a card order could go through still carrying one. Rooster One now checks every order against the payment method it was really placed with and corrects it before the customer is charged. It works the same way on the classic checkout, and when someone returns to pay for an order whose card payment failed the first time. Every correction is written into the order notes, so you can see what happened and why. Orders your staff create by hand are deliberately left alone, so phone orders stay exactly as you entered them.

11.0.4 – 2026-08-03

  • The withdrawal link in an order email now opens the order itself. It used to land on a form that already knew the order number but asked for the email address the message had just been sent to, and then sent a second email before anything could happen. The link is signed now, so it goes straight to the list of items with nothing to fill in. The signature is tied to that one order and expires on its own, and a tampered link opens nothing.
  • Fixed: the withdrawal button arrived in English on translated emails. Order emails are built after WordPress has switched language, and the plugin was not following that switch, so the one piece of wording the law is specific about came out in English while the text around it was correctly translated.
  • The withdrawal form now disappears once you have used it. It used to come back under the “check your inbox” message, so customers assumed nothing had happened and submitted it two and three times. The confirmation stands on its own, with a single button for anyone who needs to try a different address.
  • An expired withdrawal link no longer costs you a retyped address. If the link is genuinely ours but past its date, the page fills in the order’s email address for you and asks only that you press Continue. The address is never carried in the link itself, so it stays out of server logs and browser history.
  • Signing in is offered, never required. When an order was placed with an account, the withdrawal page says so and offers the shortcut, with the full form still working underneath. Customers who are already signed in are pointed to the one-click button in their own orders instead.
  • Fixed: the withdrawal form asked for a reason twice. A drop-down and a free-text box both carried the label “Reason (optional)”, with nothing to say which was meant. The box is now “Other comments”, which is what it was always for.

11.0.3 – 2026-08-02

  • A welcome that explains what you have just installed. The first time you open Rooster One it says thank you, admits there is a lot in here, and explains why it is one plugin rather than twelve: separate plugins each build their own consent prompt, their own pixel, their own copy of your catalogue, and then quietly disagree about your numbers. It also says plainly what is free and what is Pro. Reopen it any time from the lightbulb icon in the top bar.
  • Tell us about your shop, if you want to. Four short questions sit folded away under the welcome. Answer them there, or skip and be asked once more a week later, when you have formed an opinion. Skipping costs nothing.
  • A feedback button on every Rooster One screen. Send a bug, an idea, or something you liked, with an optional rating, without leaving wp-admin. Your address is prefilled so we can reply, and you can send anonymously instead.
  • A support group on Viber, one click from the top bar.
  • Fixed: the site-profile badge described the maths wrongly. Hovering “Shop” claimed Opportunities, cornerstone pages and demand scores were “all weighted on revenue”. None of the three works that way: Opportunities never reads a money column at all and leans mostly on how often a view becomes a cart, cornerstone pages lead on units sold, and demand is how fast a product is actually selling. The explanation now says what each one really uses.
  • The badge stops shouting how it decided. It printed AUTO beside the profile on almost every shop, and a label that reads the same everywhere tells you nothing. How the profile was chosen moved into the explanation you get on hover; what stays on the badge is a warning when a profile you set no longer matches what detection sees.
  • Fixed: translation wording across the new screens. Among others, the feedback form asked for a literal translation of an email header rather than for your address.
  • Every button in the admin now has a name, and the manual says what it does. 421 controls across 118 screens were catalogued and described in plain language: what changes when you press it, whether the customer is emailed, and the exact question it asks before doing anything irreversible. Eight of them contact a customer, and each now says so before you click rather than after.
  • Search finds actions, not just screens. Ctrl+K and the assistant used to answer “where is X” only. Typing “disavow”, “quarantine” or “never suggest” now takes you to the control itself, shown as the screen it lives on followed by the button.
  • A “?” beside a control explains it and links to the matching page of the manual, resolving to the exact button where one is documented and to its screen otherwise.
  • Fixed: an English-speaking operator on a translated shop saw the admin in the shop’s language. The plugin asked for a translation before WordPress had worked out who was reading, which locked the whole page to the shop’s language whatever that person’s own account said. Each reader now gets their own language, and two people reading in different languages no longer evict each other’s cached copy.
  • Fixed: settings text saved in whichever language you happened to be using. Fields pre-filled with the built-in wording stored that wording permanently the moment anyone pressed Save, so the text stopped following the reader. Those fields now show the default as a placeholder: leave the box empty and the wording follows each reader’s own language.
  • Fixed: in-page tabs are now declared by the screen that draws them. A hand-maintained list had drifted, advertising a “Migrate from legacy” tab to shops that do not have one. Tabs a shop cannot see are no longer offered to it.
  • Usage sharing, off by default and Pro only. A licensed shop can choose to tell us which admin controls its own staff use, so we can see which features are worth building on. It records a control name, a screen and a timestamp: never an order, a customer, or anything typed into a field. This is unrelated to your cookie banner and to your shoppers.

11.0.2 – 2026-08-01

  • Refusing a withdrawal request. A shop manager can now decline a request that falls outside the right — sealed or pharmaceutical goods opened after delivery, or a request made after the deadline — citing one or more of your own published grounds. The customer is emailed exactly what was ticked. The grounds are yours to edit under the withdrawal settings, prepopulated from a standard returns policy. Refusing is blocked once a return voucher or label has been issued: cancel it with the courier first, so nobody is sent to collect a parcel you have just declined.
  • Every step now shows who did it. Hover any date in the progress column to see which member of staff took that action.
  • The progress column reads as one clear path: request received, acknowledgement sent, decision issued, return voucher raised, postage label sent, goods back, money returned. The voucher line appears only when a voucher exists or can still be raised, and says “not yet sent” only while that is still true.
  • Shop managers are guaranteed access to everything. Access used to depend on the “edit pages” permission, which shop managers normally have but which some sites remove — and when it was removed the whole plugin vanished from their screen with no explanation. Rooster One now uses its own permission, granted to anyone who manages the shop or edits pages. Nobody loses access; shop managers gain it by right rather than by luck.
  • The changelog link in the plugin header now points at rooster.systems.

11.0.1 – 2026-07-31

  • Fixed: the e-shop Manager and AI Chat pages showed programming text where their menu bar should be. Both pages opened with a block of source code printed across the top and no navigation bar. Nothing was broken behind it and no data was affected, but the two pages could not be navigated from. Home and every other page were unaffected. Please update.

11.0 – 2026-07-31

From this release our version follows WooCommerce, so the number tells you which WooCommerce this was built and tested against. While WooCommerce is on 11.0 we ship 11.0, 11.0.1 and so on; when they move to 11.1 we go to 11.1.0.

  • The WordPress sidebar and the toolbar now list what the plugin does. Both carry the twelve main sections instead of internal page names, each in its own colour, and each opens Home filtered to just that section. Clicking a section in the top pill bar does the same, so all three menus answer the same way. Tapping a section on a tablet now works too, where a hover menu never could.
  • Bot protection (reCAPTCHA v3) has its own page, listed directly under Registration and sign-in rather than hidden at the bottom of the sign-in settings. It is findable by searching “reCAPTCHA”, “captcha”, “bots”, “spam” or their equivalents in your own language.
  • Ctrl+K no longer offers the same destination twice. 47 duplicate or dead entries removed, including ten that pointed at cards which no longer exist.
  • The Analyses menu now translates. Every report page in it rendered in English because its labels were translated before the language file had loaded.
  • Translation corrections: “Slug” read as the animal, warehouse stock read as stock-market shares, Settings and Preferences had collapsed into one word, and “parent product” was said three different ways.
  • Menu spacing, pinned shortcuts and section colours are consistent across all three admin pages, which now share one menu bar and one sticky header instead of separate copies.
  • Removed the links inviting you to buy your own Anthropic and Voyage API keys. AI runs on Rooster One credits.

10.3 – 2026-07-30

  • Customers can see where a withdrawal stands. Entering an order number and email now shows the stage — received, approved, items on their way back, refunded — and what happens next at each one.
  • How the refund was made is recorded and told to the customer: back to the original payment method, bank transfer, store credit or cash.
  • The guest withdrawal link now lasts 21 days instead of an hour, and a lapsed one can always be re-requested from the form.
  • Admin translation fixes: menu entries that rendered in English now translate, and five withdrawal strings that read “cancellation” say “withdrawal”.
  • Minimum WordPress is now 6.7.

10.2 – 2026-07-29

Withdrawal declarations now notify the shop, plus mobile-navigation refinements and minor fixes.

  • A declaration that needs processing no longer ends at a private order note: an optional interim order status “Withdrawal requested” (off by default — mind anything that reads order statuses), and a store email built as a real WooCommerce email with its own recipients and overridable template. Both controlled from Operations → Withdrawal Right → Settings.
  • Mobile navigator: Categories | Filters tabs at the top of the panel on archive pages, so categories are never buried below the filters.
  • Subcategory chips: the mobile slider now shows the same progress affordance as the product carousels — an accent-coloured thumb over a thin black line running to the screen edge — and one theme override recolors both.
  • Minor fixes: admin checkboxes that could be ticked but never unticked, Wide/Full block alignment on the chip strip, and dual-bundled class loading hardened against cold-opcache redeclare fatals.

10.1 – 2026-07-29

The withdrawal right, end to end — declaration, approval, return label, refund — plus ten international courier drivers.

The withdrawal button (Directive (EU) 2023/2673)
* A permanent, prominent withdrawal button that works for guests, requires no reason and no prior contact, and stays available for the whole 14-day statutory period counted from receipt.
* Partial withdrawal on multi-item orders — the customer picks which items and how many of each.
* An acknowledgement email on a durable medium recording the content, date and time of the declaration, now always sent in the shop’s default language rather than in whatever locale the request happened to carry.
* Creating an account is offered after the fact and never required. Requiring one is the obstacle the law prohibits; the checkbox stays opt-in. Where an account is created, the customer always gets a way into it — a magic link, or a standard set-password email if the link cannot be issued.
* Instant cancellation is now optional and precisely bounded. Set the courtesy window in hours and minutes — 0 hours 15 minutes is a valid answer — or switch the offer off entirely. Shops that do not want to advertise cancellation no longer have to.

Return vouchers, with an operator between the carrier and the customer
* New awaiting-approval stage. The operator picks the courier, issues the voucher, downloads and checks the label, and only then approves it — at which point it reaches the customer by email and in their account. Nothing carrier-generated reaches a customer unseen.
* Editable pickup address. The parcel can be collected from the customer’s work address instead of the delivery address. The destination — your own shop — is not editable, because carriers already know it.
* Upload a label printed elsewhere. A voucher booked at the courier’s own portal can be uploaded and shared exactly like an API-issued one, which is how most shops actually work.
* The return-courier picker offers only the carriers you have flagged as handling returns — a courier that delivers is not automatically one that collects.
* Who pays for the return is an explicit setting, because Directive 2011/83 article 14 leaves it partly to your terms. Nothing is issued until you have answered it.

Ten international courier drivers
* DHL Express, FedEx, UPS, USPS, Royal Mail, DHL Paket, Sendcloud, Colissimo, BRT (Bartolini) and Correos Express, each a real API integration built on a shared transport layer — OAuth, label decoding across PDF, PNG, JPEG, GIF and ZPL, and carrier-specific error extraction.
* Carriers that cannot bill a third party do not show a “who pays” control, because offering a choice that changes nothing is worse than offering none.
* BRT, Correos Express and Colissimo issue per-customer endpoints, so their base URL is a setting with a sensible default rather than something only a plugin release can change.
* The courier screen now separates set up with an API, set up for manual use, and available but not set up, and badges what each carrier is configured for.

Fixes
* The web-push first-visit opt-in banner no longer defaults to on, and this update switches it off once. Turn it on in Operations → Web Push → Display if you want it. Existing subscribers keep receiving campaigns either way.
* Admin submenus no longer vanish while the pointer crosses the gap towards them.
* The withdrawal queue’s stage counters kept their styling on every tab, including empty ones, and each stage now has its own colour.
* A DHL Paket billing number assembled from an incomplete customer number could be accepted against another account. An incomplete number is now refused outright.
* Courier settings are merged rather than replaced on save, so ticking one option no longer blanks the rest.

10.0 – 2026-07-27

Everything in the plugin is now findable, described and correctly named, in the source and in every shipped translation.

Find anything
* Every one of the 617 addressable destinations — 157 pages, 25 in-page tabs and 435 anchored panels — is reachable from Ctrl+K on any admin screen.
* All 195 pages and tabs now carry a written one-line description of what you can do there. Hover any destination for a styled explanation; sections inside a page say which page they belong to instead of borrowing its text.
* Descriptions feed the search index, so a destination is findable by the nouns it deals in (“credit note”, “Omnibus”, “packing slip”, “disavow”) and not only by its label.

Know what kind of site Rooster One thinks you are
* The admin header now shows your site profile — shop, catalogue or content — whether it was auto-detected or set by you, and warns when a manual setting no longer matches the evidence. One click to change it.

Translation
* Every source string in the codebase is now English. 151 non-English literals across both plugins were converted, with the original wording preserved exactly as translations, so nothing a shopper reads changed.
* Duplicate translations of the same concept were merged onto single strings, and the admin navigator’s ↵ hint no longer reads “open” as an adjective.
* Four checkout invoice fields in the runtime plugin had never been translatable at all and now are.

Fixes
* OpenAI was dropped as a provider in May, but the AI settings form could still store it: the dropdowns stopped offering it while the save handler kept accepting it, so a stale submission could switch a live site onto an unsupported provider. The form now writes only Anthropic and Voyage.
* The AI credits check told operators the Content Connector was not configured even when it was — that message is only reachable after the token authenticates. It now distinguishes “no Anthropic key on the account” from “AI service disabled”, names the account and links to the portal.
* Admin hero copy no longer quotes one particular shop’s catalogue size as if it were yours, and no longer claims there are no restrictions.

Earlier versions

The complete history — every release back to 1.0 — ships with the plugin in changelog.txt, and is on the site at https://rooster.systems/get-aieo/changelog/

Meta

  • Version 11.0.7
  • Last updated 59 minutes ago
  • Active installations 10+
  • WordPress version 6.7 or higher
  • Tested up to 7.0.3
  • PHP version 7.4 or higher
  • Languages

    English (US) and Greek.

    Translate into your language

  • Tags
    AIautomationright of withdrawalseowoocommerce
  • Advanced View

Ratings

5 out of 5 stars.
  • 2 5-star reviews 5 stars 2
  • 0 4-star reviews 4 stars 0
  • 0 3-star reviews 3 stars 0
  • 0 2-star reviews 2 stars 0
  • 0 1-star reviews 1 star 0

Your review

See all reviews

Contributors

  • Oxford Metadata Ltd

Support

Got something to say? Need help?

View support forum

  • About
  • News
  • Hosting
  • Privacy
  • Showcase
  • Themes
  • Plugins
  • Patterns
  • Learn
  • Documentation
  • Developers
  • WordPress.tv ↗
  • Get Involved
  • Events
  • Donate ↗
  • Swag ↗
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org
  • Visit our X (formerly Twitter) account
  • Visit our Bluesky account
  • Visit our Mastodon account
  • Visit our Threads account
  • Visit our Facebook page
  • Visit our Instagram account
  • Visit our LinkedIn account
  • Visit our TikTok account
  • Visit our YouTube channel
  • Visit our Tumblr account
Code is Poetry
The WordPress® trademark is the intellectual property of the WordPress Foundation.