Your cart is empty.
Browse pluginsOverview
A working affiliate program for your WooCommerce store, free.
Affireo turns your store into a real affiliate program. Affiliates get a referral link, you get a commission record on every sale they bring in, and both sides see the numbers in a clean dashboard.
It suits any store that wants customers, creators or partners to spread the word for a share of the sale. Every feature listed here is fully functional, with no time limit, no quota and no licence key.
What's new in 1.3.1 (October 18, 2026)
New customers only works as described. With it on (Commissions tab, advanced mode), a commission is paid only on a customer's first purchase. Returning customers are recognised by their earlier paid orders with the same billing email or customer account, guests included.
1.3.1 follows 1.3.0 (October 17, 2026), which brought:
- Nobody is told they were paid before the money moves. Manual payouts wait as awaiting payment until you send the money and click Mark as sent, and only then is the affiliate emailed.
- Payout exports. Export unpaid balances, payouts awaiting payment and completed payouts as CSV from the Payouts screen.
- Commissions per line item. A percentage applies to each line of the order, and excluded products never earn.
- Refunds after payout are clawed back. A refund on a commission you already paid is deducted from the affiliate's next payout.
- Invoices in the dashboard. Affiliates open and print their own payout invoices from their payout history.
- Dashboard preview. Administrators can see an active affiliate's dashboard, read only, from that affiliate's screen.
- Consent aware tracking. With the WP Consent API plugin installed, the referral cookie is set only with marketing consent.
- Safer payouts and settings. Only active affiliates are paid, each currency gets its own payout, and saving settings no longer clears your signup fields.
One page for affiliates
Add the [ppl_afw_portal] shortcode to a page. Visitors see the signup form, and the same page becomes their dashboard once you approve them. You can also place the form on its own page with [ppl_afw_registration] and set it as the separate signup page, so visitors who are not affiliates yet are pointed there.
The dashboard shows earnings for the last 30 days, referral links ready to copy, commission and payout history with printable invoices, notifications and achievement badges. A link builder turns any page or product URL from your store into a tracked link, and affiliates can pick their own vanity slug and choose which emails they receive.
It has a light and dark mode, works down to 320px wide, is keyboard accessible and every tab and form still works with JavaScript turned off. Every template can be overridden from your theme.
Referral tracking
- Referral links three ways.
?ref=yoursluglinks, tidy/go/yourslug/links and custom vanity slugs. - Tamper resistant cookies. Signed tracking cookies with a duration you set, 30 days by default.
- Last click attribution, so the most recent affiliate gets the credit.
- Bot filtering, so crawlers never create fake clicks.
- Privacy friendly. With the WP Consent API plugin installed, the referral cookie is set only with marketing consent, and visits without consent are counted without IP or browser data. IP addresses are stored hashed.
- Toolbar shortcut. An active affiliate browsing your store gets the tracked referral link for the page they are on, copied in one click.
Commissions
- Percentage or fixed amount commission on every referred order, with per affiliate rate overrides. A percentage is calculated per line item, and a fixed amount is paid once per order.
- You choose the base. Decide whether item subtotal, taxes, shipping and discounts count towards the commission.
- Rules and exclusions. Set a minimum order amount and exclude products, categories or user roles.
- A grace period, 14 days by default, holds commissions until the refund window closes, so you never pay out on an order that comes back.
- Refunds handled. A full refund reverses the commission, and a partial refund removes only the commission of the refunded items (or a proportional part for an amount only refund), so repeated refunds never compound.
- Refunds after payout. If an order is refunded after its commission was paid out, the commission is deducted from the affiliate's next payout. This setting is on by default, and a negative balance is never paid out.
- No self referrals. Affiliates cannot earn by buying through their own link.
- New customers only. Pay commission on a customer's first purchase only. Earlier paid orders are matched by billing email or customer account, guest checkouts included.
Affiliate management
- Unlimited affiliates, with no cap on how many you approve.
- Application queue. Approve, reject or suspend, or approve applications automatically if you prefer.
- Registration form builder. Drag and drop the fields you want to collect, on the Affiliates settings tab.
- Dashboard preview. See any active affiliate's dashboard, read only, from their screen.
- Announcements. Send a message to every active affiliate, shown in their dashboard notifications and optionally by email.
- Activity log recording every status change, rate change and payout.
- Affiliate Manager role, so you can delegate without handing over admin access.
Payouts
- Manual and store credit payouts. Store credit is paid at once as a WooCommerce coupon locked to the affiliate's email address. A manual payout waits as awaiting payment until you send the money and click Mark as sent, and the affiliate is told only then.
- Mark as sent or cancel. Mark one payout or all of them as sent, or cancel a payout to return its commissions to the balance.
- Only active affiliates are paid, with one payout per currency, so amounts in different currencies are never added up. Nothing is converted between currencies.
- Sequential invoices, with a printable invoice for each payout that affiliates can also open from their dashboard.
- Minimum payout thresholds.
- CSV exports of unpaid balances, payouts awaiting payment and completed payouts, so you can pay in bulk with your usual method.
- Safe details. Affiliate payout details are encrypted at rest and only ever shown masked in the admin.
Reports and exports
- An overview of attributed revenue, commissions, visits, conversion rate and your top affiliates
- Reports covering earnings and attributed revenue over any date range, with top affiliates for the same range
- Figures that update right away when a commission changes
- Referral CSV export for any date range and status, straight from the Reports screen
- Visit log with the referral link behind each visit and whether it converted, exportable as CSV with your filters applied
- Unpaid balance, awaiting payment and completed payout CSV exports from the Payouts screen
- Referral, affiliate, visit and completed payout CSV exports from the Tools screen
Emails
Every email is a standard WooCommerce email, managed under WooCommerce, Settings, Emails, so it matches your store branding.
- Affiliate approved, for the affiliate
- Affiliate rejected, for the applicant
- New commission, for the affiliate
- Payout sent, for the affiliate, only once the money has been sent
- New affiliate application, for you
- New referral, for you, off by default and switched on when you want it
Affiliates can switch off the New commission and Payout sent emails in their dashboard.
Made for store owners
- A guided setup wizard and a clean admin that looks and works like the rest of WordPress
- Simple and advanced settings modes, so the screen is never overwhelming
- Your data is kept on uninstall unless you choose to delete it in the settings
Built properly
- High Performance Order Storage and legacy order storage, built on the WooCommerce CRUD APIs
- Cart and Checkout Blocks compatible
- GDPR personal data exporter and eraser, covering signup answers, the masked payout method, commissions, payouts and the orders an affiliate was credited for
- No external services. No remote requests, no assets from other sites and no tracking or usage data. Everything runs on your own site.
- Translation ready
For developers
Over seventy actions and filters, such as ppl_afw_resolved_rate to change the rate an affiliate earns, ppl_afw_commission_amount to adjust a commission and ppl_afw_payout_gateways to add your own payout method. There is a REST API under ppl-afw/v1, and the dashboard and signup templates can be overridden from your theme.
Requirements
- WordPress 6.2 or newer, tested up to 7.1
- WooCommerce 8.0 or newer, tested up to 11.2.1
- PHP 7.4 or newer
Affireo Pro
Nothing in the free plugin is locked or limited. Affireo Pro is a separate plugin for stores that need more control over what they pay affiliates and how. It uses the same data, so your affiliates, referrals, payouts and settings carry over with nothing to import. While Pro is active the free plugin stays idle, and you can deactivate it whenever you like.
- Commission rates per product, per variation and per category, rates per product for a single affiliate, and purchase sequence rules such as a higher rate on a customer's first order
- Lifetime commissions and WooCommerce Subscriptions renewal commissions
- PayPal, Stripe Connect and bank transfer payouts, an optional PayPal Payouts API, scheduled automatic payout runs and a SEPA bank file
- Fraud scoring on every referral, with automatic holds and suspensions
- Coupon tracking, first click attribution, a cookieless fallback, direct link tracking and campaign tracking
- Performance tiers and a multi level network up to 10 levels
- Creatives, Campaigns, Network, Coupons and Leaderboard tabs in the affiliate dashboard
- One step signup that creates the customer account, an Affiliate program tab in My Account, and changing the affiliate on an order
Download the free plugin from WordPress.org, try the free demo or the Pro demo, and read the documentation.
Frequently asked questions
How do affiliates get paid?
Go to Affiliates, Payouts and click Run payouts now. Store credit is sent at once. A manual payout waits as awaiting payment: export the list as CSV, send the money using your normal method, then click Mark as sent. The affiliate gets the Payout sent email only then.
What happens if a referred order is refunded?
Commissions stay locked for a grace period you control, 14 days by default, so a refunded order never reaches a payout. If a refund happens after approval, a full refund reverses the commission and a partial refund removes only the commission of what was refunded. If the commission was already paid out, it is deducted from the affiliate's next payout, unless you switch off "Claw back refunds after payout" on the Commissions tab in advanced mode.
Does it handle more than one currency?
Each commission is recorded in the order's currency, and each currency is paid as its own payout. Nothing is converted, and report totals are not converted to one currency either.
Can I get an email when an affiliate refers an order?
Yes. Go to WooCommerce, Settings, Emails and enable "New referral (admin)". It is off by default.
Will uninstalling delete my data?
No. Your affiliate data is kept unless you first enable "delete data on uninstall" in the settings.
Changelog
Every release, newest first, with the date it came out.
Version 1.3.1 (October 18, 2026)
- Fix: "New customers only" (Commissions tab, advanced mode) now finds returning customers by their earlier orders with the same billing email or the same customer account, guest checkouts included. An earlier order counts when it is paid or on hold awaiting payment; cancelled, failed, unpaid and fully refunded orders do not.
- Fix: with "New customers only" on, an abandoned or failed checkout no longer blocks the commission on the customer's real first purchase, and a customer who signs in with a different billing email is no longer treated as new.
- Dev: new filters ppl_afw_is_returning_customer and ppl_afw_returning_customer_statuses, and Commissions_Service::is_returning_customer().
Version 1.3.0 (October 17, 2026)
- New: manual payouts are recorded as awaiting payment. Send the money, then click Mark as sent (per payout, or Mark all awaiting payment as sent); only then does the affiliate get the Payout sent email and notification. Cancel returns the commissions to the balance. Store credit payouts still complete at once.
- New: Payouts screen exports: Export unpaid balances (CSV) lists approved commissions not in any payout yet, per affiliate and currency; Export awaiting payment (CSV) and Export completed (CSV) list payouts.
- New: "Claw back refunds after payout" setting (Commissions tab, advanced mode, on by default): when an order is refunded after its commission was paid out, that commission is deducted from the next payout. A negative balance is never paid out.
- New: affiliates can open and print their own payout invoices from Payout history. Payout status shows as awaiting payment, sent, failed or cancelled.
- New: Preview dashboard on an affiliate's screen gives administrators a read only view of that affiliate's dashboard.
- New: WP Consent API: with the Consent API plugin installed, the referral cookie is set only with marketing consent and is registered with the Consent API. Visits without consent are still counted, without IP or browser data.
- New: developer hooks for the affiliate dashboard, the affiliate screen, reports, the order box, payouts, referrals, privacy and invoice numbers. ppl_afw_resolved_rate now receives the order line item.
- Improved: commission is calculated per line item. A percentage applies to each line's base, a fixed store default or per affiliate fixed rate is paid once per order, and excluded products neither earn nor lend their rate.
- Improved: dashboard and report stats update right away, and Reports "Top affiliates" follows the selected date range.
- Improved: the affiliate dashboard works without JavaScript: tabs are links and forms post normally. With JavaScript it switches tabs and saves in place.
- Improved: the privacy exporter includes signup answers, the masked payout method, commissions and payouts, and for customers the orders an affiliate was credited for. The eraser also removes the customer's email hash from referrals, and an affiliate's login IP hashes and preferences.
- Improved: new invoice numbers look like AFF-2026-000001 (older invoices keep PPL-) and store credit codes start with aff-credit-.
- Fix: only active affiliates are paid; suspended, rejected and pending affiliates are skipped. The affiliate's payout method must still be offered in the settings (manual is always allowed for the admin).
- Fix: each currency is paid as its own payout, so amounts in different currencies are never added up.
- Fix: a payout through a method that no longer exists fails and is rolled back.
- Fix: invoice numbers stay sequential when payout runs overlap.
- Fix: repeated partial refunds no longer compound. Refunding a line removes only that line's commission, a shipping only refund leaves a commission that excludes shipping untouched, and an amount only refund reduces it proportionally.
- Fix: with a grace period of 0, pending commissions on processing or completed orders are approved by the daily maintenance.
- Fix: the email preferences in the affiliate dashboard now control the New commission and Payout sent emails.
- Fix: saving a settings tab in simple mode no longer resets the advanced only options, and the Affiliates tab shows the signup form field builder again, so saving it no longer clears the signup fields.
- Fix: "Separate signup page ID" now works: visitors who are not affiliates are pointed from the dashboard page to that page, and an approved affiliate on the signup page gets a link to the dashboard.
Version 1.2.0 (October 15, 2026)
- New: export the visit log as CSV. The Visits screen has an Export CSV button that follows the converted and affiliate filters, and Tools has a Visits (CSV) export.
- Security hardening: REST permission checks are named methods, changes through the REST API are accepted only from a logged in browser session, CSV cells that a spreadsheet could read as formulas are exported as plain text, and form input is sanitized as it is read.
- Fix: uninstalling with data deletion switched on now recognises the current Pro plugin folder and keeps the data Pro is still using.
- Fix: saving notification preferences in the affiliate dashboard keeps the types that form does not show.
- Fix: no PHP warnings while Pro is active and the free plugin is idle.
- The affiliate dashboard no longer shows a "Tier promotions" email preference, which only applies to the Pro edition. Remaining notices now use the Affireo name.
- Tested with WordPress 7.1.3 and WooCommerce 11.2.1.
Show earlier versions (1.0.0 to 1.1.0)
Version 1.1.0 (September 22, 2026)
- New: optional "New referral (admin)" email that tells the store admin when an order is credited to an affiliate. It is off by default; enable it under WooCommerce > Settings > Emails.
- New: the Reports screen exports referrals for the selected date range and status, so the CSV matches the period you are looking at.
- Fix: the free plugin now recognises the renamed Pro plugin folder and stands down correctly when Pro is active.
- Links moved to propluginslab.io.
- Added Pro upgrade banner on plugin screens. It appears only on the Affiliates screens and can be dismissed for 30 days.
- Tested with WordPress 7.1.1 and WooCommerce 11.1.1.
Version 1.0.1 (August 21, 2026)
- New: toolbar shortcut that gives an active affiliate the tracked referral link for whatever page they are viewing, with one click copying.
- The toolbar is restored for active affiliates on the front end, since WooCommerce hides it from customer and subscriber roles by default. Return false from the ppl_afw_toolbar_restore_admin_bar filter to keep it hidden.
- Minimum PHP requirement lowered to 7.4.
- Tested against WordPress 7.1 and WooCommerce 11.0.1.
Version 1.0.0 (August 12, 2026)
- Initial release.
Details
At a glance
- Last updated
- October 19, 2026
- Type
- Free plugin