WordPress plugin intelligence profile

Pickory Product Filter

A fast, AJAX-powered WooCommerce product filter with flat product index, multi-currency support, and HPOS compatibility.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.0.3
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.0 · PHP 8.0
Directory statusactive
Last directory update31 Oct 20261d ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Pickory Product Filter version 1.0.3 as active, updated 1d ago and tested up to WordPress 7.1.

Overview

About this plugin

Pickory Product Filter is a WooCommerce filtering solution designed for performance, scalability, and flexibility. Pickory uses a flat product index for optimized filtering even on stores with 10,000+ products.

Why Pickory Product Filter?

Pickory uses a denormalized index table that stores the fields most commonly used for filtering in a single, optimized database table.

Key Features

Performance & Scalability:

– Flat product index for fast filtering (no expensive postmeta scans)

– Object cache integration (Redis/Memcached support)

– Query response caching for logged-out users

– REST API-based filtering with abortable requests

– Debounced inputs for price slider and search

Filter Types:

– Price range slider (dual-thumb)

– Star rating filter

– On Sale toggle

– Category filter (checkboxes, radio, dropdown, button grid, search list)

– Product tags

)

– Custom taxonomies

– Multiple display types: checkboxes, radio buttons, dropdowns, swatches (color/image), button grids, toggles, search lists

User Experience:

– AJAX-powered filtering (no page reload)

– URL-addressable filters (shareable, bookmarkable)

– Browser back/forward button support

– Active filter chips with one-click removal

– Multiple filter instances on same page (sidebar + mobile drawer)

– Mobile-responsive drawer with smooth animations

Developer Features:

– REST API with comprehensive endpoint

– Shortcode: [pickory_product_filter]

– Gutenberg block support

– WordPress hooks for customization

– Template override system

– ES6 modular JavaScript architecture

Enterprise Compatibility:

– HPOS (High-Performance Order Storage) compatible

– Multi-currency support

0+ compatibility

0+ optimized

– Multisite compatible

– Caching plugin friendly

Architecture

Pickory uses a hybrid SSR + CSR architecture:

  • Initial Page Load: Server renders filtered products based on URL parameters
  • AJAX Filtering: Client sends REST request, receives HTML fragments, updates DOM
  • URL Sync: Browser URL updates with filter parameters (no reload)
  • State Management: Global state object keeps filters, pagination, and sorting in sync

Developer Documentation

Shortcode Usage

[pickory_product_filter] — Default filter instance [pickory_product_filter instance_id="custom-id" class="custom-class"] — Custom instance

REST API Endpoint

GET /wp-json/pickory-filter/v1/products

Parameters:

– page (int) — Current page

– per_page (int) — Products per page (max: 100)

– category (string) — Category slugs, comma-separated

– product_tag (string) — Tag slugs, comma-separated

– min_price (float) — Minimum price

– max_price (float) — Maximum price

– rating (float) — Minimum rating (1-5)

– on_sale (string) — “1” for on sale only

– filter_{attribute} (string) — Attribute slugs, comma-separated

– orderby (string) — Sort field

– order (string) — ASC or DESC

– instance_id (string) — Filter instance ID

WordPress Hooks

Filters:

– ppfx_rest_max_per_page — Maximum products per REST request (default: 100)

– ppfx_force_db_rate_limiting — Force rate limiting without object cache

Actions:

– ppfx_before_query_build — Before building WP_Query args

– ppfx_after_query_build — After building WP_Query args

– ppfx_index_sync_product — When syncing product to index

Template Override

Copy files from pickory-product-filter/templates/ to yourtheme/pickory-product-filter/.

CSS Classes

ppfx-filter-container — Main filter wrapper

ppfx-filter-form — Filter form element

ppfx-products-wrapper — Product grid wrapper

ppfx-active-filters — Active filter chips container

ppfx-mobile-toggle — Mobile drawer toggle button

Privacy & Security

Pickory Product Filter does not collect personal data. It stores product index data and plugin settings only. No data is transmitted to third parties.

License

0-or-later.

Copyright (c) Pickory

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • ajax filter
  • faceted search
  • product filter
  • product search
  • woocommerce filter
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.0 · PHP 8.0
Update activity31 Oct 20261d ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

Version1.0.21.0.3
WordPress compatibility6.7.107.1.4
Version1.0.11.0.2
WordPress compatibility7.0.46.7.10
Version1.0.01.0.1
Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.