Overview
Affireo - Affiliates for WooCommerce Pro turns your WooCommerce store into an affiliate program. Affiliates share a personal link (for example ?ref=yourslug or /go/yourslug/) or a coupon. When a visitor buys within the tracking window, the affiliate earns a commission. You review the commissions and pay them out.
Everything lives under the Affiliates menu in WordPress: affiliates and their applications, referrals (commission records), visits, payouts, creatives, tiers, fraud log, reports, campaigns, tools and settings. Affiliates get a front end dashboard from the [ppl_afw_portal] shortcode, or as an Affiliate program tab in WooCommerce My Account. There they see their earnings, links, creatives, campaigns and payouts.
The Pro plugin works on its own: you do not need the free edition. If the free edition is installed, it stays idle while Pro is active, and both editions use the same data, so nothing has to be moved.
Requirements
- WordPress 6.2 or later
- PHP 7.4 or later
- WooCommerce 8.0 or later (required plugin)
- WooCommerce Subscriptions, only if you want recurring commissions on renewals
- WP Consent API plugin (optional): with it installed, the referral cookie is set only with marketing consent
Installation
Affireo Pro needs WooCommerce. Install and activate WooCommerce first. You do not need the free edition of Affireo.
Install and activate WooCommerce if it is not active yet.
Log in to your ProPluginsLab account and open My Account > Downloads. Download the Affireo - Affiliates for WooCommerce Pro zip file.
In WordPress, go to Plugins > Add New > Upload Plugin, choose the zip file and click Install Now.
Click Activate. If the free edition of Affireo is active, it stays idle and shows a notice. Deactivate it yourself from the Plugins screen. Your affiliates, commissions and settings are shared, so nothing needs migrating.
A short setup wizard opens. Follow it, or go to Affiliates > Settings to configure your program.
License and automatic updates
Affireo works fully as soon as it is activated. The license key turns on automatic updates, so new versions arrive in WordPress like any other plugin update. Pro features never depend on it.
Activate your license
Find your license key in My Account on propluginslab.io, in the license keys section. It is also in your order confirmation email.
In WordPress, open Affiliates > License. When two or more ProPluginsLab plugins or add-ons are active on the site, WooCommerce > Licenses also appears and lists all of them in one place.
Paste the key into the Affireo - Affiliates for WooCommerce Pro row and click Activate. The status changes to Active and automatic updates are on.
Receive updates automatically
Once the license is active, new versions of Affireo show up under Dashboard > Updates and on the Plugins screen. Click Update now, or click Enable auto-updates in the Affireo row on the Plugins screen and WordPress installs every future release for you.
Good to know
- Keys are checked once a day in the background, so your site never waits for the license server. If the server is briefly unreachable, the plugin keeps its last known status.
- An expired key or a key that is not accepted only stops updates. Affireo keeps working. After renewing, click Check now in its row.
- Moving to a new domain: click Deactivate on the old site first, then activate the key on the new one. The status shows Site address changed, checking until the new address is confirmed.
- On the command line:
wp ppl-license list,wp ppl-license activate <plugin> <key>,wp ppl-license checkandwp ppl-license deactivate <plugin>.
Quick start
- Run the setup wizard
After activation a short wizard asks what affiliates earn (a percentage or a fixed amount), how long a referral link keeps working, the holding period before commissions can be paid, whether applications are approved automatically, and whether to create the affiliate page for you. You can run it again from Affiliates > Tools > Re-run the setup wizard.
- Check the commission and tracking settings
Go to Affiliates > Settings. On the Commissions tab set the Default commission and the Grace period. On the Tracking tab set the Cookie duration and choose an Attribution model. Click Save settings on each tab.
- Create the affiliate page
If the wizard did not create it, add a page with the shortcode
[ppl_afw_portal]. Enter the page ID in Dashboard page ID on the Portal tab. Visitors see the signup form there, and approved affiliates see their dashboard. - Choose how you pay affiliates
On the Payouts tab set the Minimum payout and tick the Payout methods you offer. For Stripe Connect add a Stripe secret key. For automatic PayPal payouts set up the PayPal Payouts API.
- Approve your first affiliate
When someone applies, a notice on Affiliates > Overview says applications are waiting. Click Review now, open the affiliate and set Status to
active, or approve from the list. The affiliate can now share their link from the dashboard. - Pay commissions
Once commissions pass the grace period they become approved. Go to Affiliates > Payouts and click Run payouts now, or set a Payout schedule so payouts run automatically.
#Overview
Affiliates > Overview is the start page of the plugin. It shows your headline numbers, a Commissions per day chart and the Top affiliates (30 days) table with each affiliate's conversions and earnings.
When applications are waiting, a notice tells you how many and offers a Review now button that opens the affiliates list. The numbers update right away when a referral is recorded.
#All Affiliates
Affiliates > All Affiliates lists every affiliate with their slug, status, unpaid balance, lifetime earnings and join date.
- Use Search affiliates to find someone by name or slug.
- Filter by status: pending, active, suspended or rejected.
- Tick several rows, pick a bulk action (approve, reject or suspend) and click Apply.
- Use Pay now on an affiliate's row to pay that one affiliate right away.
Click a name to open the affiliate's screen.
#Editing an affiliate
The affiliate's screen shows their unpaid balance, lifetime earnings, approved referrals and join date at the top. Below that you can manage everything about one affiliate:
- Status: change it and, if you like, type a reason. Only active affiliates earn and are paid.
- Referral slug: the word in their links, for example
?ref=slug. Slugs are 3 to 32 characters: lowercase letters, numbers and hyphens. - Custom rate: a rate just for this affiliate. Leave it on Use default cascade to use the normal rates.
- Payout method: the method used when this affiliate is paid. Affiliates normally choose it themselves in their dashboard.
- Tier: place the affiliate in a tier by hand.
- Recruiter (only when the multi level network is on): place this affiliate and their recruits under another affiliate. It can be set only once.
- Verified domains: websites the affiliate owns, for direct link tracking.
- Rates per product: a rate for this affiliate on a product or variation. These beat every other rate for this affiliate.
Click Save affiliate. On the right you see Recent referrals, the Activity log and the Coupons linked to the affiliate. Click Create a coupon for this affiliate to make one with the discount set under Settings > Affiliates. Application data shows the answers from their signup form.
Administrators can click Preview dashboard (active affiliates only) to see a read only view of the affiliate's dashboard.
#Referrals
Affiliates > Referrals lists every commission record with its affiliate, order, type, commission, order base, status, campaign and date. A referral moves through these statuses:
- Pending: within the grace period, or waiting for the order to be paid.
- Approved: payable, and added to the affiliate's unpaid balance.
- Paid: included in a payout.
- Rejected or Refunded: reversed.
Approve or reject a referral from its row, or tick several and use the bulk action. Rejecting a referral also rejects the network overrides it created. Held referrals show a Fraud hold marker.
Add a manual referral
Use the Add manual referral form to credit an affiliate by hand: enter the Affiliate ID, an optional Order ID, the Amount and a Note, then click Add referral. The referral is added and approved at once, in your store currency.
#Visits
Affiliates > Visits is the log of every referral visit: affiliate, landing page, referrer, device, IP, whether it converted, campaign and date. IP addresses are stored as hashes.
Filter by affiliate or by converted visits and click Filter. Export CSV downloads the log, following the filters you set.
#Payouts
Affiliates > Payouts is where you pay affiliates and keep the payout history.
- Run payouts now creates a payout for every active affiliate whose approved balance reaches the Minimum payout. The button shows how many affiliates are eligible.
- Each currency is paid as its own payout. Amounts are never converted.
- Each payout gets a sequential invoice number such as
AFF-2026-000001and a printable invoice.
How payouts complete
- Store credit coupon and Stripe Connect move the money themselves, so the payout completes at once and the affiliate is told.
- Bank transfer, Manual / offline and PayPal without the Payouts API are recorded as awaiting payment. Send the money, then click Mark as sent on the payout (or Mark all awaiting payment as sent). Only then does the affiliate get the "Payout sent" email.
- PayPal with the Payouts API on is sent by PayPal and completes when PayPal confirms it.
Cancel on a payout awaiting payment returns its commissions to the affiliate's balance. Failed payouts can be retried.
Exports
- Export unpaid balances (CSV): approved commissions not in a payout yet, per affiliate and currency.
- Export awaiting payment (CSV): payouts not sent yet, with each affiliate's PayPal email or bank details, for a bulk payment.
- Export completed (CSV): the payouts that were sent.
- Export SEPA XML (when the SEPA bank file details are saved): a SEPA credit transfer file for euro bank transfers.
Invoices
Click an invoice number to open the payout invoice. Use Print / save as PDF to keep a copy. Affiliates can open and print their own invoices from their dashboard.
#Creatives
Affiliates > Creatives is a library of banners and links your affiliates can use. The list shows each creative's type, category, status, impressions, clicks and click-through rate.
To add one, click Add new and fill in:
- Title.
- Type: a banner shows an image, a text link shows anchor text, and custom HTML lets you paste your own markup. In custom HTML put
{{link}}where the affiliate's referral link should go. - Banner image (banners only): click Choose image to pick it from the media library.
- Content: the anchor text or HTML.
- Landing URL: where clicks land. Leave it empty to use the shop homepage.
- Category, so affiliates can filter creatives.
- Status: Active or Inactive.
As soon as one creative is active, affiliates get a Creatives tab in their dashboard with ready to paste code that already contains their referral link. Banner code includes an impression pixel, clicks are counted once a minute per visitor, and inactive creatives never count.
#Tiers
Affiliates > Tiers lets you reward your best affiliates with a higher rate, for example Silver at 20% and Gold at 30%.
To create a tier, fill in Add tier:
- Name of the tier.
- Rate and its type (Percentage or Flat per order).
- Min approved referrals and Min lifetime earnings: the thresholds an affiliate must reach.
- Click Create tier.
Each night affiliates are promoted to the best tier whose thresholds they meet. Promotion never moves anyone down. A tier without thresholds is assigned by hand only: use Assign an affiliate on this screen, or the Tier field on the affiliate's screen. Promoted affiliates get the Affiliate tier promotion email unless they switched off "Tier promotions" in their dashboard.
#Fraud log
Affiliates > Fraud lists every scored event with the affiliate, the event, its risk score, the signals that raised it and the date.
Each referral is scored for risk signals: an affiliate buying through their own link, an order from an IP the affiliate has logged in from, or a flood of clicks in a short time. Referrals at or above the Hold threshold are held, and affiliates at or above the Suspend threshold are suspended automatically. Set the thresholds on the Fraud settings tab (advanced mode).
Click Release hold to release a held commission. This also releases the network overrides it held.
#Reports
Affiliates > Reports shows Visits per day, Commissions per day, Top affiliates and Top campaigns for a date range.
- Pick From and To dates and click Apply.
- To export referrals, choose a status in the export menu (or keep All statuses) and click Export referrals in range (CSV).
- Click Export affiliates (CSV) for a list of your affiliates.
Report totals are not converted between currencies.
#Campaigns
Affiliates tag their links with a campaign by adding &campaign=tag to a referral link (the link builder in their dashboard has a campaign field), or by creating a named campaign on the Campaigns tab of their dashboard. Every visit from a tagged link counts as a click, and commissions from those visits count as sales.
Affiliates > Campaigns lists each campaign with its affiliate, clicks, sales, conversion rate and commission. Pick From and To dates and click Apply. The Visits and Referrals screens also have a Campaign column.
#Tools
Affiliates > Tools has three parts.
- Broadcast announcement: enter a Subject and a Message (HTML allowed), tick Also send by email if it should go out by email as well as in the dashboard feed, and click Send announcement. It goes to all active affiliates.
- Data exports: Referrals (CSV), Affiliates (CSV), Visits (CSV) and Completed payouts (CSV).
- Setup wizard: Re-run the setup wizard.
#Settings: simple and advanced mode
Affiliates > Settings has the tabs Commissions, Tracking, Affiliates, Payouts, Portal and Advanced. Each tab has its own Save settings button.
The Settings mode on the Advanced tab decides how much you see:
- Simple (recommended) shows the everyday options.
- Advanced (show all options) also shows the extra fields on each tab and adds the Multi-level and Fraud tabs.
Saving a tab in simple mode keeps whatever you set for the advanced only options. If a value is not valid, the save stops with a message that starts with "Settings not saved:" and nothing is changed.
#Settings: Commissions
The Commissions tab sets what affiliates earn and what counts toward a commission.
- Enter the Default commission and choose Percent of the order or Fixed amount per order.
- Decide what counts as the commission base: discounted line totals, tax and shipping.
- Set a Minimum order amount if small orders should earn nothing.
- Set the Grace period: commissions stay pending this many days so refunded orders are never paid.
- Keep self referrals blocked unless you want affiliates to earn on their own purchases.
In advanced mode you also get New customers only, Claw back refunds after payout, product, category and role exclusions, and Purchase sequence rules.
Which rate applies
Commissions are calculated per line item. The rate is picked most specific first:
- The affiliate's rate on that product or variation (Rates per product).
- The affiliate's Custom rate.
- A purchase sequence rule.
- Their tier.
- A variation rate.
- A product rate.
- A category rate (the highest of the product's categories).
- The store default.
Set product, variation and category rates in the Affiliate rate fields on the product edit screen (General tab), on each variation, and on the product category add and edit screens. Leave a field empty to fall through to the next rate. A fixed amount on a product, variation or category, or a rate per product, pays per unit sold. A fixed store default, custom, tier or sequence rate pays once per order.
Refunds
A full refund or cancellation reverses the commission. A partial refund removes only the refunded part. If the commission was already paid and Claw back refunds after payout is on, it is deducted from the next payout.
#Settings: Tracking
The Tracking tab controls how a sale is linked to an affiliate.
- Referral links look like
?ref=yourslugor/go/yourslug/. In advanced mode you can rename the parameter and the short link base. - Cookie duration is how long after a click a purchase still counts.
- Attribution model decides whether the first or the last affiliate link a visitor clicked gets the sale.
- The cookieless fallback still attributes visitors who block cookies, through a hashed IP and browser fingerprint.
- With coupon tracking on, a coupon linked to an affiliate credits them even without a link. Link a coupon in the coupon's Affiliate field (Marketing > Coupons, General tab), or create one from the affiliate's screen.
- When sources disagree decides who wins when a coupon, a lifetime link and a referral link point to different affiliates. Coupons and lifetime links of affiliates who are not active never credit anyone.
- Direct link tracking (off by default) credits visitors who arrive from an affiliate's verified website. Enter the domains on the affiliate's screen.
With the WP Consent API plugin installed, the referral cookie is set only when the visitor gave marketing consent. Visits without consent are still counted, without IP or browser data.
#Settings: Affiliates and the signup form
The Affiliates tab controls who can join and what you ask them.
Approving applications
Tick Activate new applications instantly to approve everyone at once. Leave it unticked to review each application.
Building the signup form
The Signup form fields builder decides what applicants fill in. Each row has a label (what the applicant sees), a key (where the answer is stored), a type and a Required box.
- Click Add field for a new row, or Remove to delete one.
- Drag the handle to reorder rows.
- Pick the type: Text, Paragraph, Website URL, Email, Phone or Number. Email, phone and website fields are checked in the browser.
- Click Save settings.
Text in Program terms is shown above the terms checkbox on the form.
Account, My Account tab and coupons
- With the account option on, visitors without an account fill in one form: their customer account is created, they are logged in and the application is sent.
- With the My Account option on, WooCommerce My Account gets an Affiliate program tab with the dashboard or the signup form.
- With the coupon option on, a coupon named after the affiliate's slug is created when they are approved. Affiliate coupon discount sets its discount. Coupon tracking (Tracking tab) must be on for those coupons to credit the affiliate.
Lifetime and recurring commissions
With lifetime commissions on, a referred customer earns for their affiliate on all future orders. In advanced mode you can set a Lifetime link expiry and turn on Recurring commissions for WooCommerce Subscriptions renewals, with a Recurring duration and a Recurring rate (%).
#Settings: Payouts
The Payouts tab sets when and how affiliates are paid.
- Set the Minimum payout: the approved balance an affiliate must reach.
- Tick the Payout methods affiliates may choose in their dashboard.
- Choose a Payout schedule and Schedule day, or keep Manual only and run payouts yourself.
- Fill in the fields for the methods that need them: Stripe secret key for Stripe Connect, the PayPal Payouts API fields for automatic PayPal payouts, and the SEPA bank file fields for a euro bank file.
- Click Save settings.
Payout methods compared
| Method | What the affiliate enters | How it completes |
|---|---|---|
| PayPal | Their PayPal email | Awaiting payment until you mark it as sent, or sent by PayPal when the Payouts API is on |
| Bank transfer | Account holder, account number or IBAN, routing / sort / SWIFT code, bank name | Awaiting payment until you mark it as sent |
| Stripe Connect | Their Stripe account ID (acct_...) |
Completes at once through Stripe |
| Store credit coupon | Nothing | Completes at once with a coupon code starting aff-credit- (store currency only) |
| Manual / offline | Nothing | Awaiting payment until you mark it as sent |
All payout details are stored encrypted and shown only masked. An IBAN is checked for typing errors.
Payout schedule
Weekly and every two weeks use the weekday in Schedule day (1 is Monday, 7 is Sunday). Every two weeks runs at least 14 days after the last run. Monthly uses the day of the month (1 to 28). Days follow your site's timezone, and a run missed by WP-Cron is caught up the next day. Scheduled runs pay every active affiliate whose balance reaches the minimum.
#Paying through Stripe Connect
Stripe Connect sends the money straight to the affiliate's Stripe account. You do not need a Stripe plugin: Affireo talks to the Stripe API directly.
- In your Stripe dashboard create a restricted key (
rk_live_...) with write access to Transfers. A secret key startingsk_live_,sk_test_,rk_live_orrk_test_is accepted. - Go to Affiliates > Settings > Payouts, tick Stripe Connect under Payout methods and paste the key into Stripe secret key.
- Click Save settings. The key is stored encrypted and never shown again: the field stays empty and only says a key is saved. Leave it empty to keep the key, type a new one to replace it, or tick Remove the saved key.
- Affiliates choose Stripe Connect in their dashboard and enter their Stripe account ID (
acct_...).
Stripe payouts complete at once and the affiliate is told. When a Stripe payout is sent, the plugin sends your key, the amount, the currency, the affiliate's Stripe account ID and the invoice number to Stripe.
#Paying through PayPal
PayPal can work in two ways. Choose with PayPal Payouts API on the Payouts tab.
- Off: I send PayPal payments myself and mark them as sent: PayPal payouts wait as awaiting payment. Pay each affiliate from your PayPal account (the Export awaiting payment (CSV) file lists their PayPal emails), then click Mark as sent.
- Sandbox (test) or Live: PayPal payouts are sent from your PayPal account through the PayPal API. They stay awaiting payment until PayPal confirms them, checked every hour. A payout PayPal reports as failed or returned is marked failed and the balance is restored.
Setting up the API
- In your PayPal developer dashboard create a REST API app, with Payouts enabled on your business account.
- Copy the app's client ID and secret.
- Set PayPal Payouts API to Sandbox (test) and enter PayPal client ID and PayPal secret. Click Save settings. The secret is stored encrypted and never shown again; tick Remove the saved secret to delete it.
- Send a test payout with sandbox accounts. When it works, switch to Live with your live app's credentials and try a small payout first.
The integration has not been tested against live PayPal yet, so start in Sandbox mode.
#SEPA bank file for euro transfers
If you pay affiliates by bank transfer in euro, the plugin can build a SEPA credit transfer file (pain.001.001.03) to upload to your online banking.
- On the Payouts tab, under SEPA bank file, enter the store's Account holder, IBAN and, if your bank needs it, BIC (optional). Click Save settings.
- Run payouts. Bank transfer payouts are recorded as awaiting payment.
- On Affiliates > Payouts click Export SEPA XML. The file holds the euro bank transfer payouts awaiting payment whose IBAN is valid, each with its invoice number as the reference.
- Upload the file to your bank. When the bank has sent the transfers, mark the payouts as sent.
The export does not mark anything as paid, and it covers euro payouts only.
#Settings: Portal
The Portal tab connects and styles the affiliate dashboard.
- Enter the ID of the page that contains
[ppl_afw_portal]in Dashboard page ID. It is used in emails and links. - Match the dashboard to your brand with Accent color and Corner radius.
- To add a Leaderboard tab, tick the leaderboard option and set the Leaderboard period (7 to 365 days) and Leaderboard size (3 to 50 places). Affiliates choose to appear on it and are shown by their initials only.
In advanced mode, Separate signup page ID lets you use a standalone signup page with [ppl_afw_registration].
#Multi-level network
The Multi-level tab appears in advanced mode. It lets affiliates recruit other affiliates and earn a share of their recruits' commissions.
- Set Settings mode to Advanced (show all options) on the Advanced tab and save.
- Open the Multi-level tab and tick Multi level network.
- Set Network depth (1 to 10 levels).
- Enter Level rates (%), for example
10, 5pays level 1 10% and level 2 5%. - Choose the Override basis and click Save settings.
When it is on, an Affiliates > Network screen shows the recruitment tree, where you can set a recruiter, and affiliates get a Network tab with their recruit link, their recruits (first name and last initial), levels and network earnings. Rejecting a referral also rejects the overrides it created.
#Fraud settings
The Fraud tab appears in advanced mode. Fraud prevention is on by default.
- Hold threshold: referrals scoring at or above this are held until you release them on Affiliates > Fraud.
- Suspend threshold: affiliates scoring at or above this are suspended automatically.
- Click flood threshold: the number of visits within 10 minutes that counts as suspicious.
Lower the thresholds to be stricter, raise them if honest referrals get held.
#Settings: Advanced
The Advanced tab has two settings.
- Settings mode: switch between simple and advanced mode.
- Data removal: when ticked, deleting the plugin permanently removes all affiliate tables, options and user meta, including product, variation and category rates and the saved Stripe and PayPal secrets. It is off by default, so your data is kept when you delete the plugin.
#Affiliates on WooCommerce orders
The WooCommerce orders list has an Affiliate column. On an order's screen, the Affiliate attribution box shows the affiliate, the commission and its status, with a link to the order's commissions.
To give the sale to someone else, pick an affiliate in Change affiliate (type a name, slug or ID) and update the order. The current commission is rejected and a new one is recorded at the new affiliate's rates. Choose None to remove the attribution. Only an active affiliate can be credited, and the affiliate can no longer be changed once the commission was paid out.
#Emails
The plugin adds these emails to WooCommerce > Settings > Emails, where you can edit the subject, heading and content or switch any of them off:
- Affiliate approved: to the affiliate.
- Affiliate rejected: to the affiliate.
- New commission: to the affiliate when they earn.
- Payout sent: to the affiliate when a payout completes or you mark it as sent.
- Affiliate tier promotion: to the affiliate when they move up a tier.
- New affiliate application: to the store admin.
- New referral (admin): to the store admin when an order is credited to an affiliate. It is off by default.
They use your WooCommerce email template. Affiliates can switch off the New commission, Payout sent and Tier promotion emails in the Settings tab of their dashboard.
Settings reference
Affiliates > All Affiliates > (affiliate name)
The fields on one affiliate's screen. Click Save affiliate to keep your changes.
#Status
The affiliate's status. Only active affiliates earn commissions and are paid.
When to change it
Change it to approve an application, or to stop an affiliate earning.
#Referral slug
The word in the affiliate's links, for example ?ref=slug or /go/slug/. It must be 3 to 32 characters: lowercase letters, numbers and hyphens.
When to change it
Change it when an affiliate asks for a vanity slug. Old links with the previous slug stop crediting them.
#Custom rate
A commission rate just for this affiliate. It is used together with the rate type next to it.
When to change it
Enter a value only when this affiliate should earn a different rate from your normal rates.
#Payout method
The method used when this affiliate is paid. Affiliates normally choose it in their dashboard; it must be one you offer under Settings > Payouts.
When to change it
Set it by hand when you arranged a method with the affiliate directly.
#Tier
The tier this affiliate belongs to. Nightly promotion only ever moves an affiliate up. A tier without thresholds is kept as assigned here.
When to change it
Pick a tier to place someone by hand, for example in a tier without thresholds.
#Recruiter
Shown when Multi level network is switched on (Settings > Multi-level).
Places this affiliate, and their own recruits, under another affiliate in the network. A recruiter can be set only once.
When to change it
Use it when an affiliate joined without their recruiter's link.
#Verified domains
Websites the affiliate owns, one per line, up to 10. With direct link tracking on, visitors following any link from these sites are credited to this affiliate without a referral parameter. A domain can belong to only one affiliate, and your store's own domain is refused.
When to change it
Add only sites you checked the affiliate owns, and turn on direct link tracking on the Tracking tab.
Affiliates > Referrals
The Add manual referral form credits an affiliate by hand. Click Add referral to save it; it is approved at once.
#Select bulk action
Affiliate ID: the ID of the affiliate to credit.
When to change it
Find the ID in the affiliate's screen address or in the order's Change affiliate list.
Affiliates > Tiers
The Add tier form. Click Create tier to add the tier.
#Name
The tier's name, for example Silver or Gold.
#Rate
The commission rate members of this tier earn.
#Min approved referrals
The number of approved referrals an affiliate needs to be promoted to this tier.
When to change it
Leave both thresholds at 0 for a tier you assign by hand only.
#Min lifetime earnings
The lifetime earnings an affiliate needs to be promoted to this tier.
Affiliates > Reports
The date range and export filter at the top of Reports.
#From
The first day of the report range.
#To
The last day of the report range. Click Apply to update the charts and tables.
#Export status All statuses Pending Approved Paid Rejected Refunded
The referral status included in Export referrals in range (CSV).
When to change it
Pick a status to export only those referrals, for example Approved for your accountant.
Affiliates > Tools
The Broadcast announcement form sends a message to all active affiliates.
#Subject
The announcement's subject. Required.
#Message (HTML allowed)
The announcement text. Basic HTML is allowed. Required.
#Also send by email
When ticked, the announcement is emailed as well as shown in the dashboard notification feed.
When to change it
Untick it for minor news that only needs to appear in the dashboard.
Affiliates > Settings > Commissions
What affiliates earn and what counts toward a commission.
#Default commission
The store default rate, used when no more specific rate applies. Percentages are capped at 100%.
#Calculate commission on the discounted line totals
Exclude discounts: commission is calculated on line totals after coupons and discounts.
When to change it
Untick it only if affiliates should earn on the full price before discounts.
#Add line tax to the commission base
Include tax: adds the tax of each line to the commission base.
#Add shipping to the commission base
Include shipping: adds shipping to the commission base. Shipping uses an order level rate, never a product or category rate.
#Minimum order amount
Orders below this total earn no commission. 0 disables the check.
#Grace period
Days commissions stay locked so refunded orders are never paid out. With 0, pending commissions on processing or completed orders are approved by the daily maintenance run.
When to change it
Match it to your return window.
#Affiliates cannot earn on their own purchases
Block self referrals: an affiliate who buys through their own link earns nothing.
#New customers only
Shown when Settings mode is set to Advanced (show all options).
Only commission a customer's first purchase, matched by billing email or customer account. Earlier cancelled, failed and fully refunded orders do not count. Subscription renewals are not limited by it; lifetime commissions are.
When to change it
Turn it on when you only want to reward new customers.
#Claw back refunds after payout
Shown when Settings mode is set to Advanced (show all options).
When an order is refunded after its commission was paid out, deduct that commission from the affiliate's next payout. A negative balance is never paid out.
#Excluded product IDs
Shown when Settings mode is set to Advanced (show all options).
Comma separated product IDs that never earn commission. Excluded products also do not lend their rate to the rest of the order.
#Excluded category IDs
Shown when Settings mode is set to Advanced (show all options).
Comma separated product category term IDs that never earn commission.
#Excluded customer roles
Shown when Settings mode is set to Advanced (show all options).
Comma separated role slugs, e.g. wholesale_customer. Orders from customers with these roles earn no commission.
#Purchase sequence rules
Shown when Settings mode is set to Advanced (show all options).
Pay a different rate depending on how many paid orders the customer has placed in the store, this one included. Each row has From purchase, To purchase (0 = onwards), Type (Percent or your store currency for a fixed amount) and Rate. The first matching row wins. A rate set for the affiliate overrides these rules, and these rules override tier rates.
When to change it
Example: 30% on purchase 1, 10% on purchases 2 to 5, 5% from purchase 6 on. Save to get another empty row, up to 20 rules; clear every field of a row to remove it.
Affiliates > Settings > Tracking
How visits and orders are linked to affiliates.
#Cookie duration
How many days after a click a purchase still credits the affiliate (1 to 365).
#End the attribution window once a commission is recorded
Clear cookie on purchase: after a commission is recorded, later orders from the same visitor need a new click.
When to change it
Untick it if one click should keep crediting the affiliate for the whole cookie duration.
#Referral URL parameter
Shown when Settings mode is set to Advanced (show all options).
The query parameter in referral links, e.g. ref for ?ref=slug.
When to change it
Change it only before affiliates start sharing links, since old links stop working.
#Pretty link base
Shown when Settings mode is set to Advanced (show all options).
The path segment for short links, e.g. go for /go/slug/.
#Attribution model
Which affiliate gets the sale when a visitor clicked links from more than one affiliate.
#Attribute through a hashed IP and browser fingerprint when the referral cookie is missing
Cookieless fallback: still credits the affiliate when the visitor blocks cookies.
#Coupons assigned to an affiliate credit them without a referral link
Coupon tracking: an order using a coupon linked to an affiliate credits that affiliate. Needed for the automatic affiliate coupons.
#When sources disagree
What wins when an order carries a coupon, a lifetime link and a referral link from different affiliates.
#Credit visitors who come from an affiliate's verified website, even without a referral parameter (domains are set on each affiliate's screen)
Direct link tracking: a visit from one of an affiliate's verified domains counts as that affiliate's click.
When to change it
Turn it on after you add verified domains on affiliate screens.
Affiliates > Settings > Affiliates
Approval, the signup form, account creation, affiliate coupons and lifetime and recurring commissions.
#Activate new applications instantly
Auto approve: new applications become active at once.
When to change it
Leave it off to review each application yourself.
#Signup form fields
The label of a signup field: what the applicant sees. The default form asks for Full name, Website or blog, Main social profile, Audience size and How will you promote us?
#Required
When ticked, the field must be filled in before the form can be submitted.
#Program terms
Shown above the terms checkbox on the registration form. Applicants must accept the terms.
#Terms version
Shown when Settings mode is set to Advanced (show all options).
Bump when terms change; new applications record the version they accepted.
#Once referred, a customer earns for their affiliate on all future orders
Lifetime commissions: a referred customer stays linked to the affiliate, who earns on that customer's later orders too.
#Lifetime link expiry
Shown when Settings mode is set to Advanced (show all options).
Months a lifetime link lasts (0 to 120). 0 keeps the link forever. Applies to customers linked after the change.
#Recurring commissions
Shown when Settings mode is set to Advanced (show all options).
Pay commission on WooCommerce Subscriptions renewals (needs the Subscriptions plugin). A renewal earns only while the first commission is not rejected or refunded and the affiliate is active.
#Recurring duration
Shown when Settings mode is set to Advanced (show all options).
How long renewals keep earning.
#Recurring rate (%)
Shown when Settings mode is set to Advanced (show all options).
Percent of each renewal order's commission base. 0 applies the normal commission rates to each renewal.
#Visitors without an account fill in one form: their customer account is created with the application
Signup creates the account: the signup form also asks for email, name and a password (unless WooCommerce generates passwords). Submitting it creates the account, logs the visitor in and sends the application.
When to change it
Untick it to show logged out visitors a login or create account button instead.
#Show the affiliate dashboard, or the signup form, as an Affiliate program tab in WooCommerce My Account
My Account tab: adds an Affiliate program tab to WooCommerce My Account.
#Create a coupon named after the affiliate's slug when they are approved, shown in their dashboard
Coupon for each affiliate: on approval a coupon named after the slug is created and linked to the affiliate. Coupon tracking must be on for it to credit them.
#Affiliate coupon discount
The discount of coupons created on approval or with the Create a coupon button on an affiliate's screen. At most 100 for a percentage. Edit a coupon afterwards like any other.
#Discount type
How the affiliate coupon discount is applied.
Affiliates > Settings > Payouts
Payout threshold, methods, schedule and the details each payment service needs.
#Minimum payout
Affiliates are paid once their approved balance reaches this amount, in your store currency.
#Payout methods
Choose which payout methods affiliates can pick in their dashboard. Affiliates enter their own PayPal email or bank details, stored encrypted.
#Payout schedule
Runs payouts automatically for every active affiliate whose balance reaches the minimum.
#Schedule day
Weekly and every two weeks: day of the week, 1 is Monday and 7 is Sunday. Monthly: day of the month, 1 to 28. Days follow the site timezone. Manual, bank transfer and PayPal payouts without the API then wait as awaiting payment until you mark them as sent.
#Stripe secret key
Needed only for the Stripe Connect payout method. Use a restricted key (rk_) with write access to Transfers. It is stored encrypted and never shown again.
When to change it
Leave it empty to keep a saved key, or type a new one to replace it.
#Remove the saved key
Shown when a Stripe secret key is saved.
Deletes the saved Stripe secret key when you save.
#PayPal Payouts API
Whether PayPal payouts are sent by you or by PayPal through its API.
#PayPal client ID
The client ID of your PayPal REST API app.
When to change it
Use the sandbox app's ID in Sandbox mode and the live app's ID in Live mode.
#PayPal secret
From a REST API app in your PayPal developer dashboard, with Payouts enabled on the business account. The secret is stored encrypted and never shown again.
#Remove the saved secret
Shown when a PayPal secret is saved.
Deletes the saved PayPal secret when you save.
#Account holder
SEPA bank file: the name on the store's bank account the transfers are paid from (up to 70 characters).
When to change it
Fill in the three SEPA fields only if you pay euro bank transfers.
#IBAN
SEPA bank file: the IBAN of the store's bank account. It is checked when you save.
#BIC (optional)
SEPA bank file: the BIC of the store's bank, 8 or 11 characters. The Payouts screen then exports euro bank transfer payouts awaiting payment as a SEPA credit transfer file (pain.001.001.03).
When to change it
Leave it empty if your bank does not ask for it.
Affiliates > Settings > Portal
The affiliate dashboard page, its look and the leaderboard.
#Dashboard page ID
Page containing the [ppl_afw_portal] shortcode. It shows the signup form and, once approved, the full dashboard. Used in emails.
#Accent color
Hex color for the dashboard's buttons and highlights, e.g. #4f46e5.
#Corner radius
CSS size for rounded corners in the dashboard, e.g. 10px.
#Separate signup page ID
Shown when Settings mode is set to Advanced (show all options).
Optional. The dashboard shortcode already shows the signup form, so this is only needed for a standalone signup page with [ppl_afw_registration].
#Add a Leaderboard tab to the affiliate dashboard. Affiliates choose to appear on it and are shown by their initials only
Leaderboard: adds a Leaderboard tab to the affiliate dashboard.
#Leaderboard period
The number of days the leaderboard covers (7 to 365).
#Leaderboard size
How many affiliates the leaderboard shows (3 to 50).
Affiliates > Settings > Multi-level
Shown only in advanced mode. Lets affiliates earn from the sales of affiliates they recruit.
#Multi level network
Shown when Settings mode is set to Advanced (show all options).
Recruiters earn override commissions from their recruits' sales.
#Network depth
Shown when Settings mode is set to Advanced (show all options).
How many levels up the network overrides are paid (1 to 10).
#Level rates (%)
Shown when Settings mode is set to Advanced (show all options).
Comma separated rate per level, e.g. 10, 5 pays level 1 10% and level 2 5%. Levels beyond the network depth are ignored.
#Override basis
Shown when Settings mode is set to Advanced (show all options).
What the level rates are a percentage of.
Affiliates > Settings > Fraud
Shown only in advanced mode. Sets how referrals are scored for risk.
#Fraud prevention
Shown when Settings mode is set to Advanced (show all options).
Score referrals for self dealing, IP overlap, and click flooding.
#Hold threshold
Shown when Settings mode is set to Advanced (show all options).
Referrals scoring at or above this are held until you release them (0 to 1000).
#Suspend threshold
Shown when Settings mode is set to Advanced (show all options).
Affiliates scoring at or above this are automatically suspended (0 to 1000).
#Click flood threshold
Shown when Settings mode is set to Advanced (show all options).
Visits within 10 minutes that count as suspicious (10 to 100000).
Affiliates > Settings > Advanced
The settings mode and what happens to your data when the plugin is deleted.
#Settings mode
Simple mode hides the less common options so setup stays approachable. Switch to advanced any time.
#Permanently remove all affiliate tables, options, and user meta when the plugin is deleted
Delete data on uninstall: deleting the plugin also removes rates, coupon affiliate links (orders keep theirs) and the saved Stripe and PayPal secrets.
When to change it
Tick it only right before you delete the plugin for good.
WooCommerce > Orders > Edit order (Affiliate attribution box)
The affiliate field the plugin adds to each order's screen.
#Change affiliate
Saving the order with another affiliate rejects the current commission and records a new one for the chosen affiliate, at their rates. Type a name, slug or ID to search.
When to change it
Use it to fix an order credited to the wrong affiliate. It is refused once the commission was paid out.
Shortcodes
[ppl_afw_portal]
The complete affiliate experience on one page. Logged out visitors and customers who are not affiliates see the signup form, pending or declined applicants see a status message, and approved affiliates see their full dashboard. Most stores need only this shortcode. Enter the page's ID in **Dashboard page ID** on the Portal tab.
[ppl_afw_portal]
[ppl_afw_registration]
Only the affiliate signup form, for a standalone signup page. Enter that page's ID in **Separate signup page ID** (Portal tab, advanced mode) so visitors are pointed to it from the dashboard page.
[ppl_afw_registration]
On your site
Affiliates use a dashboard on the page with [ppl_afw_portal], or in the Affiliate program tab of WooCommerce My Account.
Before approval, visitors see the signup form with your fields and the program terms. With Signup creates the account on, the same form creates their customer account.
After approval, the dashboard has these tabs:
- Dashboard: unpaid and lifetime earnings, visits, conversion rate, a 30 day earnings chart, achievement badges and recent commissions.
- Links: their referral links and a link builder that turns any store URL into a referral link, with an optional campaign tag.
- Creatives: active creatives with embed code, filtered by category (when at least one creative is active).
- Campaigns: clicks, sales and conversion rate per campaign, and a form to create a named campaign.
- Network: their recruit link and recruits (when the multi level network is on).
- Coupons: coupons linked to them (when they have any).
- Leaderboard: the top affiliates by initials, where they choose whether to appear (when the leaderboard is on).
- Payouts: choose a payout method, enter details, and see payout history with status (awaiting payment, sent, failed or cancelled). They can print their own invoices.
- Settings: change their referral slug and email preferences.
A notification bell shows their in-dashboard feed. The dashboard works with light and dark mode, on small screens and without JavaScript. Active affiliates also get a toolbar shortcut that gives the referral link for whatever page they are viewing.
Frequently asked questions
Do I need the free plugin installed as well?
No. Pro is a complete standalone plugin. While Pro is active the free plugin stays idle and shows a notice, so you can deactivate and delete it. Both use the same data, so nothing is lost.
Which payout methods are supported?
PayPal, Bank transfer, Stripe Connect, Store credit coupon and Manual / offline. Stripe Connect and store credit complete at once. Bank transfer, manual and PayPal (without the Payouts API) wait as awaiting payment until you send the money and click Mark as sent.
Does the plugin send PayPal payments by itself?
Only if you set PayPal Payouts API to Sandbox or Live and enter a client ID and secret from a PayPal REST API app with Payouts enabled. Payouts then complete when PayPal confirms them (checked every hour). The integration has not been tested against live PayPal yet, so start in Sandbox mode.
Does the Stripe payout method need the Stripe plugin?
No. It talks to the Stripe API directly. Add a restricted secret key with write access to Transfers under Affiliates > Settings > Payouts.
Can affiliates earn without anyone clicking a link?
Yes. With coupon tracking on, a coupon linked to an affiliate credits them whenever it is used. You can link coupons by hand, create one from the affiliate's screen, or have one created automatically on approval. Direct link tracking can also credit visitors from an affiliate's verified websites.
Can I pay different rates for different products or affiliates?
Yes. You can set rates per product, variation and category in WooCommerce, a custom rate per affiliate, rates per product for one affiliate, tier rates and purchase sequence rules. The most specific rate wins.
Does it pay commission on subscription renewals?
Yes, with Recurring commissions on (Affiliates tab, advanced mode) and WooCommerce Subscriptions active. You can limit renewals to the first 12, 6 or 3 months.
What happens when an order is refunded?
A full refund or cancellation reverses the commission, and a partial refund removes only the refunded part. If the commission was already paid and Claw back refunds after payout is on, it is deducted from the next payout.
Does it convert currencies?
No. Each commission is recorded in the order's currency, payouts are made per currency, and report totals are not converted.
Does it respect cookie consent?
With the WP Consent API plugin installed, the referral cookie is set only when the visitor gave marketing consent. Visits without consent are still counted, without IP or browser data. IP addresses are stored as hashes.
Does it work with HPOS and the block checkout?
Yes. It is compatible with WooCommerce High Performance Order Storage and the Blocks checkout.
Will uninstalling delete my data?
No. Data is kept unless you first tick the data removal option on Affiliates > Settings > Advanced.
Troubleshooting
- Referral links are not tracking
Check that the affiliate's status is active and that the Cookie duration is set. Test from another browser or a private window, since your own purchases may be blocked by Affiliates cannot earn on their own purchases. With the WP Consent API plugin installed, accept marketing cookies in your test browser. If the affiliate page shows cached content, exclude it from your page cache.
- Commissions stay pending
That is the Grace period protecting you from refunds. Commissions are approved once the order is paid and the grace period passes, or you can approve them on Affiliates > Referrals. With a grace period of 0 they are approved by the next daily maintenance run. Fraud held referrals stay pending until you release them on Affiliates > Fraud.
- A payout says "awaiting payment"
The method needs you to send the money. Pay the affiliate, then click Mark as sent. With the PayPal Payouts API on, PayPal payouts stay awaiting payment until PayPal confirms them (checked every hour).
- "Only active affiliates can be paid. Reactivate the affiliate first."
Suspended, rejected and pending affiliates are never paid. Set the affiliate's Status to
activeon their screen and run the payout again.- "This affiliate has no payable balance."
The affiliate has no approved commissions that are not paid yet. Pending commissions become payable after the grace period. Also check the balance reaches the Minimum payout.
- "Add your Stripe secret key under Affiliates > Settings > Payouts before sending Stripe payouts."
Paste a Stripe secret key into Stripe secret key on the Payouts tab and save. If saving fails with "Settings not saved: that is not a Stripe secret key. It starts with sk_live_, sk_test_, rk_live_ or rk_test_.", copy the full key again from your Stripe dashboard.
- "PayPal refused the API credentials. Check the client ID, the secret and the sandbox or live mode."
The client ID and secret must come from the same PayPal REST API app, and the mode must match it: sandbox credentials with Sandbox (test), live credentials with Live. Re-enter both and save.
- "This affiliate has not added a valid PayPal email." or "This affiliate has not added their bank details."
The affiliate chose a method but did not enter their details. Ask them to fill in their payout details on the Payouts tab of their dashboard, then run the payout again.
- "Store credit can only be paid in the store currency. Pay this balance with another method."
The balance comes from orders in another currency. Pay it with a different method, such as PayPal or bank transfer.
- "The commission was already paid out; the affiliate was not changed."
Change affiliate on an order is refused once its commission was paid. Credit the right affiliate with a manual referral on Affiliates > Referrals instead.