Overview

This filter lets you modify the final output array, before it’s converted to JSON and returned to the client (via AJAX).

Parameters

  • $output | array | An associative array of output data (see below)
  • $params | array | An associative array of input parameters (see below)

How to use custom PHP code?

PHP code can be added to your (child) theme's functions.php file. Alternatively, you can use the Custom Hooks add-on, or a code snippets plugin. More info

$output = [ 'facets' => [ 'the_facet_name' => 'HTML output', 'another_facet' => 'HTML output', ], 'template' => 'HTML string', 'settings' => [ 'the_facet_name' => [ 'setting1' => 'value' ] ], 'pager' => 'HTML output', 'sort' => 'HTML output', ];

$params contains the data (selected values, etc.) passed in client-side from AJAX.

How to use custom PHP code?

PHP code can be added to your (child) theme's functions.php file. Alternatively, you can use the Custom Hooks add-on, or a code snippets plugin. More info

$params = [ 'facets' => [ [ 'facet_name' => 'the_facet_name', 'selected_values' => [ 1, 2, 3 ], ], [ 'facet_name' => 'another_facet', 'selected_values' => [ 4, 5 ], ], ], 'template' => 'my_template', 'http_params' => [ 'uri' => 'the/page/url' ], 'extras' => [ 'sort' => 'default', 'pager' => true, ], 'paged' => 1 ];

Examples

Modify a Slider facet setting

In this example, we modify the “start” setting for a Slider facet with name “price”. On first load, the slider will only show items with a price between 500 and 1000:

How to use custom PHP code?

PHP code can be added to your (child) theme's functions.php file. Alternatively, you can use the Custom Hooks add-on, or a code snippets plugin. More info

add_filter( 'facetwp_render_output', function( $output, $params ) { $output['settings']['price']['start'] = [ 500, 1000 ]; return $output; }, 10, 2 );

Customize a Date Range facet’s date picker range

The following code forces the range of the date picker of a Date Range facet between a specific date and today:

How to use custom PHP code?

PHP code can be added to your (child) theme's functions.php file. Alternatively, you can use the Custom Hooks add-on, or a code snippets plugin. More info

// Replace "my-daterange-facet" with the name of your Date Range facet add_filter( 'facetwp_render_output', function( $output, $params ) { $output['settings']['my-daterange-facet']['range']['min']['minDate'] = '2022-01-01'; $output['settings']['my-daterange-facet']['range']['min']['maxDate'] = date( 'Y-m-d' ); // Today return $output; }, 10, 2 );

Disable the search box for all fSelect facets

The following example disables the search box for all fSelect facets on the page:

How to use custom PHP code?

PHP code can be added to your (child) theme's functions.php file. Alternatively, you can use the Custom Hooks add-on, or a code snippets plugin. More info

add_filter( 'facetwp_render_output', function( $output ) { $facets = FWP()->helper->get_facets(); foreach ( $facets as $facet ) { if ( 'fselect' == $facet['type'] ) { $output['settings'][ $facet['name'] ]['showSearch'] = false; } } return $output; });

Modify the template HTML

This example modifies a Listing Builder template’s content output HTML, which is contained in $output['template']. The code inserts a <div> element with class header in the .fwpl-layout container element, above the results:

How to use custom PHP code?

PHP code can be added to your (child) theme's functions.php file. Alternatively, you can use the Custom Hooks add-on, or a code snippets plugin. More info

add_filter( 'facetwp_render_output', function( $output, $params ) { if ( 'my_listing_template_name' == $params['template'] ) { // Replace "my_listing_template_name" with the name of your Listing Builder listing $output['template'] = preg_replace( '/<div class=\"fwpl-layout(.*?)\">/', '<div class="fwpl-layout$1"><div class="header"></div>', $output['template'] ); } return $output; }, 10, 2 );

To modify the placeholder/container HTML of a Listing Builder listing instead, use the facetwp_shortcode_html hook. Or, to completely override the listing output, you can use the facetwp_template_html hook.

More examples

See also

Last updated: October 22, 2024