Skip to content

1.3.0 QA fixes: FAQ accordion, settings defaults, uninstall API - #4

Merged
vapvarun merged 2 commits into
masterfrom
1.3.1
Aug 19, 2026
Merged

1.3.0 QA fixes: FAQ accordion, settings defaults, uninstall API#4
vapvarun merged 2 commits into
masterfrom
1.3.1

Conversation

@vapvarun

Copy link
Copy Markdown
Member

Five findings QA raised against the 1.3.0 release. Four were real and are fixed; one is refuted with runtime evidence.

  • FAQ accordion shipped with no CSS at all. The toggle script opens a panel with an inline max-height and closes it by clearing that value, so with no max-height: 0 there was no closed state and every answer was permanently open.
  • Settings defaults: all four partials read their option with no default, and Products Per Page had no fallback, so it rendered blank on a site whose options had never been saved.
  • Multisite uninstall now uses get_sites() instead of querying $wpdb->blogs directly, removing the sniff suppression rather than adding another.
  • user-guide.md no longer ships in the zip.
  • Refuted: the report that four register_setting() calls store raw unsanitized input. Core back-compats a callable third argument, so the validators were always running - proven by submitting 999 for Products Per Page and getting the validator's clamp of 100. The key is spelled out anyway for readability.

Folded into 1.3.0 rather than a 1.3.1: that release is still with QA and has not reached customers.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Lbi1bWYKU6PEMGcm2fx7VF

Reported by QA in the release thread. Each was reproduced before being
touched, and one turned out not to be a bug.

* Fix - the FAQ tab never expanded or collapsed. Its accordion markup and
  toggle script both shipped, but the stylesheet had no rule for any of the
  accordion classes, so every answer was permanently open and the questions
  rendered as plain text with nothing to suggest they were clickable. The
  closed state has to come from CSS: the script opens a panel by setting an
  inline max-height and closes it by clearing that value, so with no
  max-height: 0 to fall back to there was no closed state at all. Verified:
  panel measures 0px closed, opens on click, closes again.

* Fix - settings tabs rendered an empty Products Per Page box on a site whose
  options had never been saved. All four partials read their option with no
  default, and that field had no fallback of its own. Reproduced by deleting
  the options; verified fixed in the same state.

* Improve - multisite uninstall now uses get_sites() instead of querying
  $wpdb->blogs directly. The old line also carried a phpcs:ignore that
  silenced the prepared-SQL sniff rather than resolving it.

* Dev - the user guide no longer ships in the release zip.

* Dev - settings registrations name their sanitize callback explicitly.

REFUTED, with evidence: the report that four register_setting() calls lack a
sanitize_callback and therefore "store raw unsanitized input" is not correct.
WordPress core back-compats a bare callable third argument - option.php wraps
it as sanitize_callback when is_callable( $args ) - so the validators were
running the whole time. Proven behaviourally rather than by reading core:
submitting a Products Per Page of 999 stored 100, which is the clamp inside
validate_general_settings(). The key is now spelled out anyway, because the
old form reads like the callback is ignored and is one deprecation away from
that being true - and re-running the same 999 test after the change still
stores 100.
1.3.0 was announced for verification and has not gone out to customers yet,
so the five fixes QA raised against it belong in that release rather than in
a patch version that exists only because the findings arrived the same day.

Version returns to 1.3.0 across header, constant, readme and package.json,
and the changelog bullets join the matching Fix / Improve / Dev runs in the
1.3.0 entry instead of standing as their own section.

Anyone who already pulled the earlier v1.3.0 asset needs to pull it again -
the tag now points at different code.
@vapvarun
vapvarun merged commit cbb8ac2 into master Aug 19, 2026
7 checks passed
@vapvarun
vapvarun deleted the 1.3.1 branch August 19, 2026 11:51
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.

1 participant