Не могу изменить порядок сортировки по умолчанию для определенной категории woocommerce на «популярность» - PullRequest
0 голосов
/ 13 сентября 2018

Здравствуйте. Я пытаюсь изменить порядок сортировки по умолчанию для одной определенной категории woocommerce.

В этой категории есть бестселлеры cbd

Я пытаюсь изменить порядок сортировки по умолчанию на «по популярности» для этой категории.

Я нашел этот код ниже, который изменяет сортировку по умолчанию на «по дате» для конкретной категории

add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_catalog_ordering_args', 20, 1 );
function custom_catalog_ordering_args( $args ) {
    $product_category = 't-shirts'; // <== HERE define your product category

    // Only for defined product category archive page
    if( ! is_product_category($product_category) ) return $args;

    // Set default ordering to 'date ID', so "Newness"
    $args['orderby'] = 'date ID';

    if( $args['orderby'] == 'date ID' )
        $args['order'] = 'DESC'; // Set order by DESC

    return $args;
}

Затем я заменил футболки на cbd-бестселлеры своей категории и изменил идентификатор даты на популярность, например:

add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_catalog_ordering_args', 20, 1 );
function custom_catalog_ordering_args( $args ) {
    $product_category = 'cbd-best-sellers'; // <== HERE define your product category

    if( ! is_product_category($product_category) ) return $args;

    $args['orderby'] = 'popularity';

    if( $args['orderby'] == 'popularity' )
        $args['order'] = 'ASC'; // Set order by DESC

    return $args;
}

Но категория по популярности не загружается по нагрузке.

Я делаю это неправильно?

1 Ответ

0 голосов
/ 13 сентября 2018

используемый вами хук предназначен для добавления или изменения порядка по значениям, а не для установки по умолчанию.

Если вы хотите установить опцию сортировки по умолчанию, вам нужно использовать woocommerce_default_catalog_orderby

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

add_filter( 'woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby' );

function custom_default_catalog_orderby() {

    $product_category = 'cbd-best-sellers'; // <== HERE define your product category

    if ( is_product_category( $product_category ) ) {
        return 'popularity'; // Can also use title and price
    }

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