Как заказать одну категорию по дате, а остальные каталог по популярности? - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу, чтобы весь каталог WooCommerce упорядочивался по популярности (только стандартные настройки), но я также хочу, чтобы моя категория спецпредложений упорядочивалась по дате, когда мы публикуем новые предложения в определенные дни недели.

Я нашел этот фрагмент кода здесь, но он, похоже, не меняет порядок следования в специальной категории:

add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_catalog_ordering_args', 20, 1 );
function custom_catalog_ordering_args( $args ) {
    $product_category = 'specials'; // <== 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;
}

Как получить заказ, который я хочу?

1 Ответ

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

вы используете неправильные хуки, woocommerce_get_catalog_ordering_args используется для добавления новых опций сортировки, которые вам не нужны, так как в WooCommerce уже есть последняя опция sortby.

, поэтому, чтобы изменить опцию сортировки по умолчанию для конкретной категории, вам нужно использовать woocommerce_default_catalog_orderby hook следующим образом:

add_filter('woocommerce_default_catalog_orderby', 'custom_catalog_ordering_args', 20, 1);
function custom_catalog_ordering_args($sortby)
{
    $product_category = 'specials'; // <== HERE define your product category slug 

    // Only for defined product category archive page
    if (! is_product_category($product_category)) {
        return;
    }
    return 'date';
}

Код выше был протестирован и работает, как и ожидалось, просто добавьте код в functions.php, и вы должны быть готовы к работе

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