Skip to content

Releases: SagirisWebDev/wc-live-category-filter

v1.0.1 — pagination behaviour disclosure

Choose a tag to compare

@SagirisWebDev SagirisWebDev released this 18 Jun 17:32

Patch release. Pure admin-side disclosure — no filtering, chip-rendering, or WP_Query behaviour changes from v1.0.0.

What changed

Settings → WC Live Category Filter now shows an inline notice under the "Activate on" section that calls out:

Heads-up: pagination is disabled on archives where the chip filter is active. Instant multi-select needs every product loaded up front so the JavaScript layer can toggle cards locally — pagination would scatter matches across pages and break OR-combining chips. WooCommerce's per-page setting and the pagination links are intentionally suppressed on these archives. If pagination matters more than instant filtering for a given archive, leave it unchecked here and use the [wclcf_filter_grid] shortcode on a dedicated landing page instead.

Why

The plugin has always set posts_per_page = -1 on activated archives so the JS reducer can do instant client-side filtering against the full result set. Before this release admins had no way to discover why their "Products per page" customizer setting wasn't taking effect on the shop archive — the behaviour was correct, the disclosure wasn't.

Upgrade

Drop-in. Pull the new version, no settings need to change, no data migration.

Compatibility

  • PHP: 8.0+
  • WordPress: 6.0+
  • WooCommerce: must be active

Unchanged from v1.0.0.

Test totals

166/166 PHPUnit + 51/51 node:test + 60/60 Playwright. Zero regressions from v1.0.0.

v1.0.0 — first stable release

Choose a tag to compare

@SagirisWebDev SagirisWebDev released this 18 Jun 16:08

First stable release of WooCommerce Live Category Filter — a multi-select category chip filter that sits above the WooCommerce product grid and lets shoppers narrow by tapping multiple chips at once.

All ten implementation slices from the original PRD (#1) have shipped: skeleton + WooCommerce dependency guard, server-side ?cats= filtering, no-JS chip row, live JS reducer + DOM adapter, counts + Clear-all pill + checkmark active state, client-side sort, settings page + category-page chip highlight, visible/reorder controls, show-counts toggle, and the [wclcf_filter_grid] shortcode.

What's in the box

For customers

  • A row of category chips above the product grid (e.g. Pork (3), Beef (11), Chicken (12)).
  • Tap chips to combine — chicken + beef shows the union, not the intersection.
  • Filtering is instant. All products preload on the page; the JS layer toggles a hidden attribute on cards as chips fire. No request round-trips per click.
  • URL stays in sync (?cats=pork,noodles) so filtered views are shareable and the browser back button works.
  • Mobile chip row wraps to multiple lines instead of scrolling sideways.
  • Active chips fill with color and show a ✓ — color-blind-friendly: both signals are independent.
  • A "Clear all" pill appears whenever at least one chip is active.
  • WooCommerce's native sort dropdown still works and sorts only the visible (filtered) cards.
  • Works with JavaScript disabled — the server respects ?cats= directly via pre_get_posts and renders the filtered grid server-side. The filtered view is real and indexable, not a JS-only illusion.

For site owners

  • Install, activate, the Shop page just works.
  • Settings → WC Live Category Filter exposes:
    • Archive activation toggles (Shop, Product Category, Product Tag).
    • Per-category visibility checkboxes — uncheck a category to hide its chip.
    • Up/down reorder buttons — control which categories appear first.
    • Show-counts toggle — global on/off for the (N) suffix.
  • [wclcf_filter_grid] shortcode embeds the same chip row + grid on any page or post, not just archives. The Settings page includes a Shortcode reference section.
  • New categories added in WooCommerce auto-appear as chips until you deselect them — no need to revisit the plugin settings every time the catalog grows.
  • Activation gate: if WooCommerce isn't active, the plugin refuses to boot its frontend integration and shows an admin notice. No fatal errors.

For theme developers

  • Six CSS custom properties on the chip row let you override the palette without forking:
    • --wclcf-chip-bg, --wclcf-chip-fg, --wclcf-chip-border
    • --wclcf-chip-active-bg, --wclcf-chip-active-fg, --wclcf-chip-hover-bg

Installation

From this release

  1. Download Source code (zip) below.
  2. In WP admin: Plugins → Add New → Upload Plugin → Choose File.
  3. Select the zip, click Install Now, then Activate.

From source

git clone https://github.com/SagirisWebDev/wc-live-category-filter.git \
  wp-content/plugins/wc-live-category-filter
cd wp-content/plugins/wc-live-category-filter
composer install --no-dev

Then activate from the WP admin Plugins screen.

Compatibility

  • PHP: 8.0+
  • WordPress: 6.0+
  • WooCommerce: must be active

Known v1 limitations

  • Single shortcode instance per page. Multi-instance support was explicitly excluded from v1 scope.
  • Sort-by dropdown is not wired on shortcode pages. Cards::emit_card_data_json hooks woocommerce_after_shop_loop which doesn't fire from inside the shortcode loop. Archive pages have the sort dropdown; shortcode-hosted pages don't yet.

Test totals at release

  • 166/166 PHPUnit
  • 51/51 node:test
  • 60/60 Playwright e2e

Zero known regressions.

Acknowledgements

Built end-to-end with Claude Code following a TDD red-green-refactor loop, one PRD slice per commit.