首页 > 解决方案 > 对最后缺货的产品进行分类

问题描述

StackOverflow 中有很多答案,但旧的答案,没有一个对我来说与最新版本的 Woocommerce 一起工作。

我的页面已经按最近的产品排序,但我喜欢将所有售罄的产品移到最后一页。

我试过的最后一个代码:

1:

add_action( 'pre_get_posts', function ( $q ) {
if (   $q->is_main_query()        // Only target the main query
     && $q->is_post_type_archive() // Change to suite your needs
) {
    $q->set( 'meta_key', '_stock_status' );
    $q->set( 'orderby',  'meta_value'    );
    $q->set( 'order',    'ASC'           );
}
}, PHP_INT_MAX );

2:

add_filter( 'woocommerce_shortcode_products_query', function( $query_args, $atts, $loop_name ){
    if( $loop_name == 'recent_products' ){
        $query_args['meta_query'] = array( array(
            'key'     => '_stock_status',
            'value'   => 'outofstock',
            'compare' => 'NOT LIKE',
        ) );
    }
    return $query_args;
}, 10, 3);

标签: woocommerce

解决方案


推荐阅读