8.6.01st October 2026Latest
  • NewAI & MCP > AI apps such as Claude, ChatGPT and Cursor, and other plugins such as store assistants, can now work with your affiliate program through the WordPress Abilities API (WordPress 6.9 or later). 19 abilities cover your program summary, affiliates, coupons, referral links, referred orders and who an order is credited to, commission, referral clicks, registrations and recent activity, and (PRO) 4 more cover payouts. Each one reuses the same permission checks as the REST API, so an AI app can never see more than the WordPress user it signs in as. AI & MCP is off until you switch it on under “API, Webhooks & AI > AI & MCP”.
  • NewAI & MCP > MCP support. When the WordPress MCP Adapter plugin is active, or WooCommerce’s own “WooCommerce MCP” feature is switched on, a dedicated “Coupon Affiliates” MCP server is available at /wp-json/coupon-affiliates/mcp, with every enabled ability as a tool. The abilities are also offered through the MCP Adapter’s default server. AI apps sign in with a WordPress application password. The AI & MCP tab shows whether everything needed is in place, with setup steps and a ready-to-copy configuration for AI apps such as Claude Desktop. For claude.ai, ChatGPT and other web connectors, which sign in with OAuth, the tab suggests free MCP connector plugins that provide it, shows when one is already active, and warns when Easy MCP AI is not sharing some of the Coupon Affiliates abilities – such as the actions that change data, once they are allowed.
  • NewAI & MCP > Once switched on, AI apps can only read, and only admins can connect. Two extra options: “Allow actions that change data” (adding affiliates, giving them coupons or taking coupons away, approving or declining registrations and, with PRO, requesting payouts and updating payout statuses), and “Let affiliates connect their own AI app”, which lets affiliates see exactly what their own affiliate dashboard shows them. Every ability can also be switched on or off individually, and AI apps are told which actions to confirm with you first.
  • NewAI & MCP > A “Recent AI activity” list on the AI & MCP tab shows the last 30 calls: which ability was used, by whom, how it connected (MCP, REST API, WP-CLI or another plugin), and whether it worked.
  • NewAI & MCP > On stores already set up for AI apps (the MCP Adapter plugin is active, or WooCommerce MCP is switched on), a one-time notice on the Coupon Affiliates admin pages offers to enable AI tools. It is never shown once a choice has been made, and each admin can dismiss it for good.
  • NewPROLifetime Commission > A “Don’t extend the expiry date when the customer uses the coupon again” option under Settings > Commission. By default, each time a customer uses the affiliate’s coupon again, their lifetime link is extended by the full expiry period. With this option on, the link lasts for a fixed time from when the customer was first linked (for example, exactly 365 days from their first order), however many times they use the coupon in between.
  • NewPROMulti-Level Affiliates > A “Rebuild Network Tiers” button on the MLA Users page. It recalculates every sub-affiliate’s tier 2 and higher parents from their direct (tier 1) parent, working down from the top of each network. Use it once to repair networks affected by the parent chain fix below, or after changing the “Number of Tiers” setting to apply the new number to existing sub-affiliates. Only commission on future orders follows the rebuilt tiers – past commission is not changed.
  • TweakThe API page is now “API, Webhooks & AI”, organised into tabs: Overview, REST API, Webhooks, and AI & MCP. The Overview explains what each one is for, how it signs in and whether it is switched on, with an “At a glance” comparison, and each tab shows an on/off indicator. Saving a form returns you to the tab you were on.
  • Tweak“API, Webhooks & AI” now has its own item in the Coupon Affiliates admin menu, directly below “Admin Tools”. It is still listed on the Admin Tools page too.
  • TweakPRO
  • TweakPROWebhooks > When the REST API is switched off, the Webhooks tab now explains that deliveries are paused, with a link to the REST API tab to switch it on.
  • TweakPROLifetime Commission > An expiry date set by hand, on the affiliate’s “Lifetime” tab or the customer’s user profile, is now kept when the customer uses the coupon again. Before, it was replaced with a new date from the expiry period. Only a date that was actually changed counts as set by hand, so editing just the linked coupon on the “Lifetime” tab, or saving a customer’s profile without changing the date, leaves the date following the expiry period as before.
  • FixAffiliate registrations failed to save on sites whose registrations table still had the “date accepted” column from before version 7.8.0 – for example after that table was restored from an older backup, so new applications, and affiliates added from the admin, could not be saved. The table is now updated automatically the first time this happens, and the registration saved.
  • Fix“Add New Affiliate” with “Assign this user to the existing coupon” ticked also created a second coupon with the same code, copied from the template coupon. The existing coupon is now used, with its own settings and balance.
  • FixThe “Affiliate Application Accepted” email was not sent to affiliates added or approved by an admin while the public registration form was switched off, even when that email was chosen.
  • FixWhen one user was given two affiliate coupons within a few seconds, the second one got no registration record of its own, and the first record was marked accepted again instead.
  • FixThe check that stops an affiliate being given an admin-level role (Administrator, Editor, Author or Shop Manager) when their application is accepted has been hardened.
  • FixPROPayouts > With “Delay Commission (Number of Days)” set, the scheduled check that adds commission once the delay has passed could run for many minutes on stores with a lot of orders, holding up checkout while it ran, especially where the order tables use MyISAM.
  • FixPROPerformance Bonuses > A bonus with a requirement of 0 always showed “0.00 / 0.00” and an empty progress bar on the affiliate dashboard, whatever the affiliate had actually referred. A requirement of 0 is met from the start, so these bonuses now show a full progress bar marked “Qualified”. This only changed what the dashboard showed: when the bonus is awarded is unchanged.
  • FixPROLifetime Commission > A customer’s orders placed without the coupon were not credited to their lifetime affiliate when the customer had an expiry date that did not apply. This affected dates set on the customer’s user profile, and dates left behind after the expiry period was set back to 0. The affiliate’s “Lifetime” tab showed these links as “Never Expires”, but the dates were never cleared, so the customer could stay uncredited indefinitely. These dates are now ignored, as the tab already showed.
  • FixPROLifetime Commission > The Lifetime Affiliate fields on the user profile are now only saved for users who can manage other users, matching who can see them.
  • FixPROMulti-Level Affiliates > In a network built up in stages, such as by assigning sub-affiliates one at a time, affiliates further down could keep out-of-date tier 2 and higher parents, so the network was right near the top and wrong further down. A top-level affiliate then did not see the whole network below them on their MLA dashboard, or earn MLA commission from all of it. Each sub-affiliate stores a copy of their parent’s own parents, and after a change the sub-affiliates were updated in no particular order, so some copied their parent’s parents before those had been updated. Adding a sub-affiliate who already had sub-affiliates of their own did not pass the new parents down to them at all. Sub-affiliates are now updated from the top down whenever a tier 1 parent is changed or cleared on the user profile, and when a sub-affiliate is added or removed on the View Affiliate page. Networks saved before this fix can be repaired with the new “Rebuild Network Tiers” button.
  • FixPROMulti-Level Affiliates > Changing a parent higher up no longer cuts a sub-affiliate’s parents back to a deleted account when their direct parent’s account has been deleted. Their parents are now left as they were.
  • FixPROMulti-Level Affiliates > Removing a sub-affiliate on the View Affiliate page now reloads the page, as adding one already does, so their own sub-affiliates, who leave the network with them, disappear from the table too.
  • FixPROMulti-Level Affiliates > The MLA network chart stopped rendering when a sub-affiliate’s direct parent had no coupon, because the parent is not drawn on the chart but the sub-affiliate was still attached to them. Such sub-affiliates are now attached to the nearest parent above them that is on the chart. The same applies to a sub-affiliate whose direct parent’s account was deleted: they are now shown on the chart rather than left out.
  • FixPROMulti-Level Affiliates > On sites set to 10 or more MLA tiers, tier 10 and above were saved under the wrong name (“U0” instead of “T10”), so no MLA commission was ever paid for those tiers. New assignments now use the correct name, and “Rebuild Network Tiers” corrects existing sub-affiliates.
  • DeveloperNew filters for AI & MCP: “wcusage_abilities_definitions” to add, change or remove abilities, “wcusage_abilities_controller_files” for the REST API controllers they call, “wcusage_abilities_rate_limit” (default 120 reads and 20 changes per user per minute), “wcusage_abilities_log_size”, “wcusage_abilities_mcp_server_enabled”, “wcusage_abilities_show_notice”, “wcusage_abilities_connector_plugins”, “wcusage_abilities_connector_gaps” and “wcusage_abilities_request_channel”.
  • DeveloperA “wcusage_api_admin_handle_action” filter for handling custom form actions on the API, Webhooks & AI screen.
  • DeveloperPROMulti-Level Affiliates > New “wcusage_mla_refresh_sub_affiliate_parents( $user_id )” and “wcusage_mla_refresh_all_parents()” functions. “wcusage_mla_add_parent_to_user()” still only updates the one user, so code that assigns MLA parents to a user who may already have sub-affiliates should call “wcusage_mla_refresh_sub_affiliate_parents()” for that user afterwards.
