Campaign Display Name - Campaigns can have an optional display name that affiliates see instead of the internal campaign name across grids, reports, banners, coupons, tracking codes, and emails. Merchants keep seeing the real name, with an optional Display name column and filter in the Campaigns grid, and the alias is available in REST API v3 (#13922)
Affiliates Manager
Bulk File Download - Files uploaded by affiliates to a file uploader field can be downloaded for selected affiliates as a single ZIP archive. Large downloads run in the background with a progress dialog and an optional email notification when the archive is ready (#16542)
Improvements
Security
Improved Output Escaping - Improved escaping of affiliate-entered data (#16596) (#16765)
Improved Access Control - Strengthened access control checks for account-scoped configuration data (#16764)
Site Replication Hardening - Hardened how replicated site content is served (#11880)
Performance
Clicks Report on Large Databases - The Clicks list no longer times out on installations with a very large click history when filtered by affiliate, campaign, or date range (#16730)
REST API v3
Consistent Date Parameters - Empty date and period parameters are now treated the same as absent ones across endpoints, and GET /reports/top-affiliates defaults to the current month instead of all-time data when no date parameters are given (#16639)
Network
Lifetime Referrals Access Control - Affiliate details in the Lifetime referrals grid are shown only to merchants allowed to read affiliates, and network merchants see only referrals of their own account (#16497)
Bug Fixes
Login
Google Sign-In Login Records - Signing in with Google is now recorded as a regular login: the What's new page no longer reappears on every login, last login date and login count are updated, and new-IP login notification emails are sent (#16711)
Login to Affiliate Panel Button - The Login to affiliate panel button no longer fails with "Can not login. User is not approved." when clicked right after opening an approved affiliate's profile (#16736)
User Interface
Color Picker Position - The color picker popup now opens next to its field, at the correct size and fully within the page, in both left-to-right and right-to-left languages (#16657)
Direct Links to Configuration Screens - URL anchors for Payouts Balance and eight other configuration screens now open the requested screen instead of redirecting to Home (#16645)
Site Replication
Tracking Code Placement - The click tracking code is now inserted after the page's real opening body tag, so replicated pages whose head scripts write a body tag in JavaScript no longer render broken (#13768)
Declined Click Redirect - Declined clicks on replicated pages are now redirected to the configured URL instead of failing with a server error (#16640)
Single Sign-On with Google - Merchants and affiliates can now sign in with their Google account, which matches an existing account by its email address. Newly created accounts have Google sign-in active for the merchant login automatically; existing accounts need to activate the feature first (#13503) (#13861)
Improvements
Security
Improved URL Validation - Strengthened URL validation in the affiliate panel (#16595)
Themes
Trace as the Default Theme - Trace is now the default theme for the signup mini-site and the login pages on new installations and on accounts that never selected a theme (#16633)
REST API v3
Custom Date Range in Traffic Overview - GET /traffic-overview and GET /affiliate/traffic-overview now accept period_from and period_to parameters to report on a custom date range (#16585)
Product ID Filter on Transactions - Commissions can now be filtered by product_id on GET /transactions and GET /affiliate/transactions (#16578)
Refund by Order Documentation - The API documentation now explains that product_id and data1-data5 on the refund-by-order endpoint select which of the order's commissions are refunded (#16464)
Mass Messages
Mandatory Recipient Selection - The recipient filter of a mass message no longer defaults to All Affiliates; the audience must be explicitly selected before sending (#16572)
Affiliates Manager
Filter by Uploaded Files - File uploader fields in the custom filter now offer a Yes / No choice for whether the affiliate has uploaded a file (#16548)
Integrations
Shopify Recharge Affiliate Changes - When a Recharge renewal contains a changed product, the fallback commission now goes to the affiliate of the active recurring rule instead of the affiliate of the original sale (#16594)
Bug Fixes
Domain Settings
Custom SSL Certificates - Certificate signing requests generated in Domain settings are now accepted by modern certificate authorities such as Let's Encrypt (#16612)
Reports
Campaign Filter in Top Affiliates - Filtering the Top Affiliates report by campaign now shows statistics for all affiliates promoting the campaign when the Private campaigns feature is active (#16610)
Languages
Translated Percentage - The Translated [%] column in the Languages grid no longer drops to 0% after adding or editing a custom translation (#16586)
Affiliate Panel
Campaign Categories - The "Show categories of the campaign" button on the affiliate panel Campaigns screen no longer fails with a permission error (#16550)
Filter Reports by Multiple Campaigns - Campaign filters in merchant reports and network account filters now allow selecting several values at once, and the report shows combined data for the whole selection; saved filters restore all selected values (#11688)
Mass Messages
Send Confirmation - Sending a message to affiliates now asks for confirmation first, showing how many recipients will receive the email and which recipient filter is used (#14941)
Improvements
Security
Strengthened Access Controls - Tightened ownership and privilege checks on internal services (#15595) (#16491)
Improved Content Sanitization - Improved input validation and output escaping in the merchant and affiliate panels (#16496)
Reports
Affiliate Columns on the Commissions Report - Affiliate detail columns are now marked with an affiliate icon and an "Affiliate's" tooltip, so they are easy to tell apart from the sale data columns (#16319)
Email
SMTP Port Options - Removed port 25 from the SMTP settings, as it is blocked for outgoing mail on the hosted infrastructure; ports 465 and 587 remain available (#16337)
Performance
Pay Affiliates Grid - Faster loading of the Pay affiliates list (#12078)
Bug Fixes
Banners
Private Campaign Banner Links - Banner links of private campaigns now redirect to the Declined site URL when the affiliate in the link is not approved in the campaign or does not exist (#16544)
Payouts
Pay Affiliates List - Affiliates whose unpaid commissions are all declined or pending no longer appear with a zero total in the Pay affiliates section (#16202)
Plugins
Default Signup Values - Affiliates created automatically by the Membership subscription manager now receive the default values configured in the "Default signup values" plugin (#16551)
Integrations
Shopify Plugin Translations - Parts of the Shopify plugin configuration that always displayed in English are now translated, and technical values such as file names and order tags can no longer be broken by translations (#16534)
Tracking
Visit Tracking Errors - Temporary failures when storing visits are now retried automatically and no longer show up as critical errors in the event log (#16458)
User Interface
Mass Action Counts - Fixed an incorrect error count in the completion message of mass actions processed in multiple batches (#16447)
Strengthened Access Controls - Tightened privilege checks and data visibility rules on internal services (#16463) (#16465) (#16467)
User Interface
Date Format Confirmation - Entering a time pattern into the Date format field in regional and language settings now asks for confirmation before saving (#11282)
Integrations
Shopify Subscription Settings - Clarified the help texts of the recurring commission settings in the Shopify plugin and grouped the subscription-related options together (#16472)
Plugins
Coupons on Affiliate Approval - The "Coupon generator for new affiliates" plugin now offers a Trigger setting to generate coupons when an affiliate is approved, instead of immediately at signup (#16476)
Themes
Trace Theme on Mobile - The Trace signup mini-site theme now displays correctly on mobile devices, with the signup form fitting the screen without horizontal scrolling (#16489)
Trace Theme Signup Layout - The main sections of the Trace signup form are now visually separated, and read-only or disabled signup fields no longer leave empty gaps in the form (#16479) (#16477)
Bug Fixes
Banners
Unlimited Duration Coupons - Fixed the coupon generate and import dialogs requiring an end date when "Unlimited duration" was selected by clicking the checkbox label (#16481)
Plugins
Lifetime Commissions with Per Product Tracking - Products of the order that creates a lifetime relation are now tracked with the normal commission instead of the custom lifetime referral commission; later orders of the same customer are unaffected (#13527)
User Interface
Cookie Lifetime Validation Message - The validation message on cookie lifetime fields now correctly describes the allowed range, no longer implying the maximum value is invalid (#16502)
Email Templates
Template Save and Test-Send Errors - Saving or test-sending an email template that fails to render now shows a clear error message instead of failing with a server error (#16455)
Seal Subscriptions Support - The Shopify plugin now tracks Seal Subscriptions renewal orders as recurring commissions, like the existing ReCharge integration; enable it in the plugin configuration with your Seal Subscriptions API key (#16348)
Improvements
Integrations
Multiple Installations on the Same Shopify Store - A new opt-in "Isolate tracking script" option in the Shopify plugin gives the tracking script a unique per-installation suffix, so multiple Post Affiliate Pro or Post Affiliate Network installations can track the same store (#16377)
Bug Fixes
Themes
Dark Mode Logo on Older Signup Themes - Signup themes that don't support dark mode (Bootstrap, Coupe, Summer) now always show the default logo instead of the Dark mode logo (#16438)
Translations
German Translation - Removed an unrelated brand name that appeared in a German translation string (#16449)