Merged in feature/plugins-update (pull request #9)
wp plugin updates from pantheon * wp plugin updates from pantheon
This commit is contained in:
103
wp/wp-content/plugins/facetwp/includes/class-overrides.php
Normal file
103
wp/wp-content/plugins/facetwp/includes/class-overrides.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
class FacetWP_Overrides
|
||||
{
|
||||
|
||||
public $raw;
|
||||
|
||||
|
||||
function __construct() {
|
||||
add_filter( 'facetwp_index_row', [ $this, 'index_row' ], 5, 2 );
|
||||
add_filter( 'facetwp_index_row', [ $this, 'format_numbers' ], 15, 2 );
|
||||
add_filter( 'facetwp_is_main_query', [ $this, 'ignore_post_types' ], 10, 2 );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Indexer modifications
|
||||
*/
|
||||
function index_row( $params, $class ) {
|
||||
if ( $class->is_overridden ) {
|
||||
return $params;
|
||||
}
|
||||
|
||||
$facet = FWP()->helper->get_facet_by_name( $params['facet_name'] );
|
||||
|
||||
// Store raw numbers to format later
|
||||
if ( in_array( $facet['type'], [ 'number_range', 'slider' ] ) ) {
|
||||
$this->raw = [
|
||||
'value' => $params['facet_value'],
|
||||
'label' => $params['facet_display_value']
|
||||
];
|
||||
}
|
||||
|
||||
// Support "Other data source" values
|
||||
if ( ! empty( $facet['source_other'] ) ) {
|
||||
$other_params = $params;
|
||||
$other_params['facet_source'] = $facet['source_other'];
|
||||
$rows = $class->get_row_data( $other_params );
|
||||
$params['facet_display_value'] = $rows[0]['facet_display_value'];
|
||||
}
|
||||
|
||||
return $params;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Make sure that numbers are properly formatted
|
||||
*/
|
||||
function format_numbers( $params, $class ) {
|
||||
|
||||
if ( empty( $this->raw ) ) {
|
||||
return $params;
|
||||
}
|
||||
|
||||
$value = $params['facet_value'];
|
||||
$label = $params['facet_display_value'];
|
||||
|
||||
// Only format if un-altered
|
||||
if ( $this->raw['value'] === $value && $this->raw['label'] === $label ) {
|
||||
$params['facet_value'] = FWP()->helper->format_number( $this->raw['value'] );
|
||||
$params['facet_display_value'] = FWP()->helper->format_number( $this->raw['label'] );
|
||||
}
|
||||
|
||||
$this->raw = null;
|
||||
|
||||
return $params;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ignore certain post types
|
||||
*/
|
||||
function ignore_post_types( $is_main_query, $query ) {
|
||||
$blacklist = [
|
||||
'acf-field',
|
||||
'acf-field-group',
|
||||
'advanced_ads',
|
||||
'carts',
|
||||
'cookielawinfo',
|
||||
'edd_wish_list',
|
||||
'ms_relationship',
|
||||
'nav_menu_item',
|
||||
'wc_user_membership',
|
||||
'wp_block',
|
||||
'wp_global_styles',
|
||||
'wp_navigation',
|
||||
'wp_template',
|
||||
'wp_template_part'
|
||||
];
|
||||
$post_type = $query->get( 'post_type' );
|
||||
|
||||
if ( is_string( $post_type ) && in_array( $post_type, $blacklist ) ) {
|
||||
$is_main_query = false;
|
||||
}
|
||||
|
||||
// Ignore the "WP GDPR Compliance" plugin
|
||||
if ( '[wpgdprc_access_request_form]' == $query->get( 's' ) ) {
|
||||
$is_main_query = false;
|
||||
}
|
||||
|
||||
return $is_main_query;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user