Вы можете создать собственный выпадающий список для любой таксономии продуктов WooCommerce в качестве короткого кода, который можно использовать везде, таким образом:
add_shortcode( 'product_tax_dropdown', 'wc_product_taxonomy_dropdown' );
function wc_product_taxonomy_dropdown( $atts ) {
// Attributes
$atts = shortcode_atts( array(
'hide_empty' => '1', // or '0'
'show_count' => '1', // or '0'
'orderby' => 'name', // or 'order'
'taxonomy' => 'product_tag',
), $atts, 'product_tax_dropdown' );
global $wp_query;
$taxonomy = $atts['taxonomy'];
$taxonomy_name = get_taxonomy( $taxonomy )->labels->singular_name;
ob_start();
wp_dropdown_categories( array(
'hide_empty' => $atts['hide_empty'],
'show_count' => $atts['show_count'],
'orderby' => $atts['orderby'],
'selected' => isset( $wp_query->query_vars[$taxonomy] ) ? $wp_query->query_vars[$taxonomy] : '',
'show_option_none' => sprintf( __( 'Select a %s', 'woocommerce' ), $taxonomy_name ),
'option_none_value' => '',
'value_field' => 'slug',
'taxonomy' => $taxonomy,
'name' => $taxonomy,
'class' => 'dropdown_'.$taxonomy,
) );
?>
<script type='text/javascript'>
jQuery(function($){
var select = '.dropdown_product_tag',
taxonomy = '<?php echo $taxonomy; ?>';
function onProductTaxChange() {
if ( $(select).val() !=='' ) {
location.href = '<?php echo esc_url( home_url() ); ?>/?'+taxonomy+'='+$(select).val();
}
}
$(select).change( onProductTaxChange );
});
</script>
<?php
return ob_get_clean();
}
Код помещается в файл functions.php вашей активной дочерней темы (или активнойтема).проверено и работает.
ИСПОЛЬЗОВАНИЕ
1) в качестве обычного шорткода (в текстовом редакторе или виджетах Wordpress):
[product_tax_dropdown];
2) В шаблонах PHP шорткод страниц и функций:
echo do_shortcode('[product_tax_dropdown]');