label = __( 'Reset', 'fwp' );
$this->fields = [ 'reset_ui', 'reset_text', 'reset_mode', 'reset_facets', 'auto_hide' ];
}
function render( $params ) {
$facet = $params['facet'];
$reset_ui = $facet['reset_ui'];
$reset_text = empty( $facet['reset_text'] ) ? __( 'Reset', 'fwp-front' ) : $facet['reset_text'];
$reset_text = facetwp_i18n( $reset_text );
$classes = [ 'facetwp-reset' ];
$attrs = '';
if ( ! FWP()->helper->facet_is( $facet, 'reset_mode', 'off' ) ) {
if ( ! empty( $facet['reset_facets'] ) ) {
$vals = implode( ',', $facet['reset_facets'] );
$attrs = ' data-mode="{mode}" data-values="{vals}"';
$attrs = str_replace( '{mode}', $facet['reset_mode'], $attrs );
$attrs = str_replace( '{vals}', esc_attr( $vals ), $attrs );
}
}
if ( FWP()->helper->facet_is( $facet, 'auto_hide', 'yes' ) ) {
$classes[] = 'facetwp-hide-empty';
}
if ( 'button' == $reset_ui ) {
$output = '';
}
else {
$output = '{label}';
}
$output = str_replace( '{classes}', implode( ' ', $classes ), $output );
$output = str_replace( '{label}', esc_attr( $reset_text ), $output );
$output = str_replace( '{attrs}', $attrs, $output );
return $output;
}
function filter_posts( $params ) {
return 'continue';
}
function register_fields() {
return [
'reset_ui' => [
'type' => 'select',
'label' => __( 'Reset UI', 'fwp' ),
'choices' => [
'button' => __( 'Button', 'fwp' ),
'link' => __( 'Link', 'fwp' )
]
],
'reset_mode' => [
'type' => 'select',
'label' => __( 'Include / exclude', 'fwp' ),
'notes' => 'Include or exclude certain facets?',
'choices' => [
'off' => __( 'Reset everything', 'fwp' ),
'include' => __( 'Reset only these facets', 'fwp' ),
'exclude' => __( 'Reset all except these facets', 'fwp' )
]
],
'reset_facets' => [
'label' => '',
'html' => '',
'show' => "facet.reset_mode != 'off'"
],
'auto_hide' => [
'type' => 'toggle',
'label' => __( 'Auto-hide', 'fwp' ),
'notes' => 'Hide when no facets have selected values'
]
];
}
}