Woocommerce: как отобразить имя атрибута продукта в заголовке на странице категории и «фильтровать» продукты через «? Pa_attribute =» в адресной строке - PullRequest
0 голосов
/ 19 октября 2018

Итак, у меня есть атрибут продукта (например, цвет), и я могу отображать только продукты внутри категории, которые имеют этот атрибут, например, ? Pa_color = red в адресной строкепоэтому, если я пойду ' www.mysite.com / product-category / t-shirts /? pa_color = red ' у меня будут только футболки с красным цветом в качестве атрибута.Это работает.
Проблема в том, что, когда я делаю эту "фильтрацию", заголовок страницы (над списком продуктов) по-прежнему говорит только "Футболки" , но не указывает, что он показывает толькоКрасные футболки и это может запутать клиентов.Мне нужно, чтобы он показывал что-то вроде "Футболки (цвет: красный)" .
Я знаю, что могу использовать виджеты боковой панели для фильтрации атрибутов, а затем виджет покажет, что фильтруетсяно в данном конкретном случае это очень минимальный дизайн без боковой панели или какой-либо фильтрации, мне нужно, чтобы это было показано в заголовке.Заранее спасибо!

1 Ответ

0 голосов
/ 08 ноября 2018
add_filter( 'woocommerce_page_title', 'custom_woocommerce_page_title', 15, 1 );

function custom_woocommerce_page_title( $page_title ) {
    if ( is_archive() ) {
        $exists_attr = false;

        foreach ( $_GET as $index => $value ) {
            if ( substr( $index, 0, 3 ) === 'pa_' ) {
                $attr_id = wc_attribute_taxonomy_id_by_name( $index );

                if ( $attr_id === 0 ) {
                    continue;
                }

                if ( ! $exists_attr ) {
                    $exists_attr = true;

                    $page_title .= ' (';
                } else {
                    $page_title .= ', ';
                }

                $page_title .= wc_attribute_label( $index ) . ': ' . esc_html( $value );
            }
        }

        if ( $exists_attr ) {
            $page_title .= ')';
        }
    }

    return $page_title;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...