Developer Hooks and Compatibility Filters

Dynamic AJAX Product Filters for WooCommerce includes developer hooks that allow advanced users to control third-party compatibility behavior, query integrations, and query caching.

These hooks are useful when working with custom themes, page builders, product grid plugins, product table plugins, WooCommerce Blocks, JetEngine listings, or custom product queries.

This documentation is intended for developers and advanced users.

When Should Developers Use These Hooks?

Use these hooks only when you need to troubleshoot or customize how the plugin integrates with third-party product layouts.

Common use cases include:

  • A custom theme already modifies WooCommerce product queries.
  • Another plugin controls the product grid query.
  • A product table plugin uses its own query system.
  • Elementor, JetEngine, or WooCommerce Blocks need custom handling.
  • Filters affect the wrong product grid.
  • AJAX filtering conflicts with a custom product loop.
  • You need to disable one compatibility layer for debugging.
  • You want to control query caching behavior.

For most stores, these hooks are not required. The plugin’s default compatibility behavior should remain enabled.


Where to Add Developer Hooks

You can add these snippets to your child theme’s functions.php file or a custom plugin.

Recommended location:

wp-content/themes/your-child-theme/functions.php

Better option for production sites:

A small custom plugin

Avoid adding custom code directly to a parent theme, because theme updates may remove your changes.


Disable All Third-Party Compatibility Hooks

Use this filter to disable all third-party compatibility hooks added by the plugin.

add_filter( 'dapfforwcpro_enable_third_party_hooks', '__return_false' );

What This Does

This disables the plugin’s additional third-party product query compatibility layer.

Use this when you want Dynamic AJAX Product Filters to work only with the standard WooCommerce filtering behavior and avoid extra third-party query integrations.

When to Use It

Use this if:

  • A third-party product grid is being filtered incorrectly.
  • Another plugin already handles product queries.
  • You are debugging a compatibility conflict.
  • You want to isolate the default WooCommerce query behavior.
  • Multiple product grids are being affected unexpectedly.

Important Note

Disabling all third-party hooks may also disable compatibility with Elementor, JetEngine, WooCommerce Blocks, product table plugins, or product grid plugins.

Use this only when you understand the impact.


Disable WooCommerce Product Grid Hook

Use this filter to disable the WooCommerce product grid compatibility hook.

add_filter( 'dapfforwcpro_enable_woo_product_grid_hook', '__return_false' );

What This Does

This disables compatibility behavior related to WooCommerce product grid query arguments.

When to Use It

Use this if:

  • A third-party product grid plugin is already modifying query arguments.
  • Product grids show unexpected products after filtering.
  • Filters are applied to a grid that should not be filtered.
  • You are debugging product-grid-specific compatibility issues.

Disable WooCommerce Product Table Hook

Use this filter to disable product table compatibility.

add_filter( 'dapfforwcpro_enable_wc_product_table_hook', '__return_false' );

What This Does

This disables compatibility behavior for product table style layouts that use WooCommerce product query arguments.

When to Use It

Use this if:

  • A product table plugin loads products through its own AJAX system.
  • The product table already has its own filters.
  • Dynamic AJAX Product Filters affects table results incorrectly.
  • Product table pagination or sorting conflicts with AJAX filtering.

Disable WooCommerce Product Filter Hook

Use this filter to disable WooCommerce product filter compatibility hook behavior.

add_filter( 'dapfforwcpro_enable_wc_product_filter_hook', '__return_false' );

What This Does

This disables a WooCommerce product-filter-related compatibility hook.

When to Use It

Use this if:

  • Another WooCommerce filtering plugin is active.
  • A product query is being modified twice.
  • Filter results are duplicated or incorrect.
  • You are testing conflicts with other WooCommerce filter systems.

Disable JetEngine Query Hook

Use this filter to disable JetEngine listing grid compatibility.

add_filter( 'dapfforwcpro_enable_jet_engine_hook', '__return_false' );

What This Does

This disables compatibility handling for JetEngine/Crocoblock listing grid queries.

When to Use It

Use this if:

  • JetEngine listings already use a custom query.
  • JetEngine filters are being used separately.
  • Dynamic AJAX Product Filters affects a JetEngine listing that should not be filtered.
  • JetEngine listing results are incorrect after applying filters.

Recommended Check

Before disabling this hook, confirm that your JetEngine listing is intended to display WooCommerce products.

For product filtering, the listing should normally query:

Post Type: Product

Disable WooCommerce Blocks Hook

Use this filter to disable WooCommerce Blocks compatibility.

add_filter( 'dapfforwcpro_enable_wc_blocks_hook', '__return_false' );

What This Does

This disables compatibility behavior for WooCommerce Blocks and block-based product queries.

When to Use It

Use this if:

  • A block theme has a custom product query.
  • WooCommerce Blocks are handled by another plugin.
  • Product block results update incorrectly.
  • Block pagination conflicts with AJAX filtering.
  • You are debugging block theme compatibility.

Related Selectors

If WooCommerce Blocks are not updating correctly, you may not need to disable the hook. First try using the plugin’s injected selectors:

.plugincy-filter-products
.plugincy-filter-pagination

Disable Parse Query Hook

Use this filter to disable custom parse query compatibility.

add_filter( 'dapfforwcpro_enable_parse_query_hook', '__return_false' );

What This Does

This disables compatibility behavior that modifies product queries through the WordPress query parsing process.

When to Use It

