Skip to content

Themes "with-theme": fix free .org theme install hanging after signup - #112473

Closed
taipeicoder wants to merge 1 commit into
trunkfrom
fix/with-theme-free-install-directinstall
Closed

Themes "with-theme": fix free .org theme install hanging after signup#112473
taipeicoder wants to merge 1 commit into
trunkfrom
fix/with-theme-free-install-directinstall

Conversation

@taipeicoder

Copy link
Copy Markdown
Contributor

Proposed Changes

  • Fix a free .org theme installed via the with-theme signup flow hanging on a blank "Putting the pieces together" screen after signup. getWithThemeDestination sends .org themes to the same marketplace install page as free plugins (/marketplace/theme/:theme/install/:site), which only initiates the atomic transfer + install when the in-memory purchase-flow handoff is present. That handoff doesn't survive the full-page redirect out of signup, so the page polled the site indefinitely. The redirect is now marked trusted (?directInstall=1) so the install page initiates the transfer/install itself.

Why are these changes being made?

This is the theme counterpart of the free-plugin install hang already fixed for the with-plugin flow — the two flows route to the same install page, and the install page already reads directInstall for theme installs (its init effect handles wpOrgTheme), so this is a one-line parity fix.

Testing Instructions

  1. Log out, start the with-theme flow with a free .org theme and a paid plan in the cart.
  2. Complete account + domain + plan → checkout.
  3. Confirm the post-checkout install completes (transfer + theme install) instead of hanging on "Putting the pieces together".

No unit test added: getWithThemeDestination is not exported and has no existing coverage (its siblings mock the function rather than exercise it); the directInstall mechanism it relies on is already shipped and exercised via the free-plugin path.

Pre-merge Checklist

  • Has the general commit checklist been followed? (PCYsg-hS-p2)
  • Have you written new tests for your changes?
  • Have you tested the feature in Simple (P9HQHe-k8-p2), Atomic (P9HQHe-jW-p2), and self-hosted Jetpack sites (PCYsg-g6b-p2)?
  • Have you checked for TypeScript, React or other console errors?
  • For UI changes, have you tested the affected components in dark mode?
  • Have you tested accessibility for your changes?
  • Have you used memoizing on expensive computations?
  • Have we added the "[Status] String Freeze" label as soon as any new strings were ready for translation (p4TIVU-5Jq-p2)?
  • Have we added the "[Status] Needs Privacy Updates" label if this pull request changes what data or activity we track or use (p4TIVU-aUh-p2)?

A free .org theme installed via /start/with-theme redirects to the same
marketplace install page as free plugins, which initiates the transfer only
when the in-memory purchase-flow handoff is present. That handoff doesn't
survive the redirect out of signup, so the page polled the site forever
("Putting the pieces together") instead of installing. Mark the redirect as
trusted (directInstall) so the page initiates the install directly — the same
fix already shipped for the free-plugin path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@taipeicoder taipeicoder self-assigned this Jul 9, 2026
@matticbot

Copy link
Copy Markdown
Contributor

Here is how your PR affects size of JS and CSS bundles shipped to the user's browser:

Sections (~1 bytes added 📈 [gzipped])

Details
name                      parsed_size           gzip_size
signup                          +16 B  (+0.0%)       +1 B  (+0.0%)
async-step-unified-plans        +16 B  (+0.0%)       +1 B  (+0.0%)

Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to.

Legend

What is parsed and gzip size?

Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory.
Gzip Size: Compressed size of the JS and CSS files. This much data needs to be downloaded over network.

Generated by performance advisor bot at iscalypsofastyet.com.

@taipeicoder taipeicoder closed this Jul 9, 2026
@taipeicoder
taipeicoder deleted the fix/with-theme-free-install-directinstall branch July 9, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants