Вы можете создать собственный раскрывающийся список для любой таксономии продуктов WooCommerce в виде короткого кода, который можно использовать везде, таким образом:

add_shortcode( 'product_tax_dropdown', 'wc_product_taxonomy_dropdown' );
function wc_product_taxonomy_dropdown( $atts ) {
    // Attributes
    $atts = shortcode_atts( array(
        'hide_empty'   => Ƈ', // or Ɔ'
        'show_count'   => Ƈ', // or Ɔ'
        '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]');

Есть идеи?

10000