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).
ImprovedPROPayouts > 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.
ImprovedShort 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.
ImprovedShort 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.
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.
ImprovedPROAffiliate 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.
ImprovedPROAffiliate 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.
ImprovedPROAffiliate 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.
ImprovedPROAffiliate 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.
ImprovedPROAffiliate 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.
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.
ImprovedPROCreatives > 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.
ImprovedPROCreatives > 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!”.
ImprovedPROCreatives > The admin list now shows a thumbnail of the finished design for dynamic creatives, rather than the background upload alone.
ImprovedPROCreatives > 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.
ImprovedPROCreatives > Downloaded dynamic creatives now carry the correct file extension.
ImprovedPROCreatives > Very large background images are now refused with a clear message rather than exhausting the server’s memory mid-render.
ImprovedPROCreatives > When the Google Fonts plugin is installed, it no longer overrides the plugin’s bundled fonts.
ImprovedPROPerformance 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.
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.
ImprovedSignificantly sped up the affiliate dashboard, admin reports, leaderboard and every other screen that totals up commission.
ImprovedSignificantly sped up the “View Affiliate” page for affiliates with a lot of referrals.
ImprovedThe “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.
ImprovedMade a few improvements to the speed and performance of generating admin reports.
ImprovedPROImproved the speed of loading the “Commission Graph” on the affiliate dashboard.
ImprovedImproved the commission handling when more than one coupon was used on the same order.
ImprovedUpdated the styling of the “Coupon Affiliate” panel on the edit order page.
ImprovedThe “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.
ImprovedImproved the reliability of the “refresh” button on an order’s “Coupon Affiliate” panel.
ImprovedThe custom “Affiliate” terminology set under the design settings is now applied to the affiliate dashboard, MLA portal and leaderboard, not just the admin area.
ImprovedPROMade around thirty pieces of text on the leaderboard translatable, along with a number of dashboard, portal and settings strings missing from the translation template.
ImprovedThe “Non-Affiliate Coupon Settings” are now available in the free version, and have been moved higher up the commission settings tab.
ImprovedUpdated the “Admin Tools” page styling and layout.
ImprovedPRORedesigned 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.
ImprovedPROThe 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.
ImprovedCustom 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 …