Auto-Injected CSS Classes for Theme Compatibility

Dynamic AJAX Product Filters for WooCommerce automatically adds helper CSS classes to important WooCommerce product listing elements. These classes help the plugin detect product grids, pagination, sorting dropdowns, result counts, and individual product items more reliably across different themes, page builders, WooCommerce Blocks, and custom layouts.

These classes are especially useful when your theme does not use the default WooCommerce selectors.

Why Auto-Injected Classes Are Important

AJAX filtering needs to know which parts of the page should be updated after a filter is applied.

For example, when a customer selects a filter, the plugin may need to update:

Product grid
Pagination
Sorting dropdown
Result count
Product items

Many WooCommerce themes use standard markup, such as:

ul.products
.woocommerce-pagination
form.woocommerce-ordering select
.woocommerce-result-count

However, custom themes, block themes, and page builders may use different HTML structures.

To improve compatibility, the plugin can inject stable classes that are easier to use in selector settings.


Auto-Injected Class Reference

The plugin may add the following helper classes:

.plugincy-filter-products
.plugincy-filter-pagination
.plugincy-filter-orderby
.plugincy-filter-result-count
.plugincy-filter-product-item

Each class is used for a specific part of the product listing layout.

ClassPurpose
.plugincy-filter-productsIdentifies the product grid or product list container
.plugincy-filter-paginationIdentifies the pagination wrapper
.plugincy-filter-orderbyIdentifies the WooCommerce sorting/orderby area
.plugincy-filter-result-countIdentifies the product result count area
.plugincy-filter-product-itemIdentifies each individual product item

.plugincy-filter-products

The .plugincy-filter-products class identifies the main product grid or product list container.

This is the most important class for AJAX filtering because the plugin needs to know which product section should be replaced after filters are applied.

Where It Is Useful

Use this class in the Product Selector setting when the default selector does not work.

Go to:

Product Filters → Advanced Settings → Product Selector

Recommended selector for block/custom layouts:

.plugincy-filter-products
image 32

When to Use It

Use .plugincy-filter-products if:

  • Products do not update after applying filters.
  • The wrong section of the page updates.
  • Products disappear after filtering.
  • You are using WooCommerce Blocks.
  • You are using a block theme.
  • Your theme does not use ul.products.
  • A page builder creates a custom product grid wrapper.

Default Alternative

For standard WooCommerce themes, the default product selector is usually:

ul.products

If ul.products works correctly, you do not need to change it.


.plugincy-filter-pagination

The .plugincy-filter-pagination class identifies the pagination wrapper.

This helps AJAX pagination work correctly after filters are applied.

Where It Is Useful

Use this class in the Pagination Selector setting.

Go to:

Product Filters → Advanced Settings → Pagination Selector

Recommended selector for block/custom layouts:

.plugincy-filter-pagination
image 33

When to Use It

Use .plugincy-filter-pagination if:

  • Pagination does not update after filtering.
  • Pagination reloads the full page instead of using AJAX.
  • Pagination disappears after filters are applied.
  • Your theme uses custom pagination markup.
  • WooCommerce Blocks or Query Pagination blocks are used.
  • Your theme does not use .woocommerce-pagination.

Default Alternative

For standard WooCommerce themes, the default pagination selector is usually:

.woocommerce-pagination

If the default selector works correctly, keep it.


.plugincy-filter-orderby

The .plugincy-filter-orderby class identifies the sorting/orderby area.

WooCommerce sorting is usually displayed as a dropdown that lets customers sort products by popularity, rating, latest, price, and default order.

Where It Is Useful

Use this class when troubleshooting sorting selector issues.

Go to:

Product Filters → Advanced Settings → Sorting Selector

Standard default selector:

form.woocommerce-ordering select

If your theme has a custom sorting wrapper, the injected class may help you identify the correct area.

Example selector:

.plugincy-filter-orderby select
image 34

When to Use It

Use .plugincy-filter-orderby if:

  • Product sorting does not work with AJAX.
  • Sorting reloads the page instead of updating products dynamically.
  • Sorting works before filtering but not after filtering.
  • Your theme changes the default WooCommerce sorting markup.
  • A page builder controls the sorting dropdown.
  • Sorting is generated inside a custom archive template.

Recommended Usage

If the sorting dropdown is inside the injected orderby wrapper, use:

.plugincy-filter-orderby select

If the default WooCommerce selector works, keep:

form.woocommerce-ordering select

.plugincy-filter-result-count

The .plugincy-filter-result-count class identifies the WooCommerce result count area.

The result count usually displays text such as:

Showing 1–12 of 48 results

This section should update when products are filtered.

Where It Is Useful

Use this class in the Result Count Selector setting.

Go to:

Product Filters → Advanced Settings → Result Count Selector

Recommended selector for custom layouts:

.plugincy-filter-result-count
image 35

When to Use It

Use .plugincy-filter-result-count if:

  • Product results update but the result count does not.
  • The result count shows the wrong number after filtering.
  • Your theme uses custom result count markup.
  • WooCommerce Blocks or a page builder changes the result count wrapper.
  • The default selector does not exist in your theme.

Default Alternative

For standard WooCommerce themes, the default result count selector is usually:

