djrmom
8/28/2017 - 1:58 PM

facetwp make select sort into a radio

facetwp make select sort into a radio

<?php
/**
 * filter html for sort to output radio buttons
 */
add_filter( 'facetwp_sort_html', function( $output, $params ) {
	$output = '<div class="facetwp-sort-radio">';
	foreach ( $params['sort_options'] as $key => $atts ) {
		$output .= '<input type="radio" name="sort" value="' . $key . '"> ' . $atts['label'] . '<br>';
	}
	$output .= '</div>';
	return $output;
}, 10, 2 );

/**
 * js to handle:
 * selecting the correct radio button on load
 * updating the sort when a new button is selected
 */
add_action( 'wp_head', function() {
	?>
	<script>
        (function($) {
            $(document).on('facetwp-loaded', function() {
                if ('undefined' !== typeof FWP.extras.sort ) {
                    $( '.facetwp-sort-radio input:radio[name="sort"]').filter('[value="'+FWP.extras.sort+'"]').prop("checked", true);
                }
            });
            // Sorting
            $(document).on('change', '.facetwp-sort-radio input', function() {
                FWP.extras.sort = $(this).val();
                FWP.soft_refresh = true;
                FWP.autoload();
            });
        })(jQuery);
	</script>
	<?php
}, 100 );