What's New
v1.23.4 — May 15, 2026
Fixed:
- ACF metafield sync reliability — one invalid URL field in a batch no longer drops every other metafield (Shopify's atomic mutation rolled the whole batch back). The worker now identifies the failing entries, drops them, and retries the rest once
- ACF image fields with object payloads (URL + alt + dimensions) now sync correctly; garbage values (
[object Object], bare attachment IDs) are rejected instead of being sent to Shopify - Stale
-placeholders are no longer written to source articles when a translation arrives before its source metafield exists
v1.23.3 — May 10, 2026
Changed:
- Plan picker now routes to Shopify's Managed Pricing page directly (
Planslink in the in-app nav,Change Planbutton, and the WP plugin's upgrade link all behave consistently) - In-app
/app/billingpage removed — plan info still shows on the Dashboard
Fixed:
- Webhook handler no longer overwrites authoritative billing-period dates with a guessed "first of next month" value
- Plan name typos in Shopify Partner Dashboard no longer silently downgrade paying shops to FREE — sync is skipped and logged instead
v1.23.2 — May 10, 2026
Removed:
- Translation Status report retired — the coverage numbers it surfaced were misleading on real shops. The underlying per-language stats endpoint stays available for future surfaces
v1.23.1 — May 9, 2026
Fixed:
- Multi-language tag preservation — editing a post in one language (e.g. Polish) no longer wipes tags applied to its German, Spanish, or other translations on the shared Shopify article. Resolves a Polylang/WPML regression where tags were periodically disappearing for non-source locales
Added:
- Per-locale tag tracking via a new
wash.tracked_tagsarticle metafield so every sync merges only its own locale's tags. Tags added manually in Shopify Admin are now preserved across syncs
v1.23.0 — May 9, 2026
Added:
- Translation Status report — new per-connection page showing WP truth vs Synced vs Shopify totals, broken down by Global and Market-scoped locales plus WordPress categories. Includes coverage progress bars and CSV export (retired the next day — see v1.23.2)
- WordPress
/wash/v1/statsendpoint now returns per-language and per-category post counts, auto-detecting Polylang or WPML - Two new Grafana panels surface the same content-by-language signal on the operator dashboards
v1.22.0 — May 6, 2026
Changed:
- Bulk publish now shows a live progress page with a real progress bar and a cancel button instead of one long request. Migrations of 500+ posts now complete reliably without timeouts
- Each batch runs with extended PHP time limits, so shared hosts that can't change
max_execution_timeare no longer a blocker - Settings → Sync Preferences exposes "Inline progress mode" (default on) and "Auto-clear stale sync errors" (default on)
v1.21.0 — May 4, 2026
Added:
- ↻ Refresh status row action on every post — calls Shopify to confirm whether the article still exists and reconciles local sync metadata. Useful for posts whose error is weeks old or whose Shopify article was deleted manually
- Auto-clear stale sync errors — a daily WordPress cron removes the red ⚠️ icon from posts whose last sync failure is older than 30 days (retention period filterable)
Fixed:
- Sync-failure icons (red ⚠️ for errors, blue 🕐 for translations waiting on their source) now show on every failure mode, not just one
- Error icons only appear on currently-published posts — drafts and scheduled posts no longer inherit stale error meta from a past life
- Bulk publish shows the spinning "queued" icon immediately on click, not only after the cron fires
v1.20.9 — May 2, 2026
Added:
- Blog Mappings list overhaul — rule position badges (
#N), translation scope badges (🌍 Global / 📍 Market / — Primary), sortable column headers, four combined filters (Destination, Blog/Page, WP Language, Translation), liveN / Mcounter, andReset filters - Row hover, auto-scroll to form on Edit, and icon-only action buttons (✏️ Edit / 📄 Duplicate / 🗑️ Delete) with full keyboard / screen-reader labels
- New
🌍 Global (no market)option group in the Market & Locale dropdown — lets shops with Shopify Markets pick a shop-wide Translate & Adapt locale without binding to a market
Fixed:
- Drag-and-drop reordering of mapping rules no longer wipes their data (priority-only updates are now sparse)
- Editing a Global-only mapping no longer reverts the market selection to "Default"
- Bogus "duplicate rule" and "locale without market" warnings have been removed
v1.20.6 — May 1, 2026
Added:
- Blog mappings now support a Global locale (no market) — sends translations to shop-wide Translate & Adapt instead of binding them to a single Shopify Market
Fixed:
- Saved mappings no longer lose their locale / market selection (the form action handlers were dropping those fields on submit)
v1.20.5 — May 1, 2026
Changed:
- App Store compliance — removed the manual shop-domain field from the
/auth/loginfallback page so installs initiate from a Shopify-owned surface - Subscribed to
APP_SUBSCRIPTIONS_UPDATEso local plan rows automatically reflect cancellations, expiries, and declines from Shopify
Fixed:
- Synced pages once again carry the SEO meta title and description they had in WordPress (the field was being read but never forwarded to Shopify)
v1.20.3 — April 20, 2026
Fixed:
- "Connect to Shopify" no longer 404s for shops on specific custom domains — the app slug used in the connect URL is now correct
v1.19.1 — April 19, 2026
Fixed:
- "Blogs" tab no longer shows the red unsaved-changes dot after you save or delete a mapping rule via the AJAX buttons
v1.18.1 — April 16, 2026
Added:
- Bricks Builder support — Bricks-built pages now sync their actual rendered content plus the scoped CSS Bricks generates, instead of the empty
post_contentWordPress stores
v1.18.0 — April 16, 2026
Added:
- Mapping rules now have a Shopify Destination (Blog Article or Page) and a WP Post Types field, so custom post types like
recipeornewscan be routed to either Shopify blogs or pages independently - Mapping cards show destination and post-types badges at a glance
v1.17.6 — April 16, 2026
Fixed:
- Synced pages now appear in the internal-links search and resolve correctly in cross-content links (they used to be silently skipped due to a stale meta key)
- Smart Redirections are now created during async (queued) sync jobs — previously the redirect condition always failed because of a wrong option name
v1.17.4 — April 15, 2026
Fixed:
- WPML / Polylang / TranslatePress / Weglot are now detected only when actually active — inactive or uninstalled plugins no longer trigger false-positive language tabs
v1.17.3 — April 15, 2026
Fixed:
- Image sync stops retrying images that return permanent 401/403/404/410 from WordPress, instead of looping until the queue gives up
- Custom metafields now respect existing Shopify definition types (URL, JSON, color, number) instead of always writing plain text
v1.17.1 — April 15, 2026
Fixed:
- URL Redirections now strip inline
# commenttext from imported rules and respect the post types selected in settings (instead of always being limited to posts and pages)
v1.17.0 — April 14, 2026
Removed:
- Managed WordPress Hosting (MANAGED plan at $249/mo) — the feature has been retired. Existing plans, sync, and content are unaffected
v1.16.0 — April 13, 2026
Added:
- Metafield translations — ACF, custom, and SEO metafields now appear in Shopify Translate & Adapt with per-locale values from translated WordPress posts. Definitions are created with the right translation permissions so the merchant UI handles them as multilingual
v1.15.3 — April 13, 2026
Added:
- Search & Replace tab (Business plan) — define text-replacement rules applied to post content before it ships to Shopify. Useful for shortcode → HTML conversion, domain rewriting, or stripping unwanted attributes
v1.15.2 — April 13, 2026
Fixed:
- WordPress categories now sync as Shopify article tags (deduplicated, "Uncategorized" excluded)
- Translation posts merge their tags into the shared source article on Shopify
- Double titles in articles fixed — the leading
<h1>matching the post title is stripped from the body so Shopify renders it once - Non-source translations no longer overwrite the source article's metafields
v1.15.0 — April 10, 2026
Added:
- Blog Mappings now have independent Category and Language selectors with their own dropdowns. Combined rules match both filters at once and take priority over single-axis rules
- Language selector is populated automatically from the active translation plugin (WPML / Polylang / TranslatePress / Weglot) and hides itself when none is active
v1.14.0 — April 9, 2026
Changed:
- Meta Fields tab — per-field toggles — replaced the plugin-level "WP Core / Yoast / RankMath / ACF" cards with a flat list of every detected meta field, each with its own on/off toggle, source badge, and type
- New Refresh Fields button rescans recent posts for new keys without leaving the settings page
v1.13.0 — April 8, 2026
Fixed:
- Metafields are now actually sent to Shopify after async syncs (the callback wasn't triggering the metafield job)
- ACF fields sync even when the ACF plugin is deactivated — the plugin falls back to raw post meta with
field_*references - Checkbox values save correctly in all settings tabs, including the unchecked state
- Meta Fields toggles are always editable; un-installed plugins show a yellow "Not detected" hint instead of being disabled
v1.12.19 — April 2, 2026
Added:
- Bidirectional Settings Sync — settings saved in the Shopify App now push to WordPress automatically (the WP → Shopify direction was already in place). The unified
Refreshbuttons in both admins pull plan info, settings, and updates in one click - Smart Redirections toggle added to the Shopify App's Redirections page; it stays in sync with the matching WordPress setting
v1.12.18 — April 2, 2026
Added:
- Reset to Defaults button in Advanced — restores every sync, metafield, files, and Gutenberg setting to its documented default (with a confirmation popup). Shopify connection and synced content are untouched
- Admin Access Control — restrict the WordPress plugin's UI to administrators (or a custom list of allowed usernames). Non-permitted users see a read-only "View Only Mode" notice and can't submit forms
v1.12.17 — April 2, 2026
Added:
- Bulk actions for Shopify sync (Publish, Re-publish, Unpublish) in WordPress posts list
make seed-wordpress-devcommand for demo content seeding- Seed articles with Gutenberg blocks, inline CSS, and SEO metafields
Changed:
- Moved "Include Block CSS" option below "Enable Custom Blocks" in settings
- Added documentation link to Shopify theme CSS configuration guide
Fixed:
- Authorization redirect in Shopify embedded app (reconnect functionality)
- Missing "Enable Smart Redirections" checkbox in WordPress plugin Redirections tab
v1.12.16 — March 31, 2026
Fixed:
- Custom frontmatter fields now correctly accessible in SSG templates
- Screencasts page video player and playlist rendering
- Docs page lastUpdated display
- Error page errorCode display
- Post template language attribute
v1.12.15 — March 29, 2026
Changed:
- Simplified WordPress plugin connection flow
- Removed API Secret field (only API Key needed)
- Removed Manual Configuration section (OAuth only)
v1.12.14 — March 28, 2026
Added:
- Screencasts page with video tutorials
- Getting Started guide video
- Plugin Installation walkthrough
- Content Sync Overview screencast
v1.12.13 — March 27, 2026
Fixed:
- Landing page SEO metadata rendering
- Pricing card feature list alignment
- Mobile navigation toggle animation
v1.12.12 — March 26, 2026
Added:
- Blog hub page with article listings
- Category filtering for blog posts
- Featured image support for articles
Changed:
- Improved dark theme contrast ratios (WCAG 2.2 AA)
- Updated pricing tier descriptions