.woocommerce-result-count

If the default selector works, you can keep it.


.plugincy-filter-product-item

The .plugincy-filter-product-item class identifies individual product cards/items inside the product grid.

This class is useful for styling, layout compatibility, and advanced theme troubleshooting.

Where It Is Useful

Use this class when you need to target individual product items in custom CSS or when debugging product grid layouts.

Example:

.plugincy-filter-product-item

When to Use It

Use .plugincy-filter-product-item if:

  • Product cards need custom styling after AJAX updates.
  • Your theme uses non-standard product item classes.
  • Product item spacing changes after filtering.
  • Product cards load correctly but layout styling is inconsistent.
  • You need a stable selector for custom JavaScript or CSS.

Example CSS

.plugincy-filter-product-item {
    margin-bottom: 24px;
}

Use custom CSS only if your theme requires it.


Where to Configure Selectors

You can configure important selectors from:

WordPress Dashboard → Product Filters → Advanced Settings

Important selector fields include:

Product Selector
Pagination Selector
Sorting Selector
Result Count Selector

For standard WooCommerce themes, the default selectors usually work.

For block themes, custom themes, and page builders, the injected classes may be more reliable.


Recommended Selector Setup

Standard WooCommerce Theme

Use the default selectors:

Product Selector: ul.products
Pagination Selector: .woocommerce-pagination
Sorting Selector: form.woocommerce-ordering select
Result Count Selector: .woocommerce-result-count

WooCommerce Blocks or Block Themes

Use the injected classes:

Product Selector: .plugincy-filter-products
Pagination Selector: .plugincy-filter-pagination
Sorting Selector: .plugincy-filter-orderby select
Result Count Selector: .plugincy-filter-result-count

Custom Theme or Page Builder Layout

Start with the default selectors. If filtering does not update the correct area, use the injected classes:

.plugincy-filter-products
.plugincy-filter-pagination
.plugincy-filter-orderby select
.plugincy-filter-result-count

If your layout has multiple product grids, use a more specific selector that targets only the intended product grid.


WooCommerce Blocks Compatibility

WooCommerce Blocks and block themes may not use classic WooCommerce markup.

For example, a block-based product layout may not use:

ul.products

or:

.woocommerce-pagination

In these cases, the plugin’s injected classes help identify product and pagination areas more consistently.

Recommended selectors for WooCommerce Blocks:

Product Selector: .plugincy-filter-products
Pagination Selector: .plugincy-filter-pagination

This is especially useful for:

Product Collection blocks
Product Template blocks
Query Loop layouts
WooCommerce pagination blocks
Block-based archive templates
Full Site Editing themes

Custom Theme Troubleshooting

If filtering does not work correctly on a custom theme, check whether the theme uses standard WooCommerce markup.

Step 1: Inspect the product grid

Check if the product grid uses:

ul.products

If not, try:

.plugincy-filter-products

Step 2: Inspect pagination

Check if pagination uses:

.woocommerce-pagination

If not, try:

.plugincy-filter-pagination

Step 3: Inspect sorting

Check if sorting uses:

form.woocommerce-ordering select

If not, try:

.plugincy-filter-orderby select

Step 4: Inspect result count

Check if result count uses:

.woocommerce-result-count

If not, try:

.plugincy-filter-result-count

Common Issues and Solutions

Products do not update after filtering

Use:

.plugincy-filter-products

as the Product Selector.

Pagination disappears after filtering

Use:

.plugincy-filter-pagination

as the Pagination Selector.

Sorting reloads the full page

Use:

.plugincy-filter-orderby select

as the Sorting Selector.

Also make sure Product Sorting via AJAX is enabled.

Result count does not update

Use:

.plugincy-filter-result-count

as the Result Count Selector.

Product item styling breaks after AJAX filtering

Use .plugincy-filter-product-item in your custom CSS to style product cards consistently.

Example:

.plugincy-filter-product-item {
    clear: none;
}

Best Practices

Use default WooCommerce selectors first.

Use injected classes when default selectors do not work.

Use the most specific selector when multiple product grids exist on the same page.

Avoid using overly broad selectors such as:

div
section
.products

Broad selectors may cause the plugin to update the wrong part of the page.

After changing selectors, test:

Filtering
Pagination
Sorting
Result count
Reset button
Active filter chips
Mobile layout
WooCommerce archive pages
Category/tag/brand pages

Clear cache after changing selector settings.


Summary

Dynamic AJAX Product Filters for WooCommerce automatically injects helper classes to improve compatibility with themes, builders, WooCommerce Blocks, and custom layouts.

Important classes include:

.plugincy-filter-products
.plugincy-filter-pagination
.plugincy-filter-orderby
.plugincy-filter-result-count
.plugincy-filter-product-item

Use these classes in Advanced Settings when default WooCommerce selectors do not work correctly.

Recommended setup for block themes and custom layouts:

Product Selector: .plugincy-filter-products
Pagination Selector: .plugincy-filter-pagination
Sorting Selector: .plugincy-filter-orderby select
Result Count Selector: .plugincy-filter-result-count

These classes make AJAX filtering more reliable across classic WooCommerce themes, WooCommerce Blocks, block themes, page builders, and custom product archive layouts.