Starting from €7.5/mo
Fixed: AffiliateWP admin screens, including the payout method Configure panels, the Emails settings and the payout, batch, bulk-pay and schedule drawers, work again when another plugin such as Happy Elementor Addons loads its own copy of Alpine.js into the WordPress admin.
Added: Affiliates who reset their password from the affiliate login page stay on that page, are signed in, and land on the affiliate area. Approval emails that ask a new affiliate to set a password use the same link.
Added: Customized emails can pick up the latest default without losing the previous version
Added: Per-affiliate switch for monthly email summaries on the Edit Affiliate screen
Added: Payout Setup Reminder body for affiliates who already finished setup and were then moved to a different payout option
Added: Payment email in the Record as paid confirm dialog
Added: Manual-payout CSV downloads automatically when a payout batch with manual rows finishes
Changed: Turning off Bank payouts (via Stripe account) now stops payouts for affiliates already using it. Their Stripe account stays connected, and they move to another Stripe option or the fallback method. Affiliates in the store's own country are unaffected. A warning shows how many affiliates would move, and where, before save.
Changed: Cross-border Stripe payouts now work from a Stripe account based in any of 34 countries (the US, the UK, the EEA, Canada, or Switzerland)
Changed: International Stripe options are now labelled Bank payouts (via Stripe account) and Bank payouts (direct), with Local bank transfers and Wire transfers indented underneath
Changed: Stripe payout emails now say the money is on its way, not that it has arrived. Both emails are renamed from Payout Completed to Payout Sent. Unedited saved defaults pick up the new wording automatically. Custom copy is left alone
Changed: Manual referrals now say "Record as paid" instead of "Pay" on the Referrals list, the edit screen, bulk pay, and Pay Affiliates
Changed: Affiliates list payout status now marks only affiliates who need attention, and shows PayPal readiness
Changed: Edit Affiliate now names the fallback payout method and why, when the affiliate's chosen method is not available for their country
Changed: Payout country is locked while an affiliate is paid via Stripe Connect. Disconnect their Stripe account first to change it
Changed: Pay-referral confirmations now say whether a payment can be reversed, by method
Changed: Payout drawer timeline now names each hop Stripe can attest, for Global Payouts and Connect, and no longer implies the bank confirmed receipt
Changed: Pay Affiliates stuck-referrals warning now covers failed payouts only
Changed: New installs now fall back to PayPal, then store credit, when no Stripe option reaches an affiliate. Existing installs keep the fallback order they already have
Changed: Global Payouts is now called Stripe Global Payouts on the Affiliates list, Edit Affiliate, the payout drawer, and payout failure messages
Changed: Deleting a processing PayPal or Stripe payout warns that the money may already be in flight
Changed: Stripe dates and times now display in the site timezone. Arrival dates stay as the calendar day Stripe states
Changed: Payout batch method label now reflects the methods actually used, including Mixed when affiliates were paid different ways
Changed: Affiliates list payout status now links to the payout country field when no country is set
Changed: Referrals export help no longer says the CSV is formatted for PayPal Mass Payment
Fixed: PayPal payouts that never received a confirmation are no longer marked failed and paid again. The list and drawer show Unconfirmed, with Retry Payout or View PayPal activity
Fixed: Retrying a Stripe Connect payout after Stripe's 24-hour window no longer creates a second transfer. When amounts no longer match or Stripe cannot confirm an earlier transfer, Retry and Pay with another method are withheld, and the drawer links to that transfer
Fixed: Paying a referral again after a Stripe reversal or a deleted payout now sends a new transfer, and each payout shows the transfer it actually sent
Fixed: A Stripe Global Payout the bank sends back as restricted, recalled, or similarly unusable is no longer retried into the same account
Fixed: Failed Stripe bank payouts now record against the correct affiliate, and the stored arrival estimate updates when the payout succeeds or fails
Fixed: Payout batches no longer create rows for affiliates the preview already excluded, such as Stripe affiliates who are not connected
Added: Global Payouts. Pay affiliates by bank transfer in 90+ countries, in their local currency, with no Stripe account required. When enabled, international affiliates are routed through Global Payouts (they just add bank details on a Stripe-hosted page). Requires a US- or UK-based Stripe account
Added: Payout Setup Reminder email, sent from the Edit Affiliate screen
Added: Paying a referral shows the amount the affiliate receives in their currency, and blocks the send when it is below Stripe's minimum for their country
Changed: Payout drawer redesigned around the payment. Amount and status lead, and bank payouts show what the affiliate received, when it sent and landed, and a receipt
Changed: Stripe setup card on Edit Affiliate names the destination (masked bank account) instead of an account ID
Changed: Stripe webhook status shows when the last event arrived
Changed: Paying affiliates internationally with Stripe's cross-border payouts now also works from a Stripe account based in Germany, Canada, Switzerland, France, the Netherlands or Sweden, alongside the US and the UK.
Fixed: Affiliates can set up Stripe payouts again after the store changes its Stripe API key
Fixed: Stripe Connect setup notice hidden for affiliates who will not be paid through Connect
Fixed: Retrying a failed Stripe payout, from either the Retry button or the daily automatic retry, could send an affiliate's already-paid commissions a second time. A retry now pays only the commissions still owed, and a payout with nothing left to pay is set aside for review instead of retried.
Fixed: Payout checkboxes that could be ticked with no bulk action to apply, after clicking an affiliate on the Payouts screen. Clicking an affiliate now filters the payouts list to them, with bulk actions available and the active filter shown above the list.
Fixed: Filtering referrals by affiliate name leaving the status tab counts unscoped, dropping the filter when a status tab was clicked, and ignoring an affiliate's display name.
Fixed: Clicking Retry Payout more than once created a second payout for the same referrals, so Store Credit affiliates were credited twice and Manual payouts were recorded twice. A retry now produces exactly one replacement payout, however many times the action is clicked.
Changed: Conversions through the [affiliate_conversion_script] shortcode now credit the visit's affiliate and take their status from the shortcode's status attribute, not from the page URL. Referrals that relied on a status query argument are now recorded as pending.
Changed: Clear any full-page cache after updating so cached success pages keep recording conversions.
Changed: The visit tracking cookie now carries a verification code alongside the visit ID.
Changed: The payout batch failure email now sends after the batch finishes processing, with final paid and failed counts.
Fixed: Large Stripe payout batches timing out partway through, leaving the rest of the batch unpaid. Transfers now run in the background, one affiliate at a time.
Fixed: An interrupted and retried Stripe payout batch could pay the same referral twice.
Fixed: The [affiliate_conversion_script] shortcode not recording conversions when an attribute value contained an apostrophe or quote, rejecting referral types such as donations, and ignoring the setting that skips zero-amount referrals.
Fixed: Repeated database errors and stalled or blank campaign statistics on sites whose campaign data was left in an outdated format by a very old version or a migration tool. Corrected automatically; where earlier figures cannot be kept, an admin notice offers to rebuild them from visit history.
Fixed: A duplicate "Referral URL Blacklist" field on Settings > Advanced that edited the same list as Anti-Fraud's Blocked Referring Sites, where clearing one silently emptied the other. Existing lists stay intact on the Anti-Fraud tab.
Fixed: Referrals failing to record on translated sites running PHP 8, with the Give, Gravity Forms, Formidable Pro, Paid Memberships Pro and Sprout Invoices integrations.
Fixed: Fatal errors on translated sites running PHP 8, including on the Affiliates report, the Payouts screen, the visit export, and the Paid Memberships Pro, LifterLMS and Contact Form 7 integration settings.
Fixed: Some inaccurate translated messages, which now display in English until retranslated.
Fixed: A valid Pro license being treated as a lower tier in rare cases, such as after importing a settings file, locking Pro features. Affected sites recover automatically after updating.
Fixed: The success notice shown after a Stripe bulk payout now validates and formats the total on the server, so only a properly formatted amount appears on screen.
Fixed: Custom range Start/End date fields on Pay Affiliates no longer corrupt typed input — the fields now accept typing cleanly, filter out characters that can't appear in a date, and commit the typed date on Enter or blur.
Fixed: An interrupted update could leave the Payouts screen empty and referrals showing as unpaid even after a payout had run. Affected sites now restore the missing table columns automatically on the next admin page load, with all payout data intact.
Fixed: Installs and updates no longer run unnecessary database operations while creating and verifying tables, lowering database load and the chance of timeouts on larger stores.
Added: Automatic Payouts. Set a schedule once and every affiliate is paid on time, every time, each through their own payout method. Recurring weekly or monthly Payout Schedules, on a new Schedules tab under Payouts (Pro)
Added: "Save as schedule" on the Pay Affiliates preview, turning a one-off payout's audience and minimum payout into a recurring schedule
Added: New admin email alerting the affiliate manager when a payout batch finishes with failed payouts, whether from a manual run or an automatic schedule
Changed: Renamed the "Payout Batches" tab to "Batches", alongside Payouts and Schedules
Changed: The "Minimum earnings" filter on the Pay Affiliates screen now takes whole numbers and blocks accidental decimal entry
Changed: Payout batches created by a schedule are now labeled with the schedule that produced them, in both the Batches list and the batch drawer
Changed: When a failed-payout reminder can't be sent, the admin now sees the specific reason (no reminder template for that payout method, no affiliate email on file, or a reminder already sent recently) instead of one generic message
Changed: Redesigned the Pay Affiliates preview header, moving the commission date range into a caption with an inline Edit link and dropping the duplicate "Edit filters" pill
Changed: Email preview and test send now use a consistent sample affiliate (the newest active one) instead of a different random affiliate each time, and manager-facing emails are labeled as using sample data
Changed: Admin notices no longer appear on the Pay Affiliates payout screens, keeping the payout flow distraction-free.
Changed: When testing payouts in Stripe sandbox mode, adding test funds now shows progress while the charge is applied and pre-fills the amount needed so a single top-up covers the whole batch.
Fixed: On the Pay Affiliates preview, clicking a payout method in the summary now scrolls correctly to the top of that method's section.
Fixed: Clearing an affiliate, group, or payout-method filter on the Pay Affiliates preview no longer silently re-applies the filter you just removed
Fixed: The payout batch drawer no longer shows another batch's data or fires a stray "complete" notice when its status check finishes after the drawer has been closed or switched to another batch
Fixed: Uninstalling AffiliateWP with data removal enabled now also drops payout-batch, custom-link, and store-credit tables it previously left behind, alongside the new schedule tables
Fixed: Manual payouts no longer get stuck in "Processing" (with no CSV) on hosts where WP-Cron and background requests are blocked — the batch panel now completes the payout while you watch it.
Fixed: Re-submitting a payout while a batch is still in progress now opens that batch's panel instead of a dead-end warning.
Fixed: Upgrading no longer switches a site's Default Payout Method to Store Credit when Store Credit was enabled but no Stripe or PayPal was configured — it stays on Manual.
Fixed: Expanding a long referrals list on the Payouts screen no longer shifts the table columns or forces horizontal scrolling — the list wraps within the Referrals column.
Fixed: Affiliate Area unserviceable-country payout notice now shows the selected country name instead of the "Select your country…" placeholder.
Fixed: WooCommerce "Exclude Shipping Costs" now applies to percentage-rate commissions again, so referral amounts include shipping when the setting is unchecked.