8.5.122nd September 2026
  • FixPROThe Simple Store Credit “Install Free Version Now” button failed with “Plugin not found.” and the “Get Free Version” link opened a missing page, both from the wrong WordPress.org slug.
  • FixPROThe Simple Store Credit migration tool reported “No customers with a balance were found in this plugin.” for the built-in store credit source, even though running it did migrate those balances, and it never offered to import past payouts into the wallet activity log. The built-in wallet now reports its customer count and total up front, and declares the payout history it can provide.
  • TweakPROSimple Store Credit now installs and activates without leaving the settings screen, then swaps straight to the integration settings so unsaved changes are kept (unchanged without JavaScript). The panel also states what is about to be installed, and lists the Free and PRO options more nicely.
8.5.021st September 2026
  • NewPROStore Credit Payouts > Built-in integration with the “Simple Store Credit for WooCommerce” plugin by RelyWP, now the recommended first option in the “Wallet System” dropdown. Store credit payouts are added straight to the affiliate’s Simple Store Credit wallet in one click, with no separate integration addon needed. Works with both the free and PRO versions of the plugin, and the settings section offers a one-click install of the free version when it is not yet installed.
  • NewPROStore Credit Payouts > Integration settings for Simple Store Credit: deliver payouts to the wallet balance or as credit voucher codes (with an optional voucher expiry), and choose whether the balance shown to affiliates includes their unused voucher credit. Live status of the wallet plugin’s credit systems is shown alongside, and the “Store Credit” column on the admin users list is supported for this wallet too.
  • NewPROStore Credit Payouts > Migrate built-in store credit into Simple Store Credit. The built-in wallet appears as a source in the Simple Store Credit migration tool (Store Credit > Migration) whenever any users still hold built-in credit, with the choice of adding to or overriding their wallet balances, plus an optional import of their past store credit payouts into the wallet activity log. The Payouts settings show how many users hold built-in credit and its total value, with a button to open the migration tool and another to clear the built-in balances afterwards (each cleared balance is backed up to user meta first). Once a migration has covered every credit holder, the panel shrinks to a small footer link, and the “Migration” item is removed from the Store Credit admin menu again if the built-in wallet was the only migration source on offer (the migration tool stays reachable from that footer link).
  • TweakPROPayouts > The payout payment methods under “Payment Methods” in the Payouts settings tab are now shown as collapsible accordions, each closed by default with only the enable toggle, method name and a “Show Settings” button visible. Enabling a method opens it automatically, and disabled methods are greyed out and cannot be opened.
  • TweakShort URLs > A shortlink can now also be created for the domain your referral links actually point at, not only the WordPress domain, so the Short URL generator keeps working on sites using the new referral URL filter. Everything else is still rejected as before, and the domain check is no longer case sensitive.
  • FixThe “Default Referral URL Page” setting was rebuilt onto the WordPress domain if it had been saved with an upper case “WWW.” prefix, because the check that ignores the prefix was case sensitive and treated the URL as belonging to a different site.
  • FixPROMulti-Level Affiliates > Opening an affiliate under “Coupon Affiliates > Affiliates” could show a critical error, with “Allowed memory size of … bytes exhausted” logged against the View Affiliate page. If an affiliate had been given a parent who was already somewhere below them in their own network, the resulting circular chain made the Sub-Affiliates table follow the same affiliates round in circles until PHP ran out of memory. Raising the memory limit only delayed the error. The table now stops as soon as it revisits an affiliate, so a network that already contains a loop opens normally instead of taking the page down.
  • FixPROMulti-Level Affiliates > The “Tier 1 – Parent User” field on a user’s profile accepted any username, including one of that affiliate’s own sub-affiliates, which is what created the circular network above. The assignment is now refused with an explanation, and the existing parent is left unchanged.
  • FixPROMulti-Level Affiliates > The MLA network chart could trigger a critical error on PHP 8 if a user account shown in the network had since been deleted. Deleted accounts are now left out of the chart and the sub-affiliates table.
  • FixPROMulti-Level Affiliates > PHP warnings (“Undefined array key wcusage_mla_dashboard_page”) were logged on the MLA settings screen and whenever an MLA dashboard link was built, on sites where the MLA Dashboard Page setting had never been saved.
  • FixPROMulti-Level Affiliates > The “Add Sub-Affiliate” button on the View Affiliate page reported that a sub-affiliate had been added when the assignment had actually been refused for creating a loop in the network. It now explains why instead. Sub-affiliate invite records and “new sub-affiliate” notifications are likewise no longer created for a registration whose parent assignment was refused.
  • FixPROMulti-Level Affiliates > A deleted account in the middle of a network left the MLA network chart with a branch hanging off a node that was no longer drawn, which stopped the whole chart from rendering rather than just that branch. Those branches are now left out as well. A deleted coupon owner no longer triggers a PHP warning on the sub-affiliate coupon list either.
  • FixPROMulti-Level Affiliates > With “Make MLA Dashboard ‘Invite Only'” enabled, an admin opening an affiliate’s MLA dashboard saw “Viewing MLA dashboard for user: …” immediately followed by “Sorry, you do not have permission to view the MLA dashboard.” The access check was meant to let admins through, but it only skipped blocking them rather than granting access, so any admin who had not separately been given “MLA Dashboard Access” on their own profile was refused every MLA dashboard, including their own affiliates’. Admin access is now granted outright, and the dashboard stays invite only for everyone else exactly as before.
  • FixPROMulti-Level Affiliates > The “MLA Dashboard” link on the affiliate dashboard sent an MLA parent to the wrong place while they were viewing one of their sub-affiliates’ coupons. The link was built for the affiliate being viewed rather than for the person viewing, so it opened the MLA dashboard with that sub-affiliate’s username attached. It now takes an MLA parent back to their own MLA dashboard, while an admin previewing an affiliate is still taken to that affiliate’s MLA dashboard as before.
  • FixPROMulti-Level Affiliates > An MLA parent opening the MLA dashboard of one of their own sub-affiliates (the MLA dashboard page with “?user=” in the address) was refused with “Sorry, you do not have permission to view the MLA dashboard for user: …”, even though that sub-affiliate was in their network. The parent check compared the logged-in user’s ID against the saved parent IDs too strictly for the form they are stored in, so it never matched. Admins were not affected.
  • FixPROMulti-Level Affiliates > With a role such as Shop Manager given full access under “Admin Permissions” (Settings > Advanced), users in that role could open the MLA tab on the View Affiliate page but could not add or remove a sub-affiliate, or search for one to add: each attempt was refused as “Unauthorized”. Those three actions still required the built-in administrator capability instead of the plugin’s own admin permission setting, which the rest of the View Affiliate page already uses. They now honour the setting.
  • FixReferral links were built by starting a fresh “?” query string, so a referral URL that already had parameters of its own produced a link with two “?” in it. The coupon is now added to the existing query string instead, in the affiliate dashboard, the creatives embed codes, the affiliate widget, the referral URL shortcodes and the registration emails.
  • FixAn order’s per-product commission was read back from the saved order meta before the freshly calculated figure had been written, so a coupon-level “Refresh Statistics” and the “Recalculate” button on an order could disagree, with an order’s commission flipping between two values each time it was recalculated and the breakdown on the order showing parts that did not add up to the total. The calculated figure is now kept, so both tools settle on the same amount.
  • FixBlocked referrer domains were not actually being blocked when a referral click was recorded, because the domain being checked was discarded before the comparison ran. Clicks from a domain listed under “Blocked Domains” are no longer recorded.
  • FixA PHP deprecation notice (“Passing null to parameter #1 of type string”) was logged on PHP 8.1 and above when the “Default Referral URL Page” setting held a URL with no page path, which is the usual shape of one left behind by a site migration. On a WordPress installed in a subdirectory, that same repair also no longer repeats the subdirectory in the rebuilt URL.
  • TweakShort URLs > The short link redirect no longer inspects the URL on ordinary page loads, only on short link ones.
  • DeveloperA “wcusage_default_ref_url” filter for the referral URL that every affiliate link is built from. The “Default Referral URL Page” setting is corrected back to your WordPress domain whenever the two disagree, so that a URL left behind by a site migration repairs itself rather than sending affiliates to a domain the shop no longer owns. Sites that deliberately serve their shop from a different domain to the WordPress install, such as a separate front end or a headless setup, can now use this filter instead of fighting that correction. It covers the affiliate dashboard, the referral URL generator, the social share buttons, QR codes, creatives, the affiliate widget, the referral URL shortcodes and the registration emails.
  • DeveloperA “wcusage_affiliate_url” filter, which runs on the finished referral link after the coupon code has been added, for replacing a whole URL rather than just the part before the coupon code. It covers the affiliate dashboard, QR codes, creatives, the referral URL shortcodes and the registration emails.
  • DeveloperA “wcusage_record_click()” function for recording a referral click from outside the plugin, for a front end that handles referral links itself and still wants the click to reach the affiliate’s URL statistics. It takes a coupon code plus optional campaign, landing page, referrer and visitor details, and returns the ID of the click it saved. A click whose referrer is one of the site’s blocked domains is not recorded. A “wcusage_click_recorded” action fires afterwards.
  • DeveloperA “wcusage_conversion_click_id” filter for telling the plugin which recorded click an order should be counted as the conversion of. Conversions are normally matched using a cookie set when the visitor follows the referral link, which a front end recording its own clicks has no way to set, so the click ID can now be supplied directly. Note that it runs where the plugin marks conversions, on the WooCommerce order received page, so a front end that never loads that page will need to mark the conversion itself.
8.4.014th September 2026
  • NewSuspend Affiliates > You can now suspend an affiliate instead of deleting them, from a “Suspend” button on the View Affiliate page or from the actions dropdown on the affiliates list. A suspended affiliate cannot access their affiliate dashboard, portal or MLA dashboard, and none of their coupons can be applied to a cart, auto-applied from a referral link, or used at checkout. Nothing is deleted – the user, their coupons, statistics, commission and payout history are all kept and stay fully viewable and editable by admins, and the suspension can be lifted at any time.
  • NewSuspend Affiliates > Suspended affiliates are flagged with a “Suspended” badge on the affiliates list and a banner on their View Affiliate page showing when they were suspended and by whom. Their coupons show a “Locked” padlock beside the coupon code on both the Coupon Affiliates coupons list and the WooCommerce Coupons list.
  • NewSuspend Affiliates > Suspending and un-suspending an affiliate is recorded in the activity log.
  • NewPROAffiliate Reports > The scheduled affiliate report has been rebuilt. Alongside the existing figures it can now show a headline earnings banner, a percentage change against the previous period on every statistic, best selling products, where the clicks came from (referring sites, landing pages and campaigns), new versus returning customers, payout activity, leaderboard position, sub-affiliate network totals.
  • NewPROAffiliate Reports > Three templates – “Modern” (the full report), “Minimal” (headline figures and a dashboard link) and “Classic” (the original three blocks of statistics) – plus individual switches for every section and every statistic, so each report can be built exactly as you want it. Anything switched off is no longer calculated, so a shorter report is also a faster one.
  • NewPROAffiliate Reports > A “Preview” button on the settings screen renders the real report for any coupon, email and PDF, without sending anything.
  • NewPROAffiliate Reports > Extra statistics available as cards: average order value, earnings per click, items sold, commission per order, paid this period and paid to date.
  • NewPROAffiliate Reports > New settings for the accent colour, cards per row, paper size, subject line, every section heading, the dashboard button text, and a plain text version of the email for clients that prefer one.
  • NewPROAffiliate Reports > Reports are now sent in batches in the background, with a schedule status panel showing the next run, how many were sent, and why any failed. Previously every affiliate was processed in one cron request, which could run past the PHP time limit on a large programme and leave the remaining affiliates without a report.
  • NewPROAffiliate Reports > Options to skip affiliates with no activity in the period, to delete generated PDFs after a number of months, and to block direct web access to the saved report files.
  • NewPROMailing List Integrations > FluentCRM is now supported. Choose a list and a tag to apply when an affiliate joins your program, with an option to require double opt-in.
  • NewPROScheduled Payout Requests > You can now choose which day of the month a monthly schedule runs on, rather than always the 1st. Pick any date from the 1st to the 31st, or “Last day of the month”. If the chosen date does not exist in a month (such as the 31st in February), the last day of that month is used instead.
  • TweakPROAffiliate Reports > The email and the PDF are now built from one set of figures and one set of layout components shared with payout statements, so the two documents agree with each other and look related.
  • TweakPROAffiliate Reports > Report PDFs are saved with an unguessable filename, and a shop manager can view or download any affiliate’s current report from the settings screen.
  • TweakPROAffiliate Reports > A report never shows an affiliate more than their dashboard does. Sections tied to a dashboard feature you have hidden (commission, referral URLs, products in the orders list, customer names, campaigns, payouts, the multi-level network) are left out of the report automatically.
  • TweakPROAffiliate Reports > The Reports settings tab has been reorganised into titled panels with related options side by side, and the preview / test dialog now reports whether the PDF was attached to the test email (and why not, if it was not). Section toggles whose dashboard feature is switched off are shown greyed out with the reason.
  • TweakPROAffiliate Reports > Stat cards on the PDF are balanced across rows so a group never ends with a single card, and tables may continue onto the next page instead of leaving the previous page half empty.
  • FixPROAffiliate Reports > Weekly reports covered the wrong dates. The date range was built with “first day of last week”, which PHP does not understand as a week, so weekly reports were reporting on a range roughly two months wide.
  • FixPROAffiliate Reports > Quarterly reports were always empty. The range started at the first day of the UPCOMING quarter, which has no orders in it yet.
  • FixPROAffiliate Reports > The subject line, PDF title and saved file path always said “last month”, whatever the schedule was set to.
  • FixPROAffiliate Reports > The PDF attachment was passed to the mailer as a URL rather than a file path, so some SMTP plugins sent the email without it.
  • FixPROAffiliate Reports > Report styling was added to every WooCommerce email the store sent, and once a report email logo was set it replaced the store logo in customer order emails too. Report styling is now applied only while a report is being sent.
  • FixPROAffiliate Reports > The statistics grid was laid out with floated columns, which Outlook ignores, so the figures stacked into one long column for many recipients. Everything is now built from tables that render the same in every mail client, and stays readable at phone width.
  • FixPROAffiliate Reports > PDFs used a core font that cannot render anything outside Western European characters, so affiliate names and many currency symbols came out wrong. They now use the same embedded Unicode font as payout statements.
  • FixPROPDF documents > Bold text in PDF reports and statements was rendering at regular weight, because the embedded Unicode font ships without a bold face. Bold is now synthesised when no bold face is available, so headings, figures and labels have proper weight contrast.
  • FixA PHP warning (“Attempt to read property “ID” on false”) was logged on every cart and checkout request when “Allow affiliate user to apply their own coupon code at cart / checkout” was switched off and the billing email address did not belong to a registered user account. The coupon check now looks the user up safely and is skipped when there is no matching account.
8.3.07th September 2026
  • NewPROCreatives > Dynamic creatives have been rebuilt around a new visual designer. Rather than filling in ten fixed text slots and positioning them with margin numbers, you now place text, QR codes, images, profile pictures and shapes on a live canvas by dragging them, with snapping guides, arrow-key nudging, undo and redo, multi-select, copy and paste, and a layer list for ordering. See “Coupon Affiliates > Creatives”.
  • NewPROCreatives > A creative no longer needs a background image. Leave the image empty to design on a blank canvas of any size, with a solid colour, gradient or transparent background, and pick from preset sizes for social posts, stories, leaderboards, skyscrapers, mobile banners and email headers.
  • NewPROCreatives > Sixteen ready-made starter layouts, including “Aurora”, “Neon night”, “Sale flash”, “Swing tag”, “Corner ribbon”, “Creator spotlight”, “QR card” and “Voucher”. Apply one and change anything you like, or keep your own canvas size and have the layout scaled to fit.
  • NewPROCreatives > Text layers now support letter spacing, line height, wrapping, upper case, lower case and capitalised text, drop shadows, outlines, a background behind the text, gradient fills, rotation and opacity, with normal, bold, italic and serif faces. Extra fonts can be registered with the “wcusage_creative_fonts” filter.
  • NewPROCreatives > Shape layers: rectangle, circle, triangle, diamond, arrow, chevron, star, burst, pentagon and hexagon, each with a solid or gradient fill, an “outline only” mode for rings and frames, corner radius, rotation and opacity.
  • NewPROCreatives > A “Profile image” layer that shows each affiliate their own profile picture (or Gravatar) as a circle or square with an optional border ring, and an “Image” layer for placing a logo or any other upload onto the design.
  • NewPROCreatives > A {store} merge tag for the site name, alongside {coupon}, {discount}, {username}, {first-name} and {company}.
  • NewPROCreatives > “Preview as” fills the design in with a real affiliate’s details by searching for their coupon code, and “Preview exact PNG” renders it through the same engine that produces the affiliate’s files. A “Things to check” panel points out text that runs off the canvas or is too small to read.
  • NewPROCreatives > Generated creatives are now saved as image files in the uploads folder and served straight from your web server. Previously every dynamic creative on the dashboard was a separate WordPress request on every page view, cached for only 24 hours. Cached images are rebuilt automatically whenever the creative is updated, and are pre-built when you save so the first affiliate to view them does not wait.
  • NewPROCreatives > A creative with nothing affiliate-specific in it (no merge tags, QR code or profile picture) is now generated once and shared, rather than once per affiliate.
  • NewPROCreatives > New options under the creatives settings: “Image Format” (Automatic saves both WebP and PNG and keeps the smaller file), “WebP Quality”, “Build missing creatives while the page loads”, “Creative Display Width”, and a “Clear generated creative images” button.
  • NewPROCreatives > A “Duplicate” link on each row of the admin list.
  • TweakPROCreatives > Existing dynamic creatives render exactly as before. Nothing moves until you open one in the designer and save it, and “Preview exact PNG” lets you compare the converted design against the current output first.
  • TweakPROCreatives > Background images can now be JPEG, GIF, WebP or AVIF as well as PNG. Previously anything other than PNG failed with “Could not load image!”.
  • TweakPROCreatives > The admin list now shows a thumbnail of the finished design for dynamic creatives, rather than the background upload alone.
  • TweakPROCreatives > Images on the affiliate dashboard now load lazily, with a loading indicator while an image is generated, so creatives further down the page are not generated until they are scrolled into view. The dashboard grid uses a smaller display size, and the full-resolution version is only generated when the affiliate previews or downloads it.
  • TweakPROCreatives > Downloaded dynamic creatives now carry the correct file extension.
  • TweakPROCreatives > Very large background images are now refused with a clear message rather than exhausting the server’s memory mid-render.
  • TweakPROCreatives > When the Google Fonts plugin is installed, it no longer overrides the plugin’s bundled fonts.
  • TweakPROPerformance Bonuses > Bonuses are awarded from each coupon’s saved “all time” stats, so they depend on the ‘Save the calculated “all time” stats for coupons as meta data’ option in the “Debug” settings tab. Previously, with that option switched off, the Performance Bonuses menu disappeared, bonuses silently stopped being awarded, and the “Add New Bonus” button in the Bonuses settings led to an “Invalid post type” error. The Bonuses settings tab, the Performance Bonuses admin pages and the Coupon Affiliates dashboard now show a notice explaining this with a one-click “Enable now” button, existing bonuses stay listed while paused, and a bonus cannot be published until the option is enabled.
  • FixPROCreatives > A dynamic creative embedded on an affiliate’s own website using its embed code could fail to load, as the image endpoint rejected requests from other sites. Access is now controlled by the signed token in the URL alone.
  • FixPROCreatives > With the ‘Show Creative “Image”‘ setting turned off, the preview, download and embed-code links for dynamic creatives on the affiliate dashboard were empty.
  • FixPROCreatives > The preview popup on the affiliate dashboard showed an empty box, with no loading indicator, while a dynamic creative was being generated.
8.2.031st August 2026
  • NewA REST API for connecting external tools, dashboards and AI assistants to your affiliate program, with API keys, scopes and an OpenAPI document. See “Coupon Affiliates > Admin Tools > API”.
  • NewPROWebhooks, sending a signed JSON notification to another service whenever a referral, commission, registration or payout happens.
  • NewPROA “Lifetime” tab on the affiliate view page, listing every customer linked to that affiliate, with the linked coupon and expiry date editable from the list. Customers can also be assigned to an affiliate as their lifetime referrer by hand, without waiting for the customer to order on the coupon.
  • NewHovering the commission amount in the “Coupon Affiliate” panel on an order now shows a full breakdown of how that figure was calculated.
  • NewRight-to-left support for the affiliate dashboard, applied automatically on sites using a right-to-left language such as Hebrew, Arabic, Farsi or Urdu.
  • NewA “New Coupon Assigned” email, sent to an existing affiliate when an admin gives them an additional coupon. The “Add New Coupon” and “Add New Affiliate” forms now let you choose which email the affiliate receives, or send none at all, and the email can be edited or turned off under the notification settings.
  • NewPROA “Customise affiliate details fields” panel under the payout statement settings, for renaming the company, address and tax number fields the affiliate fills in, marking any of them as required, hiding the ones you do not need, and adding extra fields of your own. Labels are left blank by default, so nothing changes until you enter your own wording.
  • TweakSignificantly sped up the affiliate dashboard, admin reports, leaderboard and every other screen that totals up commission.
  • TweakSignificantly sped up the “View Affiliate” page for affiliates with a lot of referrals.
  • TweakThe “Referred Orders” tab on the “View Affiliate” page can now be filtered by order status and by coupon, and searched by order number, customer name or email address. The “To” date is also now pre-filled with today’s date.
  • TweakMade a few improvements to the speed and performance of generating admin reports.
  • TweakPROImproved the speed of loading the “Commission Graph” on the affiliate dashboard.
  • TweakImproved the commission handling when more than one coupon was used on the same order.
  • TweakUpdated the styling of the “Coupon Affiliate” panel on the edit order page.
  • TweakThe “Export Affiliate Users” button on the Coupon Affiliate Users page now sits on the right and opens a panel to choose the group / role and sort order before downloading, matching the export on the Affiliate Orders page.
  • TweakImproved the reliability of the “refresh” button on an order’s “Coupon Affiliate” panel.
  • TweakThe custom “Affiliate” terminology set under the design settings is now applied to the affiliate dashboard, MLA portal and leaderboard, not just the admin area.
  • TweakPROMade around thirty pieces of text on the leaderboard translatable, along with a number of dashboard, portal and settings strings missing from the translation template.
  • TweakThe “Non-Affiliate Coupon Settings” are now available in the free version, and have been moved higher up the commission settings tab.
  • TweakUpdated the “Admin Tools” page styling and layout.
  • TweakPRORedesigned the PDF payout statement, with a clearer header and a status badge, side-by-side “From” and “Paid To” panels, a tidier items table and a highlighted total that picks up the button colour from your design settings.
  • TweakPROThe tax number, and any extra fields you add, are now labelled in the “Paid To” section of a payout statement, so a reference number is no longer printed on a line of its own with nothing to say what it is.
  • TweakCustom registration field answers were only saved to the affiliate’s profile when the application created a new account, so an applicant who was already logged in had the values on their application but nowhere else – the dashboard “Account Details” and admin user screens showed the fields blank even once accepted. Answers on existing applications can be copied across with the new “Restore Registration Field Answers” tool, which appears under Admin Tools only if your site has any to copy.
  • FixA custom registration field whose label contained an apostrophe or an ampersand (for example “Recipient’s full name”) never matched its stored answer, so it always displayed as blank, and answers containing an apostrophe displayed as “'”.
  • FixPROOn an order with more than one coupon, the granted commission was stored as a single figure that the last coupon overwrote, so the wrong amount was taken back when the order left a completed status. Each coupon now records and removes its own amount.
  • FixRefreshing an affiliate’s statistics did not recalculate pending commission on stores using High-Performance Order Storage.
  • FixOn stores in a timezone ahead of UTC, an order placed shortly after midnight was missing from “Referred Orders”, the dashboard statistics and the commission graph until later in the day, even though the all-time totals counted it. Date ranges now follow the store’s own timezone instead of UTC.
  • FixPROLifetime commission was calculated twice on stores using High-Performance Order Storage, and the customer was only linked to their lifetime affiliate on the second run.
  • FixPROFixed an issue with the commission balance when re-opening a cancelled order.
  • FixPROStore credit was taken before payment, and was not returned if the payment failed. It is now returned when an order fails or is cancelled, and taken again if that order is later paid.
  • FixThe Affiliate Portal and MLA Portal pages could return a “404 Not Found” on sites that had never re-saved their settings. The required URL rules are now installed automatically whenever they are missing.
  • FixThe Affiliate Portal slug was not escaped in its URL rule, so an empty slug or one containing punctuation could take over other pages. It is now escaped and falls back to “affiliate-portal”.
  • FixPROSending a test newsletter added a backslash before every apostrophe and quotation …