Use this if:

  • Your theme uses custom parse_query logic.
  • A custom plugin modifies product queries at the same stage.
  • Filter parameters are being applied to unexpected queries.
  • Non-product queries are being affected.
  • You are debugging advanced query conflicts.

Use this carefully, because disabling parse query compatibility may prevent filters from applying in some custom layouts.


Disable Query Cache Bypass

Use this filter to control query cache behavior.

add_filter( 'dapfforwcpro_disable_query_cache', '__return_false' );

What This Does

By default, the plugin may bypass or disable query caching in certain filtering scenarios to ensure fresh and accurate AJAX results.

Adding this filter returns false, which tells the plugin not to disable query cache through this hook.

When to Use It

Use this if:

  • You are optimizing performance on a large store.
  • You have a custom caching strategy.
  • Your hosting environment handles object/query caching correctly.
  • You want to test whether query caching improves filtered page performance.
  • You are debugging slow AJAX filtering requests.

Important Note

Be careful when allowing query cache during filtered results. Cached queries may return stale or incorrect product results if the cache system does not vary by filter parameters.

Always test filtering carefully after changing query cache behavior.


Recommended Debugging Workflow

If filtering conflicts with a third-party layout, do not disable every hook immediately.

Use this workflow:

Step 1: Confirm the issue

Test filtering on the default WooCommerce shop page.

If the default shop page works, the issue is likely related to a custom grid, block, builder, or third-party query.

Step 2: Check selectors

Before disabling hooks, check the selectors in:

Product Filters → Advanced Settings

Important selectors include:

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

For block themes, try:

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

Step 3: Disable one hook at a time

Disable only the hook related to the affected layout.

For example, if the issue is with JetEngine, test:

add_filter( 'dapfforwcpro_enable_jet_engine_hook', '__return_false' );

If the issue is with WooCommerce Blocks, test:

add_filter( 'dapfforwcpro_enable_wc_blocks_hook', '__return_false' );

Step 4: Test again

After adding a hook:

  1. Clear cache.
  2. Reload the shop or archive page.
  3. Apply filters.
  4. Test sorting and pagination.
  5. Check product counts and active filter chips.

Step 5: Keep only the needed snippet

Remove any snippets that are not required.

Avoid disabling all compatibility hooks unless necessary.


Common Examples

Example 1: Disable all third-party compatibility hooks

Use this when you want to test default WooCommerce filtering only.

add_filter( 'dapfforwcpro_enable_third_party_hooks', '__return_false' );

Example 2: Disable only JetEngine compatibility

Use this when a JetEngine listing grid is being affected incorrectly.

add_filter( 'dapfforwcpro_enable_jet_engine_hook', '__return_false' );

Example 3: Disable only WooCommerce Blocks compatibility

Use this when a block theme or WooCommerce Product Collection block conflicts with filtering.

add_filter( 'dapfforwcpro_enable_wc_blocks_hook', '__return_false' );

Example 4: Keep query cache enabled

Use this when testing performance optimization.

add_filter( 'dapfforwcpro_disable_query_cache', '__return_false' );

Hook Reference

HookPurpose
dapfforwcpro_enable_third_party_hooksEnables/disables all third-party compatibility hooks
dapfforwcpro_enable_woo_product_grid_hookEnables/disables WooCommerce product grid query compatibility
dapfforwcpro_enable_wc_product_table_hookEnables/disables product table query compatibility
dapfforwcpro_enable_wc_product_filter_hookEnables/disables WooCommerce product filter query compatibility
dapfforwcpro_enable_jet_engine_hookEnables/disables JetEngine listing grid compatibility
dapfforwcpro_enable_wc_blocks_hookEnables/disables WooCommerce Blocks query compatibility
dapfforwcpro_enable_parse_query_hookEnables/disables parse query compatibility
dapfforwcpro_disable_query_cacheControls whether the plugin disables query cache during filtering

Complete Example

You can combine hooks when needed.

Example:

<?php
/**
 * Customize Dynamic AJAX Product Filters compatibility behavior.
 */

// Disable JetEngine compatibility only.
add_filter( 'dapfforwcpro_enable_jet_engine_hook', '__return_false' );

// Disable WooCommerce Blocks compatibility only.
add_filter( 'dapfforwcpro_enable_wc_blocks_hook', '__return_false' );

// Keep query cache enabled for testing.
add_filter( 'dapfforwcpro_disable_query_cache', '__return_false' );

Only add the hooks you actually need.


Best Practices

Use these hooks only for debugging or advanced compatibility control.

Disable one hook at a time.

Do not disable all third-party hooks unless you are sure the issue comes from third-party compatibility.

Clear cache after adding or removing snippets.

Test filtering with:

Product results
Pagination
Sorting
Result count
Active filter chips
Reset button
WooCommerce archive pages
Category/tag/brand pages

Use a child theme or custom plugin for code snippets.

Keep a record of any custom snippets added to the site.


Summary

Dynamic AJAX Product Filters for WooCommerce provides developer hooks to control third-party query compatibility and query caching.

Use these filters when debugging or customizing compatibility with:

Elementor Pro WooCommerce widgets
JetEngine listing grids
WooCommerce Blocks
WooCommerce shortcodes
Product table plugins
Product grid plugins
Custom WooCommerce product queries

For most stores, leave all compatibility hooks enabled.

For advanced troubleshooting, disable only the specific hook related to the conflict, test carefully, and keep only the snippet that is required.