Skip to content

Feat: uninstall flow adjustments#2875

Open
abaicus wants to merge 1 commit into
developmentfrom
feat/uninstall-flow
Open

Feat: uninstall flow adjustments#2875
abaicus wants to merge 1 commit into
developmentfrom
feat/uninstall-flow

Conversation

@abaicus

@abaicus abaicus commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Closes Codeinwp/otter-internals#290.

Summary

Makes the plugin's uninstall (deactivation) feedback modal usage-aware. When the site has pages built with Otter blocks, the modal now warns how many pages
will be affected and surfaces Documentation / Get Support links — nudging users to reconsider or get help before they leave.

Screenshots

image

Test instructions

  • Setup — On a test site with Otter Blocks active, create/save 2–3 pages or posts that use Otter blocks (so the CSS post meta gets written).
  • Golden path — Go to Plugins, click Deactivate on Otter Blocks. The feedback modal heading should read "You are using Otter Blocks on 3 pages. Uninstalling may break parts of your site." (matching your count), and Documentation + Get Support links should appear under the heading, styled and opening in new tabs.
  • Support link branch — With Pro inactive, Get Support → wordpress.org/support/plugin/otter-blocks/. With Otter Pro active, it should point to store.themeisle.com.
  • Empty-state regression — On a fresh site with no Otter-built pages (count = 0), deactivate the plugin: the heading should be the default SDK text (not overridden) and the extra links should not appear.
  • Display cap — With >100 qualifying pages, the heading shows 100+ rather than the exact number.
  • Cache invalidation — Note the count, then edit/save a page to add or remove Otter blocks (changing the CSS meta). The otter_blocks_pages_with_css_count transient should be deleted and the next deactivate attempt should reflect the new count. Confirm the transient is repopulated (1-day TTL) after the next read.

Checklist before the final review

  • [ ] Included E2E or unit tests for the changes in this PR.
  • Visual elements are not affected by independent changes.
  • It is at least compatible with the minimum WordPress version.
  • It loads additional script in frontend only if it is required.
  • Does not impact the Core Web Vitals.
  • In case of deprecation, old blocks are safely migrated.
  • It is usable in Widgets and FSE.
  • Copy/Paste is working if the attributes are modified.
  • PR is following the best practices

@pirate-bot pirate-bot added the pr-checklist-incomplete The Pull Request checklist is incomplete. (automatic label) label Jun 19, 2026
@pirate-bot

Copy link
Copy Markdown
Contributor

Bundle Size Diff

Package Old Size New Size Diff
Animations 178.27 KB 178.27 KB 0 B (0.00%)
Blocks 1.52 MB 1.52 MB 0 B (0.00%)
CSS 7.87 KB 7.87 KB 0 B (0.00%)
Dashboard 111.06 KB 111.06 KB 0 B (0.00%)
Onboarding 68.14 KB 68.14 KB 0 B (0.00%)
Export Import 4.7 KB 4.7 KB 0 B (0.00%)
Pro 328.43 KB 328.43 KB 0 B (0.00%)

@pirate-bot

Copy link
Copy Markdown
Contributor

Plugin build for fb97aef is ready 🛎️!

@pirate-bot

Copy link
Copy Markdown
Contributor

E2E Tests

Playwright Test Status: See serial and parallel matrix jobs

Performance Results serverResponse: {"q25":400.3,"q50":417,"q75":431.3,"cnt":10}, firstPaint: {"q25":574.2,"q50":649.3,"q75":738.7,"cnt":10}, domContentLoaded: {"q25":3310,"q50":3323.9,"q75":3382.6,"cnt":10}, loaded: {"q25":3312.1,"q50":3326.25,"q75":3384.7,"cnt":10}, firstContentfulPaint: {"q25":3808.6,"q50":3854.05,"q75":3896.9,"cnt":10}, firstBlock: {"q25":13541,"q50":13648.8,"q75":14025.1,"cnt":10}, type: {"q25":23.45,"q50":23.71,"q75":25.31,"cnt":10}, typeWithoutInspector: {"q25":20.55,"q50":21.57,"q75":23.72,"cnt":10}, typeWithTopToolbar: {"q25":29.04,"q50":30.19,"q75":32.49,"cnt":10}, typeContainer: {"q25":13.41,"q50":14.38,"q75":15.01,"cnt":10}, focus: {"q25":107.58,"q50":110,"q75":118.02,"cnt":10}, inserterOpen: {"q25":38.92,"q50":39.92,"q75":40.26,"cnt":10}, inserterSearch: {"q25":13.74,"q50":13.94,"q75":14.31,"cnt":10}, inserterHover: {"q25":5.48,"q50":5.77,"q75":6.03,"cnt":20}, loadPatterns: {"q25":1541.55,"q50":1616.15,"q75":1685.1,"cnt":10}, listViewOpen: {"q25":214.05,"q50":222.64,"q75":228.27,"cnt":10}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-checklist-incomplete The Pull Request checklist is incomplete. (automatic label)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants