July 20, 2026: Unified email management, tag labels, and private tags by default

Consolidated transactional email management

All transactional emails are now managed from a single screen at Audience > Configuration > Emails. Newspack-managed emails (reader revenue, reader activation, group subscriptions) and WooCommerce emails now appear together in one grid, so publishers no longer move between Newspack settings and WooCommerce to manage what readers receive.

Major changes

  • The Emails screen moved from Newspack > Settings to Audience > Configuration.
  • WooCommerce transactional emails now surface alongside Newspack-managed emails in the same grid, with filter chips by source and category and an enable or disable toggle per email.
  • Every card shows a live preview thumbnail of the email’s real content, across the Newspack, WooCommerce block, and WooCommerce classic render paths.
  • WooCommerce classic emails now inherit the site’s brand color and logo instead of WooCommerce defaults.
  • Sender name, sender email, and contact email moved into the Emails screen via a Settings button in the header, out of the old Transactional Emails prerequisite card.
  • Test sends now work for inactive (unpublished) Newspack-managed emails, which previously failed silently.

New card expiry warning email

A new Newspack-managed email warns readers before a saved payment card expires on an active subscription. It sends about 14 days before the card’s expiry date, prompting the reader to update their card before the renewal fails. It lives in the Reader revenue category and requires WooCommerce Subscriptions.

Redirect option on the Newsletter Subscription Form block

Adds an After subscribe option to the Newsletter Subscription Form block, matching the redirect-after-action capability the Checkout Button block already has. After a successful subscribe, an optional click-through Continue button sends the reader to a custom URL or back to the previous page.

This deliberately mirrors the Checkout Button’s pattern (click-through, not auto-redirect). The three behaviors are exposed in a new After subscribe section in the editor panel:

  • Show the success message — default, unchanged: inline confirmation, no button.
  • Go to a custom URL — Continue button → window.location.href to the configured URL.
  • Go to the previous page — Continue button → same-origin document.referrer, falling back to window.history.back(). (The same referrer fallback was also added to the Checkout Button’s modal.js so the two don’t diverge.)

Button label defaults to “Continue” and is configurable. The button is built in view.js on the AJAX success path (the subscribe form has no modal to reuse), so it only appears for the reader who just subscribed in the current page view — an already-subscribed/reloaded reader still gets the plain success message.

Add sponsor label, byline, and disclaimer to the Pugpig feed

The Pugpig feed already carries each sponsor’s name, link, description, and logo. This change adds four more fields so the Pugpig app can display the same sponsor labeling configured on the site.

Each sponsored <item> now includes:

  • <sponsor_scope>native or underwritten
  • <sponsor_flag> — the publisher label, for example "PAID POST" or "Sponsored Content"
  • <sponsor_byline> — the byline prefix, for example "Paid for by"
  • <sponsor_disclaimer> — the disclaimer text shown with the article

On non-sponsored posts, the four fields are still present but empty, consistent with the existing sponsor fields. When a post has more than one sponsor, the feed continues to use the primary sponsor only, which is unchanged behavior.

<item>
  <title>Example sponsored article</title>
  <sponsor_name>Anthem</sponsor_name>
  <sponsor_scope>underwritten</sponsor_scope>
  <sponsor_flag>PAID POST</sponsor_flag>
  <sponsor_byline>Paid for by</sponsor_byline>
  <sponsor_disclaimer>Advertiser content: This content was paid for by Anthem…</sponsor_disclaimer>
  ...
</item>

Add author bio fields to the Pugpig feed

The Pugpig feed’s <author> block already included each author’s name and image. This change adds five more fields so the Pugpig app can display complete author bio boxes.

Each <author> now includes:

  • <author_description> — the author’s bio
  • <author_job_title> — the author’s job title
  • <author_employer> — the author’s employer
  • <author_url> — the author’s archive link (“More by…”)
  • <author_email> — gated by the Display Author Email setting

All five fields are always present and render empty when no value is set. <author_email> only includes a value when the site’s Display Author Email Customizer toggle is enabled. Placeholder @example.com addresses are always excluded.

This works for both WordPress users and Co-Authors Plus guest authors.

<author>
  <author_name><![CDATA[Stephen King (Guest Contributor)]]></author_name>
  <author_image>https://secure.gravatar.com/avatar/…?s=128&d=identicon&r=g</author_image>
  <author_description><![CDATA[When not inventing demonic clowns…]]></author_description>
  <author_job_title><![CDATA[Chief Terror Officer]]></author_job_title>
  <author_employer><![CDATA[]]></author_employer>
  <author_url>https://example.com/author/guest_contributor_1/</author_url>
  <author_email></author_email>
</author>

Serve managed apple-app-site-association file

When a site has an associated app identifier configured, Newspack serves the file at /.well-known/apple-app-site-association so the Pugpig app can handle the site’s URLs as Universal Links. When OAuth clients use the My Account login screen, the file additionally excludes the Newspack Google login callback, which is what lets in-app Google sign-in complete in the browser instead of being captured by the app.

The app identifier is set on the Pugpig settings page (validated as an explicit Team ID + Bundle ID), which warns when a static file is overriding the managed one or the file isn’t being served.

Tag Labels

Tag Labels let you flag selected post tags as bold, prominent labels that appear near the headline wherever posts are displayed:  for example a “Breaking News” or “Developing” flag. You choose which tags become labels, optionally customize the label text, and pick the sitewide label color. Labels appear after any category or sponsorship labels.

Major Changes

  • Tags as labels — A new Display as label option on any tag (Posts → Tags) turns that tag into a highlighted label shown wherever the post appears.
  • Custom label text — An optional Label text field lets you show shorter, punchier wording (e.g. “Breaking”) instead of the full tag name; leave it blank to use the tag name.
  • Homepage Posts (Content Loop) display — A Show tag labels toggle in the block’s settings controls whether labels appear in that block (on by default).
  • Carousel display — The Carousel block gets the same Show tag labels toggle, so labels can carry through to carousels too.
  • Site-wide label color — A new Tag Labels section in the Customizer  (Appearance → Customize) sets one background color for all labels, with text color auto-adjusted for contrast.

Opt-out setting for unified registration + verification flow

The feature from last release that unifies reader registration and verification flows now has a setting in the Audience dashboard page. This lets publishers who want the legacy behavior (deferring verification until a reader first visits My Account or logs into their account via OTP or magic link) opt out of the new unified flow.

Enable Private Tags by default, with a per-site opt-out and an audience-data visibility toggle

Private Tags are now enabled by default on every site. To use them:

  1. Go to wp-admin → Posts → Tags.
  2. Add or edit a tag and check the Private tag box. This is also available via the Private column’s Quick Edit option in the Tags list.
  3. Save the tag.
  4. Assign the private tag, plus an ordinary public tag as a control, to a published post.

For additional information about Private Tags and their behavior, see the Private Tags help documentation.

Hotfixes

  • [FIX] We now provide our Google client ID to consumers of our OAuth endpoint to improve audience matching
  • [FIX] Campaigns:  both prompt styles now use the same capability and status checks
  • [FIX] Updated REST endpoints to better match what’s available on the frontend
  • [FIX] Invite acceptance checks are now applied throughout the onboarding process
  • [FIX] Extended signature verification to additional WooCommerce endpoints
  • [FIX] Newspack Theme: Text given an inline color no longer shows an unintended yellow highlight behind it
  • [FIX] Stop error notices from rapidly flickering on Newspack Settings wizard screens
  • [FIX] Disable adaptive pricing when modal checkout omits country

Other Changes

  • [FEAT]: Segment readers arriving from newsletter links as donors for prompt/campaign targeting, without requiring a reader account or login
  • [FEAT]: Add a gated Google News AI Pilot module providing a token-protected full-article RSS live feed and a quarterly bulk XML export
  • [FIX]: Group subscriptions: stop leaking the owner’s billing details to members, prevent invite-acceptance fatals, and gate member/invite changes on terminal-state subscriptions
  • [FIX]: Client-side reader data is now properly cleaned up when switching between accounts
  • [FIX]: Mirror Newspack’s GA4 reader/content parameters into the dataLayer so sites tagging GA4 through Google Tag Manager can map them as Data Layer Variables and avoid (not set) custom dimensions
  • [FIX]: Missing block styles on overlay campaigns now properly render in WP 7.0
  • [FIX]: Remove Author Profile Social Link colour label changes to avoid bleeding into other blocks
  • [FIX]: Correct submit button text on change-payment-method page
  • [FIX]: Improved JS/CSS asset cache handling to avoid serving stale assets
  • [FIX]: Updated all Group Subscription member counts to include the subscription owner, for consistency

Gift this article