Title: Siren Affiliates &#8211; Affiliate &amp; Partner Program Manager for WooCommerce
Author: alexstandiford
Published: <strong>June 29, 2026</strong>
Last modified: July 3, 2026

---

Search plugins

![](https://ps.w.org/siren-affiliates/assets/banner-772x250.png?rev=3595445)

![](https://ps.w.org/siren-affiliates/assets/icon-256x256.png?rev=3595445)

# Siren Affiliates – Affiliate & Partner Program Manager for WooCommerce

 By [alexstandiford](https://profiles.wordpress.org/alexstandiford/)

[Download](https://downloads.wordpress.org/plugin/siren-affiliates.3.4.1.zip)

 * [Details](https://vec.wordpress.org/plugins/siren-affiliates/#description)
 * [Reviews](https://vec.wordpress.org/plugins/siren-affiliates/#reviews)
 *  [Installation](https://vec.wordpress.org/plugins/siren-affiliates/#installation)
 * [Development](https://vec.wordpress.org/plugins/siren-affiliates/#developers)

 [Support](https://wordpress.org/support/plugin/siren-affiliates/)

## Description

**Siren lets you design multiple, specialized incentive programs from one WordPress
site** — affiliate programs, revenue shares, royalties, performance bonuses, and
more, all from your WordPress dashboard. Learn more at [sirenaffiliates.com](https://www.sirenaffiliates.com).

#### Why Siren?

 * **Reward what matters.** Build programs around the metrics that drive your business,
   not just sales.
 * **Automate performance and payouts.** Siren handles commission calculations and
   payments.
 * **Reach new partner types.** Specialized programs fit creators, agencies, influencers,
   and educators.

#### Flexible Program Types

Siren gives you direct control over how programs are structured, so the software
fits the partnership arrangement rather than the other way around. Start from one
of 44 ready-made recipes, or build your own.

 * **Affiliate Programs.** Track referrals through custom links, coupon codes, or
   landing pages, with flat-rate, percentage, tiered, or override commissions.
 * **Referral Programs.** Turn existing customers into a growth channel with refer-
   a-friend rewards, store credit, and flat-bounty B2B referrals.
 * **Partner & Reseller Programs.** Run invite-only partner programs, channel and
   reseller commissions, and marketplace vendor revenue shares — for example, a 
   70/30 vendor split.
 * **Creator & Royalty Programs.** Pay creators and instructors a royalty on every
   sale of their product or course — the Udemy and Skillshare revenue model, rebuilt
   for WordPress.
 * **Sales Commissions.** Pay a sales team with per-rep commissions, manager overrides,
   new-business vs. renewal rates, and monthly bonus pools.
 * **Lead-Generation Bounties.** Pay a flat bounty for every qualified form submission
   with Gravity Forms or Ninja Forms — no sale required.
 * **Loyalty & Rewards.** Reward repeat customers with store credit and milestone
   rewards that keep them coming back.

Every program can also credit the content that influenced a sale. Siren’s **Blog
Content Program** awards a commission when a customer _reads_ a post, not only when
they click a link — so you still capture buyers who arrive from AI assistants like
ChatGPT and skip the affiliate link entirely.

#### Start From a Recipe

Not sure where to begin? Apply a complete, pre-configured program in a few clicks
from the built-in recipe browser, then customize it. Popular starting points include
the Basic Affiliate Program, Coupon-Based Influencer Program, Refer-a-Friend Program,
Invite-Only Partner Program, and Customer Rewards Program — and 12 of the recipes
run on the free Siren Lite tier.

#### Partnerships That Collaborate, Not Compete

Traditional affiliate tools credit a single partner per sale. Siren can split credit
across every partner who contributed, using the attribution model you choose per
program.

 * **Shared Engagement Pool.** Rewards are divided evenly among all contributing
   partners.
 * **Performance Weighted Pool.** Rewards are distributed based on relative engagement
   scores.
 * **Top Score Wins.** The partner with the highest engagement score receives the
   entire reward.

#### 10 Core Capabilities

 1.  **Custom Program Builder.** Design incentive programs without writing code.
 2.  **Recipe Import.** Apply a complete program setup from a template in one click.
 3.  **Partner Dashboard.** Partners get their own login to track earnings and payments.
 4.  **Automatic Calculations.** Rewards are calculated from your program rules.
 5.  **Multi-Level Programs.** Tiered reward structures for long-term partner growth.
 6.  **Payout Manager.** Send rewards through PayPal or bank transfer.
 7.  **Reward Stacking.** Combine programs for layered reward arrangements.
 8.  **Performance Bonuses.** Pay bonuses based on last period’s results.
 9.  **Product-Specific Programs.** Different reward rates per product or category.
 10. **Coupon Attribution.** Credit partners through coupon codes, without link clicks.

#### Deep Integrations

Siren works seamlessly with the WordPress plugins you already use.

 * **WooCommerce.** Automatic order tracking, product-based commissions, coupon 
   attribution, and subscription support. See the [WooCommerce affiliate plugin guide](https://www.sirenaffiliates.com/integrations/woocommerce-affiliate-plugin).
 * **Easy Digital Downloads.** Affiliate and partner programs built for digital 
   products, licenses, and recurring revenue.
 * **LifterLMS.** Share course revenue with instructors, experts, and partners from
   inside your LMS.
 * **LearnDash.** Reward instructors and partners for course sales and enrollments.
 * **Gravity Forms.** Turn any form into a collaborator signup, lead capture, or
   lightweight checkout flow.
 * **NorthCommerce.** Support modern, high-AOV offers and creator-driven launches.

### Third-Party Services

This plugin connects to external services operated by Novatorius, LLC in the following
situations:

#### Contextual Help Documentation

When you open the help panel inside the Siren admin screens, the plugin fetches 
documentation articles from [sirenaffiliates.com](https://www.sirenaffiliates.com/documentation).
Only the requested article slug is sent. No personal data, site data, or tracking
information is transmitted. Responses are cached locally for 24 hours.

#### Recipe Import (Program Templates)

When you import a program recipe from the Siren website, the plugin fetches the 
recipe configuration from the Siren Beacon service at `beacon.sirenaffiliates.com`.
This sends only the recipe ID. After the recipe is applied, the plugin notifies 
Beacon that the recipe was consumed so it cannot be reused. No personal data or 
site data is transmitted.

These services are governed by the [Novatorius Terms of Service](https://www.sirenaffiliates.com/terms-and-conditions)
and [Privacy Policy](https://www.sirenaffiliates.com/privacy-policy).

### Bundled Libraries

This plugin bundles the following third-party libraries, each shipped with its license
text:

 * [Opis JSON Schema](https://github.com/opis/json-schema), [Opis String](https://github.com/opis/string),
   and [Opis URI](https://github.com/opis/uri) — Apache-2.0
 * [Select2](https://github.com/select2/select2) — MIT
 * [Action Scheduler](https://github.com/woocommerce/action-scheduler) — GPLv3
 * PHPNomad framework packages and Novatorius libraries — first-party code by the
   plugin author, distributed under this plugin’s GPL license

### Build and Source Code

The compiled React admin bundles shipped with this plugin (everything under `frontend/`)
are built from the human-readable TypeScript/React source code included in this 
plugin package under `frontend-source/`. Every shipped bundle’s source is present—
entry points live in `frontend-source/src/platform/wordpress/entries/`, one per 
compiled bundle.

To rebuild the compiled assets from the included source:

 1. `cd frontend-source`
 2. `npm install`
 3. `npm run build:wordpress:lite`

The compiled output is written to `frontend-source/dist/wordpress-lite/`, mirroring
the bundles shipped under `frontend/`. Build configuration is included in `frontend-
source/vite.config.ts`, `frontend-source/package.json`, `frontend-source/tailwind.
config.ts`, and `frontend-source/postcss.config.js`.

This plugin also bundles Select2 for specific extension admin screens. The upstream
Select2 source is publicly available at https://github.com/select2/select2

## Screenshots

[⌊Programs list⌉⌊Programs list⌉[

Programs list

[⌊Program editor: rates, attribution rules, engagement types⌉⌊Program editor: rates,
attribution rules, engagement types⌉[

Program editor: rates, attribution rules, engagement types

[⌊Collaborators list⌉⌊Collaborators list⌉[

Collaborators list

[⌊Collaborator detail with earnings breakdown⌉⌊Collaborator detail with earnings
breakdown⌉[

Collaborator detail with earnings breakdown

[⌊Conversions with engagement history⌉⌊Conversions with engagement history⌉[

Conversions with engagement history

[⌊Transactions across all programs⌉⌊Transactions across all programs⌉[

Transactions across all programs

[⌊Obligations review queue⌉⌊Obligations review queue⌉[

Obligations review queue

[⌊Fulfillments (payout batches)⌉⌊Fulfillments (payout batches)⌉[

Fulfillments (payout batches)

[⌊Fulfillment detail⌉⌊Fulfillment detail⌉[

Fulfillment detail

[⌊Recipe import⌉⌊Recipe import⌉[

Recipe import

[⌊Partner dashboard⌉⌊Partner dashboard⌉[

Partner dashboard

[⌊Partner rewards⌉⌊Partner rewards⌉[

Partner rewards

[⌊Partner performance charts⌉⌊Partner performance charts⌉[

Partner performance charts

[⌊Partner coupons⌉⌊Partner coupons⌉[

Partner coupons

[⌊Partner profile⌉⌊Partner profile⌉[

Partner profile

## Installation

 1. Go to Plugins > Add New in your WordPress admin and search for “Siren Affiliates”,
    or download the plugin and upload the zip file.
 2. Activate the plugin through the Plugins screen.
 3. Navigate to **Siren** in the admin menu to create your first program.

#### Minimum Requirements

 * PHP 8.2 or higher
 * WordPress 6.4 or higher

## FAQ

### How do I create an affiliate program with Siren?

Navigate to Siren in your WordPress admin menu and click “Add Program.” Choose your
commission structure, set the rules for how partners earn rewards, and publish. 
Partners can sign up through a registration form or be added manually.

### Can I run multiple affiliate programs at the same time?

Yes. Create as many programs as you need, each with its own commission rates, attribution
rules, and eligible partners.

### Does Siren work with WooCommerce?

Yes. Siren integrates deeply with WooCommerce, including automatic order tracking,
product-based commissions, coupon attribution, and full WooCommerce Subscriptions
support for recurring commissions.

### Does Siren support recurring commissions for subscriptions?

Yes. When a WooCommerce subscription renews, Siren can trigger a new conversion 
and award commissions to the attributed partner. Initial payments, renewals, plan
changes, and refund adjustments are all tracked.

### What is a “collaborator” in Siren?

Siren’s term for any partner who earns rewards through your programs: affiliates,
content creators, agency partners, resellers, and more.

### What attribution models does Siren support?

Siren supports shared engagement pools that split rewards evenly, performance-weighted
pools that distribute proportionally to contribution, and top-score-wins where a
single partner takes the full reward.

### How does Siren handle tracking performance?

Visitor tracking records a lightweight engagement event; commission calculation 
and attribution run in background jobs via Action Scheduler rather than during page
loads.

### Can partners track their own earnings?

Yes. Siren includes a partner dashboard where collaborators can log in to view their
earnings, track referrals, and see payment status. They do not need WordPress admin
access.

### How are payouts handled?

Siren’s Payout Manager lets you send rewards directly to partners. Approved commissions
are compiled into payout records that you can fulfill through PayPal, bank transfer,
or other methods.

### Is there a free WooCommerce affiliate plugin?

Yes. Siren Lite is free and runs a complete WooCommerce affiliate program — unlimited
affiliates, link and coupon tracking, automatic commission calculation, and a partner
dashboard. Twelve of the built-in starter recipes work on the free tier. Paid tiers
add scheduled distributions, overrides, and additional program types.

### What is a good affiliate plugin for beginners?

Siren is built for non-developers. Pick a starter recipe such as the Basic Affiliate
Program, apply it in a few clicks, and you have a working program with sensible 
defaults. No code, no separate SaaS account, and no per-affiliate fees.

### What is the best AffiliateWP alternative?

Where a traditional affiliate plugin credits a single affiliate per sale, Siren 
can run multiple programs at once and split credit across every partner who contributed,
using the attribution model you choose per program. It also covers referral, partner,
creator, sales-commission, lead-generation, and loyalty programs from the same plugin.

### Does Siren support multi-level, tiered, or override commissions?

Yes. Siren supports tiered programs where senior partners earn an override on the
sales their recruits refer, VIP and standard rate tiers, and manager overrides for
sales teams. You define the reporting lines and the rates.

### Can I run an affiliate program for digital products or Easy Digital Downloads?

Yes. Siren integrates with Easy Digital Downloads for affiliate and partner programs
built around digital products, licenses, and recurring revenue, including coupon
attribution and per-product commission rates.

### Does Siren work with LearnDash and LifterLMS courses?

Yes. Siren works with LearnDash and LifterLMS, so you can pay affiliates for course
sales, share course revenue with instructors, and run instructor royalty or revenue-
share programs from inside your LMS.

### Can affiliates be tracked with coupon codes instead of links?

Yes. Each collaborator can be assigned a unique coupon code, and Siren credits the
sale whenever that code is used at checkout — no link click required. This is ideal
for influencers who share codes on Instagram, TikTok, or YouTube.

### Can I run a refer-a-friend program for my customers?

Yes. Siren’s referral programs give each customer a unique link or code and reward
them, often in store credit, when a friend they refer makes a purchase. You can 
also run flat-bounty B2B referral programs.

### Does Siren require WooCommerce?

No. WooCommerce is the deepest integration, but Siren also works with Easy Digital
Downloads, North Commerce, LearnDash, LifterLMS, and form plugins like Gravity Forms
and Ninja Forms — so you can track sales, course enrollments, or lead submissions.

## Reviews

![](https://secure.gravatar.com/avatar/632a303452df142fa270a0886e96c1006591c595da735631a21c99a163be97d9?
s=60&d=retro&r=g)

### 󠀁[Best support and multiple programs!](https://wordpress.org/support/topic/best-support-and-multiple-programs/)󠁿

 [santiagovera1](https://profiles.wordpress.org/santiagovera1/) July 7, 2026

You can build traditional affiliate programs, but also referral programs, revenue
shares, partner incentives, and much more! Alex is super responsive and take the
time to answer all of my doubts.

![](https://secure.gravatar.com/avatar/1fe0862ea4dd920bfa928e8633440e218c4e45fdb8dd75cfcdfeed11c282b3dc?
s=60&d=retro&r=g)

### 󠀁[Excellent Plugin & Outstanding Support](https://wordpress.org/support/topic/excellent-plugin-outstanding-support-28/)󠁿

 [Anita C](https://profiles.wordpress.org/mymothersdaughter/) July 2, 2026

A thoughtfully built plugin that’s easy to get started with. Alex was incredibly
responsive and took the time to answer all of my questions, which made the entire
experience even better.

![](https://secure.gravatar.com/avatar/68341f99b441e86da94de993c67f7ff86d3a312364963005f6e7502731af4e62?
s=60&d=retro&r=g)

### 󠀁[Sophisticated and Mature](https://wordpress.org/support/topic/sophisticated-and-mature/)󠁿

 [Sean Davis](https://profiles.wordpress.org/sdavis2702/) July 1, 2026

Siren is on another level. I’d hesitate to call it an affiliate program because 
that’s a massive understatement. It’s much more than that. What I like about it 
most as a utility is that it encourages you to think about the goals of your project
rather than molding your project to the utility’s limitations. You define whether
the “program” is affiliate, referral, loyalty, or something you came up with yourself.
And the “recipes” system makes it so easy to begin exploring various programs. Honestly,
it’s a genius system that sits in a category of its own from what I can see.

![](https://secure.gravatar.com/avatar/12491680e8cf95b777e5f5f4907b2235453fa53830b495b168503065e906bb13?
s=60&d=retro&r=g)

### 󠀁[This is what we’ve been missing](https://wordpress.org/support/topic/this-is-what-weve-been-missing/)󠁿

 [Armando J. Perez Carreno](https://profiles.wordpress.org/perezcarreno/) July 1,
2026

Talking from a development standpoint, if you’ve ever had a client looking for affiliate
programs, referral programs, or even network programs, you’ve likely gone through
the rabbit hole of the usual suspects (AffiliateWP, I’m looking at you), Post Affiliate
Pro, etc. And if you’ve gone down said rabbit hole, you’ll have noticed by now that
they just don’t cut it for anything ‘outside the norm’. Now what is the norm, you
might ask? And I’m glad you asked! For some strange reason, all of the clients we’ve
built sites for, seem to require an ‘unconventional’ affiliate program. Or so they
would make us believe. In our mind, these programs look quite ordinary, and by all
practical means, simple. Which is why it confuses me to see that none of the ‘big’
players in the space support what to me are common scenarios. Which scenarios you
ask? Well, things like having an instructor get a commission off a course that they
authored, even if they didn’t share the link for it. Or, if in a rep network, allowing
reps to get a cut of their downline, regardless of who ‘shared the link’. Now, I’ve
personally reached out to many of the affiliate plugins and they’ve all said what
we needed was not possible with their system. Then I talk with Alex, and he shows
me how dynamic Siren is and I’m hooked! I tried it myself for a client a few years
ago, and it did everything we needed out of the box. Recently, however, we needed
to do some deep customizations to a very unique program (which isn’t really unique,
but perhaps unique to the WordPress space) and I tested Alex’s claims of Siren being
extensible and well documented. And let me tell you, I was not disappointed! The
fact that you can extend Siren to support custom engagement triggers, custom incentive
types, custom calculation strategies, resolvers – is incredible. It was such a breeze
to get things going without having to implement ‘hacks’ that will break on updates.
And Alex’s support during the process has been outstanding as well! So if you’re
on the fence, give Siren a try, you won’t be disappointed.

![](https://secure.gravatar.com/avatar/abbe779bc371b5592ae145da6319c7bf5eb7a5b11f397414fa926caa0e077a41?
s=60&d=retro&r=g)

### 󠀁[The Affiliate Platform I’ve Been Searching For](https://wordpress.org/support/topic/the-affiliate-platform-ive-been-searching-for/)󠁿

 [chrisbadgett](https://profiles.wordpress.org/chrisbadgett/) June 30, 2026

Every time I dig into Siren, I’m amazed at how powerful this incentive program tool
is. It’s awesome for an affiliate program, but it does so much more including royalty
programs, sales programs, lead generation programs, and so much more. If you want
to grow your website with partnership programs, Siren is the most powerful tool 
out there.

![](https://secure.gravatar.com/avatar/99d1be408441e14c9ff685cb243f4ee25f542d809dc3359f8cf8f15828dddd4e?
s=60&d=retro&r=g)

### 󠀁[Thrilled](https://wordpress.org/support/topic/thrilled-8/)󠁿

 [gelform](https://profiles.wordpress.org/gelform/) June 30, 2026

Siren is fantastic. Intuitive, powerful, well-supported. I’m thrilled I switched
from AffiliateWP.

 [ Read all 6 reviews ](https://wordpress.org/support/plugin/siren-affiliates/reviews/)

## Contributors & Developers

“Siren Affiliates – Affiliate & Partner Program Manager for WooCommerce” is open
source software. The following people have contributed to this plugin.

Contributors

 *   [ alexstandiford ](https://profiles.wordpress.org/alexstandiford/)

[Translate “Siren Affiliates – Affiliate & Partner Program Manager for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/siren-affiliates)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/siren-affiliates/),
check out the [SVN repository](https://plugins.svn.wordpress.org/siren-affiliates/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/siren-affiliates/)
by [RSS](https://plugins.trac.wordpress.org/log/siren-affiliates/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.4.1

 * fix(frontend): affiliate dashboard clipped behind portal sidebar — scope Tailwind
   disclosure trimming to Lite (bounty 645)
 * fix(lite): bind TermProvider in the free-tier loader

#### 3.4.0

 * New: Starter recipes — browse a catalog of ready-made program setups, filtered
   to what works with your store, and launch a fully-configured program in a few
   clicks.
 * Fixed: Easy Digital Downloads 3.x — assigning a collaborator to a coupon works
   again.
 * Fixed: Ninja Forms integration labels now load from the plugin’s own translations.

#### 3.3.0

 * fix(wp): register engagements admin page so conversion  engagement link resolves
 * fix(reporting): aggregate by type, apply date range, support comparison metrics
 * fix(reporting): update balance & earnings on internally-issued obligations
 * test(distributions): cover MarkAllocationObligationAsPending; chore(wp): remove
   dead /payouts mapping
 * fix(notes): record status transitions from internal flows, not just REST
 * fix(reporting): apply aggregation/date-range/comparison fixes to queryStandings
 * chore(screenshots): commit publish-to-auth pipeline + fix dashboard
 * fix(woocommerce): introduce TermProvider to eliminate get_the_terms crash
 * Add Plus and Pro tier packaging scaffolding
 * Add CollaboratorGroup primitive (slice A of cascade work)
 * Add CollaboratorGroup and calculation-type recipe support
 * fix(wporg): remediate round-4 review findings and harden the submission gate
 * Siren WordPress REST Update Method Compatibility
 * Radix Checkbox controlled/uncontrolled dev warning on forms with hydrated state
 * Integration-owned transaction source registration
 * WooCommerce: Collaborator dropdown empty on new product creation
 * Eliminate silent attribution failures: catch \Error at REST/event boundary + 
   fix transactionDetails NULL contract
 * Replace SafeMySQL with maintained PDO backend (mysql-integration 1.2.1)
 * feat(ninja-forms): add Ninja Forms integration
 * Run engagement/metric calc migration on 3.x upgrades (#555)

#### 3.2.6

 * Maintenance and stability release.

#### 3.2.5

 * fix(lite): unship over-stripped runtime files (WSOD + missing menu)

#### 3.2.4

 * fix(collaborators): repair WC/EDD/LLMS/NC dropdown and consolidate JS
 * fix(lite): defer collaborator-program junction install

#### 3.2.3

 * fix(ci): build blocks before packaging in compile-test-zip workflow
 * fix(recipes): make export schema-compliant
 * Harden demo routing against soft 404s
 * chore(deps): bump phpnomad/db to 2.2.0
 * ci(release): make release step idempotent + auto-bump version to tag

#### 3.2.2

 * Maintenance and stability release.

#### 3.2.1

 * fix: auto-run installer on version bump + ship compiled portal block

#### 3.2.0

 * `RecipeImportJobExecutor` replaces `RecipeImportTaskHandler`
 * `RepairJobExecutor` — generic executor that looks up any registered `RepairAction`
   by subtype
 * `RunDebugRepair` switches from sync-inline to async-dispatch (returns 202 + jobId,
   409 when a matching repair is already in flight)
 * `DebugTab` RepairDialog dispatches async, swaps to a polling view with queued/
   running/complete states
 * Old `RecipeImportJob` model/datastore/table/task/service/installer all deleted
 * **programs** — typed `incentiveArgs`, `autoApprove`, `expirationDays`, `activeConversionTypes`,`
   lineItemFilters`
 * **distributors** — `distributionArgs`/`poolResolverArgs` per-distributor (fixes
   parallel-importer clobbering), concrete `schedule` shape, `engagementTypes`, `
   transactionCompilers`, `lineItemFilters`
 * **collaborators** — new stanza with nested `aliases` (typed, with `issuedDate`
   for migration link continuity) and `bindings` (collaboratorprogram, collaboratordistributor)
 * **mappings** — generic four-field cross-system bridge
 * **tracking** / **commerce** — site-wide settings stanzas
 * Stripped license/update-checker residue from the lite zip; readme documents the
   frontend source/build path
 * Removed live superglobal usage from WordPress request handlers
 * Added nonce/capability checks to extension save flows
 * Stopped rewriting `active_plugins`
 * Fixed weak JS globals; cleaned up plugin path/url resolution
 * Switched docs fetching to a WordPress HTTP-backed transport
 * Added missing lite templates used by live listeners
 * `SetupCollaboratorPortal` enqueued the Vite-built portal bundle without `type
   ="module"`. 37 shared chunks + main entry all threw `Cannot use import statement
   outside a module`; the SPA stalled at “Loading…” forever. Filter added on `script_loader_tag`
   that marks every portal handle as a module at tag-render time. `RegisterCollaboratorPortalBlock`
   already did this for the editor-preview path; this brings the frontend portal
   enqueue path in line.
 * `bin/seed-screenshot-data.php` was writing to a non-existent `totalCount` column(
   actual column is `count`), silently dropping all activity data. Also fixes activity-
   type enum to match `STRATEGY_TO_ACTIVITY_TYPE` (`site_visit`, `content_view`,`
   product_sale`, `form_submission`, `coupon_use`) and seeds per-day periods so 
   the last-6-months activity chart has a real time series.
 * Inline `:root { --background/--foreground/--primary/--accent: ...; }` overrides
   generated from block attrs were attached to `siren-collaborator-portal-inline`
   and enqueued _before_ the Vite-built Tailwind bundles. The bundles carry their
   own `:root` defaults, so they printed last and won the cascade — the editor preview
   updated but the public portal rendered stock colors. Moved override emission 
   to after the bundle loop, attached via `wp_add_inline_style()` to the last bundle
   handle so our rule is last in source order.
 * Portal Branding inspector panel’s logo field was a `TextControl` asking for a
   pasted URL. Replaced with `MediaUpload` + `MediaUploadCheck` — WordPress’s native
   media modal, URL-based storage preserved for backward compat, thumbnail preview
   + Replace / Remove controls.
 * Block editor still shows “Your site doesn’t include support for the siren/collaborator-
   portal block” because the wp-scripts `build/blocks/` output isn’t wired into `
   bin/build.php` or `.github/workflows/release.yml`. Release workflow runs `frontend:
   build:all` but never `wp-scripts build`, and the build script doesn’t relocate`./
   build/` into `lib/LiteApplication/build/` where the path resolver expects it.
   Every essentials install will hit this in the block editor until it’s fixed. 
   Not blocking 3.2.0 — block works at runtime, only the editor is affected.
 * `job_schedules` table + cron dispatcher for recurring jobs (telemetry, nightly
   prunes) — framework designed for it, not built.
 * Retention/cleanup of old job rows.
 * Unified “recent jobs” history pane on the Utilities tab (backend endpoint exists;
   no UI yet).

#### 3.1.2

 * fix(transactions): stop double-subtracting coupon discounts on WC and EDD orders

#### 3.1.1

 * fix(lite): unblock beacon recipe handoff for non-admin Siren users
 * fix(recipes): align plugin with website handoff contract + e2e coverage

#### 3.1.0

 * fix: Prevent crash when selecting obligation checkboxes
 * refactor(api): normalize JSON responses at the chokepoint
 * refactor(rest): attach global interceptors per controller
 * Activate Notes system with event listeners, REST API, and activity timeline
 * chore(uat): commit UAT environment tree to source control
 * fix(notes): decouple extended resolvers from OrgDatastore; 500s on Essentials
   Activity
 * fix(notes): add Note to WordPress permission model list
 * Restore Woo ItemLogged logging and bump phpnomad minima
 * feat(notes): add automatic notes for collaborator program changes
 * fix: permanent delete fails due to FK constraints on junction tables
 * chore: sync plugin version headers to 3.0.1
 * fix(programs): stop legacy listener from overwriting engagementTypes format
 * fix(fulfillments): restore cents-to-dollars conversion
 * feat(notes): add activity notes for status changes
 * fix(notes): attach missing source linkages to activity notes
 * ci: gate workflows on ready-for-review + release tag push
 * feat(fields): declarative shape system for REST JSON output contracts
 * chore(wp-org): prepare plugin for wp.org resubmission
 * chore(wp-org): fix Plugin Check failures, wire Plugin Check into build
 * fix(updater): derive plugin basename via plugin_basename() so Essentials receives
   updates
 * fix(saas): guard Request::hasParam against scalar intermediate segments

#### 3.0.1

 * Fix fulfillment screen displaying amounts in cents instead of dollars (#36)
 * Fix CREATE TABLE running before ALTER in InstallReportingService upgrade (#37)
 * License key activation now correctly reflects active status in UI (#33)
 * Fix broken “Get Your License Key” link in WordPress admin (#31)
 * Add Zod response adapters at API boundary, remove ghost engagement type (#32)
 * Refactor collaborator action event listeners to own junction binding (#38)
 * Set up PHPStan level 8 with CI integration (#34)

#### 3.0.0

 * Maintenance and stability release.

## Meta

 *  Version **3.4.1**
 *  Last updated **5 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/siren-affiliates/)
 * Tags
 * [affiliate](https://vec.wordpress.org/plugins/tags/affiliate/)[affiliate marketing](https://vec.wordpress.org/plugins/tags/affiliate-marketing/)
   [commission](https://vec.wordpress.org/plugins/tags/commission/)[partner program](https://vec.wordpress.org/plugins/tags/partner-program/)
   [referral](https://vec.wordpress.org/plugins/tags/referral/)
 *  [Advanced View](https://vec.wordpress.org/plugins/siren-affiliates/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  6 5-star reviews     ](https://wordpress.org/support/plugin/siren-affiliates/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/siren-affiliates/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/siren-affiliates/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/siren-affiliates/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/siren-affiliates/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/siren-affiliates/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/siren-affiliates/reviews/)

## Contributors

 *   [ alexstandiford ](https://profiles.wordpress.org/alexstandiford/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/siren-affiliates/)